From 2a8a5731f8d745f02e402e6595be04e352e8bf2b Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Mon, 29 May 2023 20:37:06 +0800 Subject: [PATCH 001/333] [ISSUE #4044] Remove duplicate init connector operation in worker --- .../main/java/org/apache/eventmesh/openconnect/SinkWorker.java | 1 - .../main/java/org/apache/eventmesh/openconnect/SourceWorker.java | 1 - 2 files changed, 2 deletions(-) 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 b23b402c87..407089b141 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 @@ -50,7 +50,6 @@ public class SinkWorker implements ConnectorWorker { public SinkWorker(Sink sink, SinkConfig config) throws Exception { this.sink = sink; this.config = config; - sink.init(config); eventMeshTCPClient = buildEventMeshSubClient(config); eventMeshTCPClient.init(); } diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java index e4baff9ba8..c9c34119c6 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java @@ -55,7 +55,6 @@ public class SourceWorker implements ConnectorWorker { public SourceWorker(Source source, SourceConfig config) throws Exception { this.source = source; this.config = config; - source.init(config); eventMeshTCPClient = buildEventMeshPubClient(config); eventMeshTCPClient.init(); } From bc9100eb35dab20d49f491bd89a1586df2626315 Mon Sep 17 00:00:00 2001 From: pandaapo <1052156701@qq.com> Date: Fri, 2 Jun 2023 23:44:39 +0800 Subject: [PATCH 002/333] Support more nacos configuration. --- .../config/NacosRegistryConfiguration.java | 58 +++++++++++++++++++ .../nacos/service/NacosRegistryService.java | 46 +++++++++++++-- eventmesh-runtime/conf/eventmesh.properties | 6 ++ 3 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java diff --git a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java new file mode 100644 index 0000000000..2c0619d957 --- /dev/null +++ b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java @@ -0,0 +1,58 @@ +/* + * 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.registry.nacos.config; + +import org.apache.eventmesh.common.config.Config; +import org.apache.eventmesh.common.config.ConfigFiled; + +import com.alibaba.nacos.api.PropertyKeyConst; +import com.alibaba.nacos.client.naming.utils.UtilAndComs; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@Config(prefix = "eventMesh.registry.nacos") +public class NacosRegistryConfiguration { + + @ConfigFiled(field = PropertyKeyConst.ENDPOINT) + private String endpoint; + + @ConfigFiled(field = PropertyKeyConst.ENDPOINT_PORT) + private String endpointPort; + + @ConfigFiled(field = PropertyKeyConst.ACCESS_KEY) + private String accessKey; + + @ConfigFiled(field = PropertyKeyConst.SECRET_KEY) + private String secretKey; + + @ConfigFiled(field = PropertyKeyConst.CLUSTER_NAME) + private String clusterName; + + @ConfigFiled(field = PropertyKeyConst.NAMING_POLLING_THREAD_COUNT) + private Integer pollingThreadCount; + + @ConfigFiled(field = UtilAndComs.NACOS_NAMING_LOG_NAME) + private String logFileName; + + @ConfigFiled(field = UtilAndComs.NACOS_NAMING_LOG_LEVEL) + private String logLevel; + +} diff --git a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java index fff040bf22..98f0bf5b75 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java +++ b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java @@ -23,7 +23,9 @@ import org.apache.eventmesh.api.registry.dto.EventMeshRegisterInfo; import org.apache.eventmesh.api.registry.dto.EventMeshUnRegisterInfo; import org.apache.eventmesh.common.config.CommonConfiguration; +import org.apache.eventmesh.common.config.ConfigService; import org.apache.eventmesh.common.utils.ConfigurationContextUtil; +import org.apache.eventmesh.registry.nacos.config.NacosRegistryConfiguration; import org.apache.eventmesh.registry.nacos.constant.NacosConstant; import org.apache.commons.lang3.StringUtils; @@ -38,10 +40,12 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicBoolean; +import com.alibaba.nacos.api.NacosFactory; +import com.alibaba.nacos.api.PropertyKeyConst; import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.pojo.Instance; -import com.alibaba.nacos.client.naming.NacosNamingService; +import com.alibaba.nacos.client.naming.utils.UtilAndComs; import com.alibaba.nacos.common.utils.CollectionUtils; import lombok.Getter; @@ -63,6 +67,9 @@ public class NacosRegistryService implements RegistryService { @Getter private String password; + @Getter + private NacosRegistryConfiguration nacosConfig; + @Getter private NamingService namingService; @@ -89,6 +96,11 @@ public void init() throws RegistryException { this.password = commonConfiguration.getEventMeshRegistryPluginPassword(); break; } + ConfigService configService = ConfigService.getInstance(); + NacosRegistryConfiguration nacosConfig = configService.buildConfigInstance(NacosRegistryConfiguration.class); + if (nacosConfig != null) { + this.nacosConfig = nacosConfig; + } } @Override @@ -98,17 +110,39 @@ public void start() throws RegistryException { return; } try { - Properties properties = new Properties(); - properties.setProperty(NacosConstant.SERVER_ADDR, serverAddr); - properties.setProperty(NacosConstant.USERNAME, username); - properties.setProperty(NacosConstant.PASSWORD, password); - namingService = new NacosNamingService(properties); + Properties properties = buildProperties(); + namingService = NacosFactory.createNamingService(properties); } catch (NacosException e) { log.error("[NacosRegistryService][start] error", e); throw new RegistryException(e.getMessage()); } } + private Properties buildProperties() { + Properties properties = new Properties(); + properties.setProperty(NacosConstant.SERVER_ADDR, serverAddr); + properties.setProperty(NacosConstant.USERNAME, username); + properties.setProperty(NacosConstant.PASSWORD, password); + if (nacosConfig == null) { + return properties; + } + String endpoint = nacosConfig.getEndpoint(); + if (endpoint.contains(":")) { + int index = endpoint.indexOf(":"); + properties.put(PropertyKeyConst.ENDPOINT, endpoint.substring(0, index)); + properties.put(PropertyKeyConst.ENDPOINT_PORT, endpoint.substring(index + 1)); + } else { + properties.put(PropertyKeyConst.ENDPOINT, endpoint); + } + properties.put(PropertyKeyConst.ACCESS_KEY, nacosConfig.getAccessKey()); + properties.put(PropertyKeyConst.SECRET_KEY, nacosConfig.getSecretKey()); + properties.put(PropertyKeyConst.CLUSTER_NAME, nacosConfig.getClusterName()); + properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME, nacosConfig.getLogFileName()); + properties.put(UtilAndComs.NACOS_NAMING_LOG_LEVEL, nacosConfig.getLogLevel()); + properties.put(PropertyKeyConst.NAMING_POLLING_THREAD_COUNT, nacosConfig.getPollingThreadCount()); + return properties; + } + @Override public void shutdown() throws RegistryException { if (!initStatus.compareAndSet(true, false)) { diff --git a/eventmesh-runtime/conf/eventmesh.properties b/eventmesh-runtime/conf/eventmesh.properties index 4473c5cbd2..fe5c087ee1 100644 --- a/eventmesh-runtime/conf/eventmesh.properties +++ b/eventmesh-runtime/conf/eventmesh.properties @@ -89,6 +89,12 @@ eventMesh.registry.plugin.type=nacos eventMesh.registry.plugin.server-addr=127.0.0.1:8848 eventMesh.registry.plugin.username=nacos eventMesh.registry.plugin.password=nacos +#registry plugin: nacos +eventMesh.registry.nacos.endpoint= +eventMesh.registry.nacos.accessKey= +eventMesh.registry.nacos.secretKey= +eventMesh.registry.nacos.clusterName= +eventMesh.registry.nacos.namingPollingThreadCount= # metrics plugin, if you have multiple plugin, you can use ',' to split eventMesh.metrics.plugin=prometheus From 10dd308d36c172871a3fdc2903f0643bd3f32356 Mon Sep 17 00:00:00 2001 From: pandaapo <1052156701@qq.com> Date: Sat, 3 Jun 2023 07:05:30 +0800 Subject: [PATCH 003/333] Assign default value to 'pollingThreadCount' --- .../nacos/config/NacosRegistryConfiguration.java | 2 +- eventmesh-runtime/conf/eventmesh.properties | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java index 2c0619d957..c22253f59f 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java +++ b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java @@ -47,7 +47,7 @@ public class NacosRegistryConfiguration { private String clusterName; @ConfigFiled(field = PropertyKeyConst.NAMING_POLLING_THREAD_COUNT) - private Integer pollingThreadCount; + private Integer pollingThreadCount = Runtime.getRuntime().availableProcessors() / 2 + 1; @ConfigFiled(field = UtilAndComs.NACOS_NAMING_LOG_NAME) private String logFileName; diff --git a/eventmesh-runtime/conf/eventmesh.properties b/eventmesh-runtime/conf/eventmesh.properties index fe5c087ee1..26e30d59e8 100644 --- a/eventmesh-runtime/conf/eventmesh.properties +++ b/eventmesh-runtime/conf/eventmesh.properties @@ -89,12 +89,13 @@ eventMesh.registry.plugin.type=nacos eventMesh.registry.plugin.server-addr=127.0.0.1:8848 eventMesh.registry.plugin.username=nacos eventMesh.registry.plugin.password=nacos -#registry plugin: nacos -eventMesh.registry.nacos.endpoint= -eventMesh.registry.nacos.accessKey= -eventMesh.registry.nacos.secretKey= -eventMesh.registry.nacos.clusterName= -eventMesh.registry.nacos.namingPollingThreadCount= +# registry plugin: nacos +#eventMesh.registry.nacos.endpoint= +#eventMesh.registry.nacos.accessKey= +#eventMesh.registry.nacos.secretKey= +#eventMesh.registry.nacos.clusterName= +# The default value is half of CPU's num +#eventMesh.registry.nacos.namingPollingThreadCount=5 # metrics plugin, if you have multiple plugin, you can use ',' to split eventMesh.metrics.plugin=prometheus From 0de0d043a5bc4165208daef866dc17d46e7ab369 Mon Sep 17 00:00:00 2001 From: pandaapo <1052156701@qq.com> Date: Sat, 3 Jun 2023 07:37:46 +0800 Subject: [PATCH 004/333] Aoid NPE. --- .../nacos/service/NacosRegistryService.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java index 98f0bf5b75..875a22a22c 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java +++ b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -127,19 +128,27 @@ private Properties buildProperties() { return properties; } String endpoint = nacosConfig.getEndpoint(); - if (endpoint.contains(":")) { + if (Objects.nonNull(endpoint) && endpoint.contains(":")) { int index = endpoint.indexOf(":"); properties.put(PropertyKeyConst.ENDPOINT, endpoint.substring(0, index)); properties.put(PropertyKeyConst.ENDPOINT_PORT, endpoint.substring(index + 1)); } else { - properties.put(PropertyKeyConst.ENDPOINT, endpoint); + Optional.ofNullable(endpoint).ifPresent(value -> properties.put(PropertyKeyConst.ENDPOINT, endpoint)); + String endpointPort = nacosConfig.getEndpointPort(); + Optional.ofNullable(endpointPort).ifPresent(value -> properties.put(PropertyKeyConst.ENDPOINT_PORT, endpointPort)); } - properties.put(PropertyKeyConst.ACCESS_KEY, nacosConfig.getAccessKey()); - properties.put(PropertyKeyConst.SECRET_KEY, nacosConfig.getSecretKey()); - properties.put(PropertyKeyConst.CLUSTER_NAME, nacosConfig.getClusterName()); - properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME, nacosConfig.getLogFileName()); - properties.put(UtilAndComs.NACOS_NAMING_LOG_LEVEL, nacosConfig.getLogLevel()); - properties.put(PropertyKeyConst.NAMING_POLLING_THREAD_COUNT, nacosConfig.getPollingThreadCount()); + String accessKey = nacosConfig.getAccessKey(); + Optional.ofNullable(accessKey).ifPresent(value -> properties.put(PropertyKeyConst.ACCESS_KEY, accessKey)); + String secretKey = nacosConfig.getSecretKey(); + Optional.ofNullable(secretKey).ifPresent(value -> properties.put(PropertyKeyConst.SECRET_KEY, secretKey)); + String clusterName = nacosConfig.getClusterName(); + Optional.ofNullable(clusterName).ifPresent(value -> properties.put(PropertyKeyConst.CLUSTER_NAME, clusterName)); + String logFileName = nacosConfig.getLogFileName(); + Optional.ofNullable(logFileName).ifPresent(value -> properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME, logFileName)); + String logLevel = nacosConfig.getLogLevel(); + Optional.ofNullable(logLevel).ifPresent(value -> properties.put(UtilAndComs.NACOS_NAMING_LOG_LEVEL, logLevel)); + Integer pollingThreadCount = nacosConfig.getPollingThreadCount(); + Optional.ofNullable(pollingThreadCount).ifPresent(value -> properties.put(PropertyKeyConst.NAMING_POLLING_THREAD_COUNT, pollingThreadCount)); return properties; } From 8028e9fe4eb9a68605588d5e26fa951b09bc39ac Mon Sep 17 00:00:00 2001 From: pandaapo <1052156701@qq.com> Date: Sun, 4 Jun 2023 07:39:43 +0800 Subject: [PATCH 005/333] Support more configurations for zk plugin. --- .../config/ZKRegistryConfiguration.java | 65 +++++++++++++++++ .../service/ZookeeperRegistryService.java | 72 +++++++++++++++++-- eventmesh-runtime/conf/eventmesh.properties | 17 +++++ 3 files changed, 147 insertions(+), 7 deletions(-) create mode 100644 eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/config/ZKRegistryConfiguration.java diff --git a/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/config/ZKRegistryConfiguration.java b/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/config/ZKRegistryConfiguration.java new file mode 100644 index 0000000000..13023f0cb4 --- /dev/null +++ b/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/config/ZKRegistryConfiguration.java @@ -0,0 +1,65 @@ +/* + * 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.registry.zookeeper.config; + +import org.apache.eventmesh.common.config.Config; +import org.apache.eventmesh.common.config.ConfigFiled; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@Config(prefix = "eventMesh.registry.zookeeper") +public class ZKRegistryConfiguration { + + @ConfigFiled(field = "scheme") + private String scheme; + + @ConfigFiled(field = "auth") + private String auth; + + @ConfigFiled(field = "connectionTimeoutMs") + private Integer connectionTimeoutMs = 5000; + + @ConfigFiled(field = "sessionTimeoutMs") + private Integer sessionTimeoutMs = 40000; + + // Fully qualified name of RetryPolicy implementation + @ConfigFiled(field = "retryPolicy.class") + private String retryPolicyClass; + + @ConfigFiled(field = "retryPolicy.baseSleepTimeMs") + private Integer baseSleepTimeMs = 1000; + + @ConfigFiled(field = "retryPolicy.maxRetries") + private Integer maxRetries = 5; + + @ConfigFiled(field = "retryPolicy.maxSleepTimeMs") + private Integer maxSleepTimeMs = 5000; + + @ConfigFiled(field = "retryPolicy.retryIntervalMs") + private Integer retryIntervalTimeMs = 1000; + + @ConfigFiled(field = "retryPolicy.nTimes") + private Integer retryNTimes = 10; + + @ConfigFiled(field = "retryPolicy.sleepMsBetweenRetries") + private Integer sleepMsBetweenRetries = 1000; + +} diff --git a/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java b/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java index 2b7e322d21..25bf1ce2d9 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java +++ b/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java @@ -23,9 +23,12 @@ import org.apache.eventmesh.api.registry.dto.EventMeshDataInfo; import org.apache.eventmesh.api.registry.dto.EventMeshRegisterInfo; import org.apache.eventmesh.api.registry.dto.EventMeshUnRegisterInfo; +import org.apache.eventmesh.common.Constants; import org.apache.eventmesh.common.config.CommonConfiguration; +import org.apache.eventmesh.common.config.ConfigService; import org.apache.eventmesh.common.utils.ConfigurationContextUtil; import org.apache.eventmesh.common.utils.JsonUtils; +import org.apache.eventmesh.registry.zookeeper.config.ZKRegistryConfiguration; import org.apache.eventmesh.registry.zookeeper.constant.ZookeeperConstant; import org.apache.eventmesh.registry.zookeeper.pojo.EventMeshInstance; @@ -34,7 +37,11 @@ import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.framework.CuratorFrameworkFactory.Builder; +import org.apache.curator.retry.BoundedExponentialBackoffRetry; import org.apache.curator.retry.ExponentialBackoffRetry; +import org.apache.curator.retry.RetryForever; +import org.apache.curator.retry.RetryNTimes; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.data.Stat; @@ -43,6 +50,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicBoolean; @@ -65,6 +73,8 @@ public class ZookeeperRegistryService implements RegistryService { private ConcurrentMap eventMeshRegisterInfoMap; + private ZKRegistryConfiguration zkConfig; + @Override public void init() throws RegistryException { @@ -84,6 +94,8 @@ public void init() throws RegistryException { this.serverAddr = commonConfiguration.getNamesrvAddr(); break; } + ZKRegistryConfiguration zkConfig = ConfigService.getInstance().buildConfigInstance(ZKRegistryConfiguration.class); + this.zkConfig = zkConfig; } @Override @@ -94,19 +106,65 @@ public void start() throws RegistryException { return; } try { - RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 5); - zkClient = CuratorFrameworkFactory.builder() - .connectString(serverAddr) - .retryPolicy(retryPolicy) - .namespace(ZookeeperConstant.NAMESPACE) - .build(); + zkClient = buildZkClient(); zkClient.start(); - } catch (Exception e) { throw new RegistryException("ZookeeperRegistry starting failed", e); } } + private CuratorFramework buildZkClient() throws ClassNotFoundException { + Builder builder = CuratorFrameworkFactory.builder() + .connectString(serverAddr) + .namespace(ZookeeperConstant.NAMESPACE); + if (zkConfig == null) { + return builder.build(); + } + builder.retryPolicy(createRetryPolicy()); + String scheme = zkConfig.getScheme(); + String auth = zkConfig.getAuth(); + if (!StringUtils.isAnyBlank(scheme, auth)) { + builder.authorization(scheme, auth.getBytes(Constants.DEFAULT_CHARSET)); + } + Optional.ofNullable(zkConfig.getConnectionTimeoutMs()).ifPresent((timeout) -> builder.connectionTimeoutMs(timeout)); + Optional.ofNullable(zkConfig.getSessionTimeoutMs()).ifPresent((timeout) -> builder.sessionTimeoutMs(timeout)); + return builder.build(); + } + + private RetryPolicy createRetryPolicy() throws ClassNotFoundException { + String retryPolicyClass = zkConfig.getRetryPolicyClass(); + if (StringUtils.isBlank(retryPolicyClass)) { + return new ExponentialBackoffRetry(1000, 5); + } + Class clazz = Class.forName(retryPolicyClass); + if (clazz == ExponentialBackoffRetry.class) { + return new ExponentialBackoffRetry( + getOrDefault(zkConfig.getBaseSleepTimeMs(), 1000, Integer.class), + getOrDefault(zkConfig.getMaxRetries(), 5, Integer.class)); + } else if (clazz == BoundedExponentialBackoffRetry.class) { + return new BoundedExponentialBackoffRetry( + getOrDefault(zkConfig.getBaseSleepTimeMs(), 1000, Integer.class), + getOrDefault(zkConfig.getMaxSleepTimeMs(), 5000, Integer.class), + getOrDefault(zkConfig.getMaxRetries(), 5, Integer.class)); + } else if (clazz == RetryForever.class) { + return new RetryForever( + getOrDefault(zkConfig.getRetryIntervalTimeMs(), 1000, Integer.class)); + } else if (clazz == RetryNTimes.class) { + return new RetryNTimes( + getOrDefault(zkConfig.getRetryNTimes(), 10, Integer.class), + getOrDefault(zkConfig.getSleepMsBetweenRetries(), 1000, Integer.class)); + } else { + throw new IllegalArgumentException("Unsupported retry policy: " + retryPolicyClass); + } + } + + private T getOrDefault(T value, T defaultValue, Class clazz) { + if (value != null) { + return value; + } + return defaultValue; + } + @Override public void shutdown() throws RegistryException { if (!initStatus.compareAndSet(true, false)) { diff --git a/eventmesh-runtime/conf/eventmesh.properties b/eventmesh-runtime/conf/eventmesh.properties index 4473c5cbd2..bc43558249 100644 --- a/eventmesh-runtime/conf/eventmesh.properties +++ b/eventmesh-runtime/conf/eventmesh.properties @@ -90,6 +90,23 @@ eventMesh.registry.plugin.server-addr=127.0.0.1:8848 eventMesh.registry.plugin.username=nacos eventMesh.registry.plugin.password=nacos +# registry plugin: zookeeper +#eventMesh.registry.zookeeper.scheme= +#eventMesh.registry.zookeeper.auth= +#eventMesh.registry.zookeeper.connectionTimeoutMs= +#eventMesh.registry.zookeeper.sessionTimeoutMs= + +# Fully qualified name of org.apache.curator.RetryPolicy implementation +#eventMesh.registry.zookeeper.retryPolicy.class= + +# Constructor arguments for different org.apache.curator.RetryPolicy implementations +#eventMesh.registry.zookeeper.retryPolicy.baseSleepTimeMs= +#eventMesh.registry.zookeeper.retryPolicy.maxRetries= +#eventMesh.registry.zookeeper.retryPolicy.maxSleepTimeMs= +#eventMesh.registry.zookeeper.retryPolicy.retryIntervalMs= +#eventMesh.registry.zookeeper.retryPolicy.nTimes= +#eventMesh.registry.zookeeper.retryPolicy.sleepMsBetweenRetries= + # metrics plugin, if you have multiple plugin, you can use ',' to split eventMesh.metrics.plugin=prometheus From 63730715e6547e818a656ca18a051b8748d9e19f Mon Sep 17 00:00:00 2001 From: pandaapo <1052156701@qq.com> Date: Sun, 4 Jun 2023 07:46:00 +0800 Subject: [PATCH 006/333] Set default RetryPolicy --- .../registry/zookeeper/service/ZookeeperRegistryService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java b/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java index 25bf1ce2d9..dd955142a9 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java +++ b/eventmesh-registry-plugin/eventmesh-registry-zookeeper/src/main/java/org/apache/eventmesh/registry/zookeeper/service/ZookeeperRegistryService.java @@ -118,6 +118,7 @@ private CuratorFramework buildZkClient() throws ClassNotFoundException { .connectString(serverAddr) .namespace(ZookeeperConstant.NAMESPACE); if (zkConfig == null) { + builder.retryPolicy(new ExponentialBackoffRetry(1000, 5)); return builder.build(); } builder.retryPolicy(createRetryPolicy()); From 307c925d9c259286b5e640a13a28e9ab7a00360b Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Mon, 12 Jun 2023 15:55:43 +0800 Subject: [PATCH 007/333] add openfunction-connect --- build.gradle | 1 + .../connector/RocketMQSourceConnector.java | 1 - .../eventmesh/openconnect/SourceWorker.java | 59 +++++++++++++++---- eventmesh-runtime/build.gradle | 12 ++-- settings.gradle | 3 + 5 files changed, 57 insertions(+), 19 deletions(-) diff --git a/build.gradle b/build.gradle index eea9d85817..9c2d39e5c2 100644 --- a/build.gradle +++ b/build.gradle @@ -492,6 +492,7 @@ subprojects { dependency "io.cloudevents:cloudevents-core:2.2.0" dependency "io.cloudevents:cloudevents-json-jackson:2.2.0" + dependency "io.grpc:grpc-core:${grpcVersion}" dependency "io.grpc:grpc-protobuf:${grpcVersion}" dependency "io.grpc:grpc-stub:${grpcVersion}" dependency "io.grpc:grpc-netty:${grpcVersion}" diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java b/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java index 190d18189d..3e497a2983 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java +++ b/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java @@ -78,7 +78,6 @@ public void stop() { public List poll() { List messageExts = consumer.poll(); List connectRecords = new ArrayList<>(messageExts.size()); - System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), messageExts); for (MessageExt messageExt : messageExts) { Long timestamp = System.currentTimeMillis(); byte[] body = messageExt.getBody(); diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java index c9c34119c6..1bb865cff1 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java @@ -36,6 +36,11 @@ import java.util.Map; import java.util.Objects; import java.util.UUID; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; import io.cloudevents.CloudEvent; import io.cloudevents.core.builder.CloudEventBuilder; @@ -48,13 +53,17 @@ public class SourceWorker implements ConnectorWorker { private final Source source; private final SourceConfig config; + private final ExecutorService pollService = Executors.newSingleThreadExecutor(); + + private final BlockingQueue queue; private final EventMeshTCPClient eventMeshTCPClient; - private volatile boolean isRunning = true; + private volatile boolean isRunning = false; public SourceWorker(Source source, SourceConfig config) throws Exception { this.source = source; this.config = config; + queue = new LinkedBlockingQueue<>(1000); eventMeshTCPClient = buildEventMeshPubClient(config); eventMeshTCPClient.init(); } @@ -90,16 +99,10 @@ private EventMeshTCPClient buildEventMeshPubClient(SourceConfig conf public void start() { log.info("source worker starting {}", source.name()); log.info("event mesh address is {}", config.getPubSubConfig().getMeshAddress()); + isRunning = true; + pollService.execute(this::startPoll); try { - source.start(); - while (isRunning) { - List connectorRecordList = source.poll(); - for (ConnectRecord connectRecord : connectorRecordList) { - // todo: convert connectRecord to cloudevent - CloudEvent event = convertRecordToEvent(connectRecord); - eventMeshTCPClient.publish(event, 3000); - } - } + startConnector(); } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage()); @@ -107,6 +110,34 @@ public void start() { log.info("source worker started"); } + public void startPoll() { + while (isRunning) { + ConnectRecord connectRecord = null; + try { + connectRecord = queue.poll(5, TimeUnit.SECONDS); + } catch (InterruptedException e) { + e.printStackTrace(); + log.error("poll connect record error", e); + } + if (connectRecord == null) { + continue; + } + // todo: convert connectRecord to cloudevent + CloudEvent event = convertRecordToEvent(connectRecord); + eventMeshTCPClient.publish(event, 3000); + } + } + + private void startConnector() throws Exception { + source.start(); + while (isRunning) { + List connectorRecordList = source.poll(); + for (ConnectRecord connectRecord : connectorRecordList) { + queue.put(connectRecord); + } + } + } + private CloudEvent convertRecordToEvent(ConnectRecord connectRecord) { final Map content = new HashMap<>(); content.put("content", connectRecord.getData().toString()); @@ -132,12 +163,18 @@ public void stop() { e.printStackTrace(); log.error("source destroy error", e); } + pollService.shutdown(); + try { + pollService.awaitTermination(10, TimeUnit.SECONDS); + } catch (InterruptedException e) { + log.error("awaitTermination error", e); + } try { eventMeshTCPClient.close(); } catch (Exception e) { e.printStackTrace(); - log.error("event mesh client close", e); + log.error("event mesh client close error", e); } log.info("source worker stopped"); } diff --git a/eventmesh-runtime/build.gradle b/eventmesh-runtime/build.gradle index b5bf575338..d7bd29fcee 100644 --- a/eventmesh-runtime/build.gradle +++ b/eventmesh-runtime/build.gradle @@ -15,8 +15,6 @@ * limitations under the License. */ -def grpcVersion = '1.43.2' - dependencies { implementation 'io.cloudevents:cloudevents-core' implementation 'io.cloudevents:cloudevents-json-jackson' @@ -53,11 +51,11 @@ dependencies { implementation project(":eventmesh-protocol-plugin:eventmesh-protocol-api") - implementation "io.grpc:grpc-core:${grpcVersion}" - implementation "io.grpc:grpc-protobuf:${grpcVersion}" - implementation "io.grpc:grpc-stub:${grpcVersion}" - implementation "io.grpc:grpc-netty:${grpcVersion}" - implementation "io.grpc:grpc-netty-shaded:${grpcVersion}" + implementation "io.grpc:grpc-core" + implementation "io.grpc:grpc-protobuf" + implementation "io.grpc:grpc-stub" + implementation "io.grpc:grpc-netty" + implementation "io.grpc:grpc-netty-shaded" compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' diff --git a/settings.gradle b/settings.gradle index 1b3d762862..5ec4b6fc0b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,6 +26,9 @@ include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' include 'eventmesh-connectors:source-connector-rocketmq' include 'eventmesh-connectors:sink-connector-rocketmq' +include 'eventmesh-connectors:openfunction-connect-runtime' +include 'eventmesh-connectors:source-connector-openfunction' +include 'eventmesh-connectors:sink-connector-openfunction' include 'eventmesh-storage-plugin:eventmesh-storage-api' include 'eventmesh-storage-plugin:eventmesh-storage-standalone' include 'eventmesh-storage-plugin:eventmesh-storage-kafka' From 255709b0b8f2d83eb2839f6431e18749cfb97ceb Mon Sep 17 00:00:00 2001 From: Eason Chen Date: Tue, 13 Jun 2023 15:51:06 +0800 Subject: [PATCH 008/333] Update .asf.yaml (#4122) --- .asf.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.asf.yaml b/.asf.yaml index d6024c10a0..43b2fa5ff2 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -47,6 +47,25 @@ github: required_pull_request_reviews: dismiss_stale_reviews: true required_approving_review_count: 2 + # Attempt to make the auto-generated github emails more easily readable in email clients. + custom_subjects: + new_pr: "[PR] {title} ({repository})" + close_pr: "Re: [PR] {title} ({repository})" + comment_pr: "Re: [PR] {title} ({repository})" + diffcomment: "Re: [PR] {title} ({repository})" + merge_pr: "Re: [PR] {title} ({repository})" + new_issue: "[I] {title} ({repository})" + comment_issue: "Re: [I] {title} ({repository})" + close_issue: "Re: [I] {title} ({repository})" + catchall: "[GH] {title} ({repository})" + new_discussion: "[D] {title} ({repository})" + edit_discussion: "Re: [D] {title} ({repository})" + close_discussion: "Re: [D] {title} ({repository})" + close_discussion_with_comment: "Re: [D] {title} ({repository})" + reopen_discussion: "Re: [D] {title} ({repository})" + new_comment_discussion: "Re: [D] {title} ({repository})" + edit_comment_discussion: "Re: [D] {title} ({repository})" + delete_comment_discussion: "Re: [D] {title} ({repository})" notifications: commits: commits@eventmesh.apache.org # Send all issue emails (new, closed, comments) to issues@ From 9998d1677212485692b26f83ef25e615b142c42e Mon Sep 17 00:00:00 2001 From: mxsm Date: Tue, 13 Jun 2023 15:53:48 +0800 Subject: [PATCH 009/333] [ISSUE #4118]Add licenses to the Java classes generated from CloudEvents protobuf (#4119) --- .../protocol/grpc/cloudevents/CloudEvent.java | 17 +++++++++++++++++ .../grpc/cloudevents/CloudEventBatch.java | 17 +++++++++++++++++ .../cloudevents/CloudEventBatchOrBuilder.java | 17 +++++++++++++++++ .../grpc/cloudevents/CloudEventOrBuilder.java | 17 +++++++++++++++++ .../grpc/cloudevents/ConsumerServiceGrpc.java | 17 +++++++++++++++++ .../grpc/cloudevents/EventMeshCloudEvents.java | 17 +++++++++++++++++ .../grpc/cloudevents/EventMeshGrpcService.java | 17 +++++++++++++++++ .../grpc/cloudevents/HeartbeatServiceGrpc.java | 17 +++++++++++++++++ .../grpc/cloudevents/PublisherServiceGrpc.java | 17 +++++++++++++++++ .../exception/ProtocolNotSupportException.java | 8 ++++---- tools/dependency-check/known-dependencies.txt | 14 ++++++-------- 11 files changed, 163 insertions(+), 12 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEvent.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEvent.java index 00d7736fcf..f04108f397 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEvent.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEvent.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: eventmesh-cloudevents.proto diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatch.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatch.java index 05643077a7..5d541ec974 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatch.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatch.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: eventmesh-cloudevents.proto diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatchOrBuilder.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatchOrBuilder.java index f6088edd1c..5f3256d6fa 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatchOrBuilder.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventBatchOrBuilder.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: eventmesh-cloudevents.proto diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventOrBuilder.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventOrBuilder.java index b3b0b9c63e..a375b43a89 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventOrBuilder.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/CloudEventOrBuilder.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: eventmesh-cloudevents.proto diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/ConsumerServiceGrpc.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/ConsumerServiceGrpc.java index 0ef33c03d6..d3f25f558e 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/ConsumerServiceGrpc.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/ConsumerServiceGrpc.java @@ -1,3 +1,20 @@ +/* + * 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.common.protocol.grpc.cloudevents; import static io.grpc.MethodDescriptor.generateFullMethodName; diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshCloudEvents.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshCloudEvents.java index 663e852d6a..aebe0a06cb 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshCloudEvents.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshCloudEvents.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: eventmesh-cloudevents.proto diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshGrpcService.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshGrpcService.java index d0e7673937..94dbdbbef3 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshGrpcService.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/EventMeshGrpcService.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: eventmesh-service.proto diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/HeartbeatServiceGrpc.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/HeartbeatServiceGrpc.java index 43d3bfd6e7..0b347e58c6 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/HeartbeatServiceGrpc.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/HeartbeatServiceGrpc.java @@ -1,3 +1,20 @@ +/* + * 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.common.protocol.grpc.cloudevents; import static io.grpc.MethodDescriptor.generateFullMethodName; diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/PublisherServiceGrpc.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/PublisherServiceGrpc.java index 6bc85cc861..2796402037 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/PublisherServiceGrpc.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/grpc/cloudevents/PublisherServiceGrpc.java @@ -1,3 +1,20 @@ +/* + * 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.common.protocol.grpc.cloudevents; import static io.grpc.MethodDescriptor.generateFullMethodName; diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/exception/ProtocolNotSupportException.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/exception/ProtocolNotSupportException.java index 258ecc013f..ef89340a84 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/exception/ProtocolNotSupportException.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/exception/ProtocolNotSupportException.java @@ -42,7 +42,7 @@ public ProtocolNotSupportException(String message) { * is not automatically incorporated in this runtime exception's detail message. * * @param message the detail message (which is saved for later retrieval by the {@link #getMessage()} method). - * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A null value is permitted, and + * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A null value is permitted, and * indicates that the cause is nonexistent or unknown.) * @since 1.4 */ @@ -51,12 +51,12 @@ public ProtocolNotSupportException(String message, Throwable cause) { } /** - * Constructs a new runtime exception with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which + * Constructs a new runtime exception with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which * typically contains the class and detail message of - * cause). This constructor is useful for runtime exceptions + * cause). This constructor is useful for runtime exceptions * that are little more than wrappers for other throwables. * - * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A null value is permitted, and + * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method). (A null value is permitted, and * indicates that the cause is nonexistent or unknown.) * @since 1.4 */ diff --git a/tools/dependency-check/known-dependencies.txt b/tools/dependency-check/known-dependencies.txt index 7179877a7f..e86d1d40e1 100644 --- a/tools/dependency-check/known-dependencies.txt +++ b/tools/dependency-check/known-dependencies.txt @@ -22,10 +22,11 @@ bson-3.12.11.jar byte-buddy-1.11.0.jar cache-api-1.1.1.jar checker-qual-3.12.0.jar -cloudevents-api-2.2.0.jar -cloudevents-core-2.2.0.jar -cloudevents-json-jackson-2.2.0.jar -cloudevents-kafka-2.2.1.jar +cloudevents-api-2.4.2.jar +cloudevents-core-2.4.2.jar +cloudevents-json-jackson-2.4.2.jar +cloudevents-kafka-2.4.2.jar +cloudevents-protobuf-2.4.2.jar commons-beanutils-1.9.4.jar commons-cli-1.2.jar commons-codec-1.11.jar @@ -48,10 +49,8 @@ error_prone_annotations-2.9.0.jar failureaccess-1.0.1.jar fastjson-1.2.83.jar google-auth-library-credentials-0.22.2.jar -grpc-api-1.42.2.jar grpc-api-1.43.2.jar grpc-auth-1.39.0.jar -grpc-context-1.42.2.jar grpc-context-1.43.2.jar grpc-core-1.43.2.jar grpc-grpclb-1.17.1.jar @@ -61,7 +60,6 @@ grpc-protobuf-1.42.2.jar grpc-protobuf-1.43.2.jar grpc-protobuf-lite-1.42.2.jar grpc-protobuf-lite-1.43.2.jar -grpc-stub-1.42.2.jar grpc-stub-1.43.2.jar gson-2.8.2.jar guava-31.0.1-jre.jar @@ -184,10 +182,10 @@ pravega-shared-controller-api-0.11.0.jar pravega-shared-protocol-0.11.0.jar pravega-shared-security-0.11.0.jar proto-google-common-protos-2.0.1.jar -protobuf-java-3.18.2.jar protobuf-java-3.19.2.jar protobuf-java-3.19.4.jar protobuf-java-3.21.5.jar +protobuf-java-util-3.15.0.jar protobuf-java-util-3.17.2.jar protobuf-java-util-3.21.5.jar protobuf-java-util-3.5.1.jar From cba698d2f85c219bd74b6d583d4d186f8e5a5bce Mon Sep 17 00:00:00 2001 From: Alonexc <91315508+Alonexc@users.noreply.github.com> Date: Wed, 14 Jun 2023 10:24:00 +0800 Subject: [PATCH 010/333] [ISSUE 4120] Fix the file read as null. (#4121) * Create .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * delete lift * fix 4120 * fix 4120 * change to using try-catch --- .../eventmesh/grpc/sub/app/service/SubService.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/service/SubService.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/service/SubService.java index 90d158397b..99d840fa2b 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/service/SubService.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/service/SubService.java @@ -32,6 +32,7 @@ import org.apache.eventmesh.grpc.pub.eventmeshmessage.AsyncPublishInstance; import org.apache.eventmesh.util.Utils; +import java.io.IOException; import java.util.Collections; import java.util.Properties; import java.util.concurrent.CountDownLatch; @@ -53,6 +54,14 @@ public class SubService implements InitializingBean { private final SubscriptionItem subscriptionItem = new SubscriptionItem(); + { + try { + properties = Utils.readPropertiesFile(ExampleConstants.CONFIG_FILE_NAME); + } catch (IOException e) { + log.error("Failed to read the file.", e); + } + } + private final String localIp = IPUtils.getLocalAddress(); private final String localPort = properties.getProperty(SERVER_PORT); private final String eventMeshIp = properties.getProperty(ExampleConstants.EVENTMESH_IP); @@ -82,8 +91,6 @@ public void afterPropertiesSet() throws Exception { eventMeshGrpcConsumer.subscribe(Collections.singletonList(subscriptionItem), url); - properties = Utils.readPropertiesFile(ExampleConstants.CONFIG_FILE_NAME); - // Wait for all messaged to be consumed final Thread stopThread = new Thread(() -> { try { @@ -92,13 +99,13 @@ public void afterPropertiesSet() throws Exception { if (log.isWarnEnabled()) { log.warn("exception occurred when countDownLatch.await ", e); } + Thread.currentThread().interrupt(); } if (log.isInfoEnabled()) { log.info("stopThread start...."); } - //throw new RuntimeException(); }); stopThread.start(); From 601d684c6a4004661c900fbd7a39a1ef9d17736a Mon Sep 17 00:00:00 2001 From: Pil0tXia <41445332+Pil0tXia@users.noreply.github.com> Date: Wed, 14 Jun 2023 10:24:19 +0800 Subject: [PATCH 011/333] [ISSUE #4110] Enhance thread handling of InterruptedException (#4113) --- .../runtime/core/protocol/http/retry/HttpRetryer.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/retry/HttpRetryer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/retry/HttpRetryer.java index 4e1be246d7..14ff727df4 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/retry/HttpRetryer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/retry/HttpRetryer.java @@ -83,6 +83,9 @@ public void init() { }); } } catch (Exception e) { + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } retryLogger.error("http-retry-dispatcher error!", e); } }, "http-retry-dispatcher"); From e46248ecd756e5078c6ea6422767e1650a39f97a Mon Sep 17 00:00:00 2001 From: Himanshu Sharma <32622247+himansh295@users.noreply.github.com> Date: Wed, 14 Jun 2023 07:54:40 +0530 Subject: [PATCH 012/333] [ISSUE #4111] Made an explicit null check on the map (#4112) * Made an explicit null check on the map * Review changes added * Additional review changes * Made use of static cnstant --- .../http/push/AsyncHTTPPushRequest.java | 41 +++++++++---------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java index f96e05f585..6ac0461ab0 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java @@ -218,26 +218,23 @@ public void tryHTTPRequest() { result, currPushUrl, handleMsgContext.getTopic(), handleMsgContext.getBizSeqNo(), handleMsgContext.getUniqueId(), cost); } - if (result == ClientRetCode.OK || result == ClientRetCode.REMOTE_OK) { - complete(); - if (isComplete()) { - handleMsgContext.finish(); - } - } else if (result == ClientRetCode.RETRY) { - delayRetry(); - if (isComplete()) { - handleMsgContext.finish(); - } - } else if (result == ClientRetCode.NOLISTEN) { - delayRetry(); - if (isComplete()) { - handleMsgContext.finish(); - } - } else if (result == ClientRetCode.FAIL) { - complete(); - if (isComplete()) { - handleMsgContext.finish(); - } + switch (result) { + case OK: + case REMOTE_OK: + case FAIL: + complete(); + if (isComplete()) { + handleMsgContext.finish(); + } + break; + case RETRY: + case NOLISTEN: + delayRetry(); + if (isComplete()) { + handleMsgContext.finish(); + } + break; + default: // do nothing } } else { eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordHttpPushMsgFailed(); @@ -328,7 +325,7 @@ ClientRetCode processResponseContent(String content) { Map ret = JsonUtils.parseTypeReferenceObject(content, new TypeReference>() { }); - Integer retCode = (Integer) ret.get("retCode"); + Integer retCode = (Integer) Objects.requireNonNull(ret).get(ProtocolKey.RETCODE); if (retCode != null && ClientRetCode.contains(retCode)) { return ClientRetCode.get(retCode); } @@ -340,7 +337,7 @@ ClientRetCode processResponseContent(String content) { handleMsgContext.getBizSeqNo(), handleMsgContext.getUniqueId(), content); } return ClientRetCode.FAIL; - } catch (Throwable e) { + } catch (Exception e) { if (MESSAGE_LOGGER.isWarnEnabled()) { MESSAGE_LOGGER.warn("url:{}, bizSeqno:{}, uniqueId:{}, httpResponse:{}", currPushUrl, handleMsgContext.getBizSeqNo(), handleMsgContext.getUniqueId(), content); From 7b18ca651750250e594c072001bf34611e7e24c7 Mon Sep 17 00:00:00 2001 From: kyooosukedn <87076947+kyooosukedn@users.noreply.github.com> Date: Wed, 14 Jun 2023 04:25:43 +0200 Subject: [PATCH 013/333] [ISSUE #3901] Method needlessly defines parameter with concrete classes [IPUtils] --- .../main/java/org/apache/eventmesh/common/utils/IPUtils.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/IPUtils.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/IPUtils.java index c4e7ca46f1..9f91f91c9d 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/IPUtils.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/IPUtils.java @@ -29,6 +29,7 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Enumeration; import java.util.List; import java.util.regex.Matcher; @@ -136,7 +137,7 @@ public static boolean isValidIPV4Address(String ip) { return m.matches(); } - private static void getIpResult(List ipv4Result, List ipv6Result, Enumeration en) { + private static void getIpResult(Collection ipv4Result, Collection ipv6Result, Enumeration en) { while (en.hasMoreElements()) { final InetAddress address = en.nextElement(); if (!address.isLoopbackAddress()) { From 40de773cb6096ac05ad8556d0448e8b04a837d98 Mon Sep 17 00:00:00 2001 From: kyooosukedn <87076947+kyooosukedn@users.noreply.github.com> Date: Wed, 14 Jun 2023 04:26:32 +0200 Subject: [PATCH 014/333] [ISSUE #4017] Resources may not be released. (#4075) * used try-with-resources to manage resources * Corrected check style --- .../admin/utils/HttpExchangeUtils.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/utils/HttpExchangeUtils.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/utils/HttpExchangeUtils.java index 177b378bc6..67479c8c2f 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/utils/HttpExchangeUtils.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/utils/HttpExchangeUtils.java @@ -26,17 +26,16 @@ public class HttpExchangeUtils { public static String streamToString(InputStream stream) throws IOException { - InputStreamReader isr = new InputStreamReader(stream, StandardCharsets.UTF_8); - BufferedReader bufferedReader = new BufferedReader(isr); + try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8))) { - int b; - StringBuilder buffer = new StringBuilder(); - while ((b = bufferedReader.read()) != -1) { - buffer.append((char) b); - } + StringBuilder buffer = new StringBuilder(); + int b; + + while ((b = bufferedReader.read()) != -1) { + buffer.append((char) b); + } - bufferedReader.close(); - isr.close(); - return buffer.toString(); + return buffer.toString(); + } } } From f99790a5db95731f354422431db5c48d899afbb8 Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Fri, 16 Jun 2023 18:11:46 +0800 Subject: [PATCH 015/333] [ISSUE #4123] Add EventMesh OpenFunction Source/Sink Connector --- .../build.gradle | 34 +++ .../gradle.properties | 16 ++ .../openfunction/client/CallbackService.java | 59 ++++ .../client/CallbackServiceGrpc.java | 252 ++++++++++++++++++ .../client/CloudEventsPublishInstance.java | 89 +++++++ .../client/CloudEventsSubscribeInstance.java | 40 +++ .../client/EventMeshGrpcService.java | 62 +++++ .../config/OpenFunctionServerConfig.java | 37 +++ .../server/OpenFunctionConnectServer.java | 81 ++++++ .../openfunction/service/ConsumerService.java | 92 +++++++ .../openfunction/service/ProducerService.java | 122 +++++++++ .../sink/config/OpenFunctionSinkConfig.java | 29 ++ .../sink/config/SinkConnectorConfig.java | 28 ++ .../connector/OpenFunctionSinkConnector.java | 89 +++++++ .../config/OpenFunctionSourceConfig.java | 29 ++ .../source/config/SourceConnectorConfig.java | 27 ++ .../OpenFunctionSourceConnector.java | 84 ++++++ .../src/main/proto/callback-service.proto | 37 +++ .../main/proto/eventmesh-cloudevents.proto | 86 ++++++ .../src/main/proto/eventmesh-service.proto | 58 ++++ .../src/main/resources/server-config.yml | 22 ++ .../src/main/resources/sink-config.yml | 29 ++ .../src/main/resources/source-config.yml | 28 ++ .../rocketmq/RocketMQSinkWorker.java | 3 +- .../rocketmq/RocketMQSourceWorker.java | 5 +- .../eventmesh/openconnect/Application.java | 14 +- .../eventmesh/openconnect/SinkWorker.java | 1 + .../eventmesh/openconnect/SourceWorker.java | 22 +- .../openconnect/api/config/Constants.java | 4 +- .../openconnect/util/ConfigUtil.java | 40 ++- .../storage/kafka/producer/ProducerImpl.java | 2 + settings.gradle | 4 +- 32 files changed, 1501 insertions(+), 24 deletions(-) create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/build.gradle create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/gradle.properties create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/callback-service.proto create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-cloudevents.proto create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-service.proto create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/server-config.yml create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/sink-config.yml create mode 100644 eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/source-config.yml diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/build.gradle b/eventmesh-connectors/eventmesh-openfunction-connector/build.gradle new file mode 100644 index 0000000000..039dbf44b7 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/build.gradle @@ -0,0 +1,34 @@ +/* + * 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. + */ + +dependencies { + implementation project(":eventmesh-common") + implementation project(":eventmesh-sdks:eventmesh-sdk-java") + implementation project(":eventmesh-openconnect:eventmesh-openconnect-java") + + implementation "io.grpc:grpc-core" + implementation "io.grpc:grpc-protobuf" + implementation "io.grpc:grpc-stub" + implementation "io.grpc:grpc-netty" + implementation "io.grpc:grpc-netty-shaded" + + api "com.fasterxml.jackson.core:jackson-databind" + api "com.fasterxml.jackson.core:jackson-core" + api "com.fasterxml.jackson.core:jackson-annotations" + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' +} \ No newline at end of file diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/gradle.properties b/eventmesh-connectors/eventmesh-openfunction-connector/gradle.properties new file mode 100644 index 0000000000..a9fd83fea0 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/gradle.properties @@ -0,0 +1,16 @@ +# +# 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. +# \ No newline at end of file diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java new file mode 100644 index 0000000000..7ca828170a --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java @@ -0,0 +1,59 @@ +/* + * 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.connector.openfunction.client; + +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.CloudEventAttributeValue; +import org.apache.eventmesh.common.protocol.grpc.common.ProtocolKey; +import org.apache.eventmesh.common.protocol.grpc.common.StatusCode; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; + +import io.grpc.stub.StreamObserver; + +import com.google.protobuf.Timestamp; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class CallbackService extends CallbackServiceGrpc.CallbackServiceImplBase { + + @Override + public void onTopicEvent(CloudEvent cloudEvent, StreamObserver responseObserver) { + log.info("cloudevents: {}|data: {}", cloudEvent, cloudEvent.getTextData()); + + Instant instant = now(); + CloudEvent.Builder builder = CloudEvent.newBuilder(); + builder.putAttributes(ProtocolKey.GRPC_RESPONSE_CODE, + CloudEventAttributeValue.newBuilder().setCeString(StatusCode.SUCCESS.getRetCode()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_MESSAGE, + CloudEventAttributeValue.newBuilder().setCeString(StatusCode.SUCCESS.getErrMsg()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_TIME, CloudEventAttributeValue.newBuilder() + .setCeTimestamp(Timestamp.newBuilder().setSeconds(instant.getEpochSecond()).setNanos(instant.getNano()).build()).build()); + responseObserver.onNext(builder.build()); + responseObserver.onCompleted(); + } + + private static Instant now() { + return OffsetDateTime.of(LocalDateTime.now(ZoneId.systemDefault()), ZoneOffset.UTC).toInstant(); + } +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java new file mode 100644 index 0000000000..704fba24eb --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java @@ -0,0 +1,252 @@ +package org.apache.eventmesh.connector.openfunction.client; + +import static io.grpc.MethodDescriptor.generateFullMethodName; +import static io.grpc.stub.ClientCalls.asyncUnaryCall; +import static io.grpc.stub.ClientCalls.blockingUnaryCall; +import static io.grpc.stub.ClientCalls.futureUnaryCall; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; + +import org.apache.eventmesh.connect.openfunction.EventMeshGrpcService; + +/** + * + */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.4.0)", + comments = "Source: callback-service.proto") +public final class CallbackServiceGrpc { + + private CallbackServiceGrpc() { + } + + public static final String SERVICE_NAME = "org.apache.eventmesh.cloudevents.v1.CallbackService"; + + // Static method descriptors that strictly reflect the proto. + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + public static final io.grpc.MethodDescriptor METHOD_ON_TOPIC_EVENT = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName( + "org.apache.eventmesh.cloudevents.v1.CallbackService", "OnTopicEvent")) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.getDefaultInstance())) + .build(); + + /** + * Creates a new async stub that supports all call types for the service + */ + public static CallbackServiceStub newStub(io.grpc.Channel channel) { + return new CallbackServiceStub(channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static CallbackServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + return new CallbackServiceBlockingStub(channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static CallbackServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + return new CallbackServiceFutureStub(channel); + } + + /** + * + */ + public static abstract class CallbackServiceImplBase implements io.grpc.BindableService { + + /** + *
+         * Subscribes events
+         * 
+ */ + public void onTopicEvent(org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(METHOD_ON_TOPIC_EVENT, responseObserver); + } + + @Override + public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + METHOD_ON_TOPIC_EVENT, + asyncUnaryCall( + new MethodHandlers< + org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent, + org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent>( + this, METHODID_ON_TOPIC_EVENT))) + .build(); + } + } + + /** + * + */ + public static final class CallbackServiceStub extends io.grpc.stub.AbstractStub { + + private CallbackServiceStub(io.grpc.Channel channel) { + super(channel); + } + + private CallbackServiceStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @Override + protected CallbackServiceStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new CallbackServiceStub(channel, callOptions); + } + + /** + *
+         * Subscribes events
+         * 
+ */ + public void onTopicEvent(org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnaryCall( + getChannel().newCall(METHOD_ON_TOPIC_EVENT, getCallOptions()), request, responseObserver); + } + } + + /** + * + */ + public static final class CallbackServiceBlockingStub extends io.grpc.stub.AbstractStub { + + private CallbackServiceBlockingStub(io.grpc.Channel channel) { + super(channel); + } + + private CallbackServiceBlockingStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @Override + protected CallbackServiceBlockingStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new CallbackServiceBlockingStub(channel, callOptions); + } + + /** + *
+         * Subscribes events
+         * 
+ */ + public org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent onTopicEvent( + org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request) { + return blockingUnaryCall( + getChannel(), METHOD_ON_TOPIC_EVENT, getCallOptions(), request); + } + } + + /** + * + */ + public static final class CallbackServiceFutureStub extends io.grpc.stub.AbstractStub { + + private CallbackServiceFutureStub(io.grpc.Channel channel) { + super(channel); + } + + private CallbackServiceFutureStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @Override + protected CallbackServiceFutureStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new CallbackServiceFutureStub(channel, callOptions); + } + + /** + *
+         * Subscribes events
+         * 
+ */ + public com.google.common.util.concurrent.ListenableFuture onTopicEvent( + org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request) { + return futureUnaryCall( + getChannel().newCall(METHOD_ON_TOPIC_EVENT, getCallOptions()), request); + } + } + + private static final int METHODID_ON_TOPIC_EVENT = 0; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + + private final CallbackServiceImplBase serviceImpl; + private final int methodId; + + MethodHandlers(CallbackServiceImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @Override + @SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_ON_TOPIC_EVENT: + serviceImpl.onTopicEvent((org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @Override + @SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static final class CallbackServiceDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier { + + @Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return EventMeshGrpcService.getDescriptor(); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (CallbackServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new CallbackServiceDescriptorSupplier()) + .addMethod(METHOD_ON_TOPIC_EVENT) + .build(); + } + } + } + return result; + } +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java new file mode 100644 index 0000000000..7465c24ef0 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java @@ -0,0 +1,89 @@ +/* + * 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.connector.openfunction.client; + +import org.apache.eventmesh.client.grpc.config.EventMeshGrpcClientConfig; +import org.apache.eventmesh.client.grpc.producer.EventMeshGrpcProducer; +import org.apache.eventmesh.client.tcp.common.EventMeshCommon; +import org.apache.eventmesh.common.Constants; +import org.apache.eventmesh.common.utils.JsonUtils; +import org.apache.eventmesh.common.utils.ThreadUtils; + +import java.io.IOException; +import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import io.cloudevents.CloudEvent; +import io.cloudevents.core.builder.CloudEventBuilder; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class CloudEventsPublishInstance { + + // This messageSize is also used in SubService.java (Subscriber) + public static final int MESSAGE_SIZE = 5; + + public static void main(String[] args) throws Exception { + + try (EventMeshGrpcProducer eventMeshGrpcProducer = new EventMeshGrpcProducer( + initEventMeshGrpcClientConfig("FUNCTION_PRODUCER_GROUP"))) { + + final Map content = new HashMap<>(); + content.put("content", "testAsyncMessage"); + + for (int i = 0; i < MESSAGE_SIZE; i++) { + eventMeshGrpcProducer.publish(buildCloudEvent(content)); + ThreadUtils.sleep(1, TimeUnit.SECONDS); + } + + ThreadUtils.sleep(30, TimeUnit.SECONDS); + } + } + + protected static EventMeshGrpcClientConfig initEventMeshGrpcClientConfig(final String groupName) throws IOException { + final String eventMeshIp = "127.0.0.1"; + final String eventMeshGrpcPort = "10110"; + + return EventMeshGrpcClientConfig.builder() + .serverAddr(eventMeshIp) + .serverPort(Integer.parseInt(eventMeshGrpcPort)) + .producerGroup(groupName) + .env("env") + .idc("idc") + .sys("1234") + .build(); + } + + protected static CloudEvent buildCloudEvent(final Map content) { + return CloudEventBuilder.v1() + .withId(UUID.randomUUID().toString()) + .withSubject("TEST-TOPIC-FUNCTION") + .withSource(URI.create("/")) + .withDataContentType("application/cloudevents+json") + .withType(EventMeshCommon.CLOUD_EVENTS_PROTOCOL_NAME) + .withData(JsonUtils.toJSONString(content).getBytes(StandardCharsets.UTF_8)) + .withExtension(Constants.EVENTMESH_MESSAGE_CONST_TTL, String.valueOf(4 * 1000)) + .build(); + + } +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java new file mode 100644 index 0000000000..d1e5c5affd --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java @@ -0,0 +1,40 @@ +/* + * 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.connector.openfunction.client; + +import io.grpc.Server; +import io.grpc.ServerBuilder; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class CloudEventsSubscribeInstance { + + public static void main(String[] args) throws Exception { + Server server = ServerBuilder.forPort(10115).addService(new CallbackService()).build(); + server.start(); + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try { + server.shutdown(); + } catch (Exception e) { + log.error("exception when shutdown.", e); + } + })); + server.awaitTermination(); + } +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java new file mode 100644 index 0000000000..79a0da01a4 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java @@ -0,0 +1,62 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: callback-service.proto + +package org.apache.eventmesh.connector.openfunction.client; + +public final class EventMeshGrpcService { + + private EventMeshGrpcService() { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + + static { + String[] descriptorData = { + "\n\026callback-service.proto\022#org.apache.eve" + + "ntmesh.cloudevents.v1\032\033eventmesh-cloudev" + + "ents.proto\032\031google/protobuf/any.proto\032\037g" + + "oogle/protobuf/timestamp.proto2\203\001\n\017Callb" + + "ackService\022p\n\014OnTopicEvent\022/.org.apache." + + "eventmesh.cloudevents.v1.CloudEvent\032/.or" + + "g.apache.eventmesh.cloudevents.v1.CloudE" + + "ventBA\n)org.apache.eventmesh.connect.ope" + + "nfunctionB\024EventMeshGrpcServiceb\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + org.apache.eventmesh.common.protocol.grpc.cloudevents.EventMeshCloudEvents.getDescriptor(), + com.google.protobuf.AnyProto.getDescriptor(), + com.google.protobuf.TimestampProto.getDescriptor(), + }, assigner); + org.apache.eventmesh.common.protocol.grpc.cloudevents.EventMeshCloudEvents.getDescriptor(); + com.google.protobuf.AnyProto.getDescriptor(); + com.google.protobuf.TimestampProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java new file mode 100644 index 0000000000..293dd13614 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java @@ -0,0 +1,37 @@ +/* + * 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.connector.openfunction.config; + +import org.apache.eventmesh.openconnect.api.config.Config; + +import lombok.Data; + +@Data +public class OpenFunctionServerConfig extends Config { + + private int serverPort; + + private boolean sourceEnable; + + private boolean sinkEnable; + + private String targetAddress; + + private int targetPort; + +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java new file mode 100644 index 0000000000..6fa404cfe5 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java @@ -0,0 +1,81 @@ +/* + * 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.connector.openfunction.server; + +import org.apache.eventmesh.connector.openfunction.config.OpenFunctionServerConfig; +import org.apache.eventmesh.connector.openfunction.service.ConsumerService; +import org.apache.eventmesh.connector.openfunction.service.ProducerService; +import org.apache.eventmesh.connector.openfunction.sink.connector.OpenFunctionSinkConnector; +import org.apache.eventmesh.connector.openfunction.source.connector.OpenFunctionSourceConnector; +import org.apache.eventmesh.openconnect.Application; +import org.apache.eventmesh.openconnect.api.connector.Connector; +import org.apache.eventmesh.openconnect.util.ConfigUtil; + + +import java.util.Map; + +import io.grpc.Server; +import io.grpc.ServerBuilder; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class OpenFunctionConnectServer { + + private static Server server; + + public static void main(String[] args) throws Exception { + + OpenFunctionServerConfig serverConfig = ConfigUtil.parse(OpenFunctionServerConfig.class, "server-config.yml"); + + int serverPort = serverConfig.getServerPort(); + + ServerBuilder grpcServerBuilder = ServerBuilder.forPort(serverPort); + + if (serverConfig.isSourceEnable()) { + Application openFunctionSourceApp = new Application(); + openFunctionSourceApp.run(OpenFunctionSourceConnector.class); + } + + if (serverConfig.isSinkEnable()) { + Application openFunctionSinkApp = new Application(); + openFunctionSinkApp.run(OpenFunctionSinkConnector.class); + } + + Map connectorMap = Application.CONNECTOR_MAP; + + for (Map.Entry entry : connectorMap.entrySet()) { + if (Application.isSource(entry.getValue().getClass())) { + grpcServerBuilder.addService(new ProducerService((OpenFunctionSourceConnector) entry.getValue(), serverConfig)); + } else if (Application.isSink(entry.getValue().getClass())) { + grpcServerBuilder.addService(new ConsumerService((OpenFunctionSinkConnector) entry.getValue(), serverConfig)); + } + } + server = grpcServerBuilder.build(); + server.start(); + + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try { + server.shutdown(); + } catch (Exception e) { + log.error("exception when shutdown.", e); + } + })); + server.awaitTermination(); + } +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java new file mode 100644 index 0000000000..1df20652a7 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java @@ -0,0 +1,92 @@ +/* + * 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.connector.openfunction.service; + +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.Builder; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.CloudEventAttributeValue; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.ConsumerServiceGrpc; +import org.apache.eventmesh.connector.openfunction.client.CallbackServiceGrpc; +import org.apache.eventmesh.connector.openfunction.client.CallbackServiceGrpc.CallbackServiceBlockingStub; +import org.apache.eventmesh.connector.openfunction.config.OpenFunctionServerConfig; +import org.apache.eventmesh.connector.openfunction.sink.connector.OpenFunctionSinkConnector; +import org.apache.eventmesh.openconnect.api.data.ConnectRecord; + +import org.apache.commons.lang3.StringUtils; + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import io.cloudevents.SpecVersion; +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class ConsumerService extends ConsumerServiceGrpc.ConsumerServiceImplBase { + + public OpenFunctionSinkConnector openFunctionSinkConnector; + + public BlockingQueue queue; + + public OpenFunctionServerConfig config; + + private final transient ManagedChannel channel = ManagedChannelBuilder.forAddress("127.0.0.1", 10115).usePlaintext().build(); + + private CallbackServiceBlockingStub publisherClient = CallbackServiceGrpc.newBlockingStub(channel); + + private final ExecutorService handleService = Executors.newSingleThreadExecutor(); + + + public ConsumerService(OpenFunctionSinkConnector openFunctionSinkConnector, OpenFunctionServerConfig serverConfig) { + this.openFunctionSinkConnector = openFunctionSinkConnector; + this.queue = openFunctionSinkConnector.queue(); + this.config = serverConfig; + handleService.execute(this::startHandleConsumeEvents); + } + + private void startHandleConsumeEvents() { + while (openFunctionSinkConnector.isRunning()) { + ConnectRecord connectRecord = queue.poll(); + if (connectRecord != null) { + CloudEvent response = publisherClient.onTopicEvent(convertRecordToEvent(connectRecord)); + } + } + + } + + private CloudEvent convertRecordToEvent(ConnectRecord connectRecord) { + Builder cloudEventBuilder = CloudEvent.newBuilder(); + cloudEventBuilder.setId(connectRecord.getExtension("id")); + cloudEventBuilder.setSource(connectRecord.getExtension("source")); + cloudEventBuilder.setSpecVersion(SpecVersion.V1.toString()); + cloudEventBuilder.setType(connectRecord.getExtension("type")); + cloudEventBuilder.setTextData(new String((byte[]) connectRecord.getData())); + for (String extensionKey : connectRecord.getExtensions().keySet()) { + if (!StringUtils.equalsAny(extensionKey, "id", "source", "type")) { + cloudEventBuilder.putAttributes(extensionKey, + CloudEventAttributeValue.newBuilder().setCeString(connectRecord.getExtension(extensionKey)).build()); + } + } + return cloudEventBuilder.build(); + } + + +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java new file mode 100644 index 0000000000..42ccea0427 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java @@ -0,0 +1,122 @@ +/* + * 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.connector.openfunction.service; + +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.CloudEventAttributeValue; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEventBatch; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.PublisherServiceGrpc; +import org.apache.eventmesh.common.protocol.grpc.common.ProtocolKey; +import org.apache.eventmesh.common.protocol.grpc.common.StatusCode; +import org.apache.eventmesh.connector.openfunction.config.OpenFunctionServerConfig; +import org.apache.eventmesh.connector.openfunction.source.connector.OpenFunctionSourceConnector; +import org.apache.eventmesh.openconnect.api.data.ConnectRecord; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.util.Objects; +import java.util.concurrent.BlockingQueue; + +import io.grpc.stub.StreamObserver; + +import com.google.protobuf.Timestamp; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class ProducerService extends PublisherServiceGrpc.PublisherServiceImplBase { + + public OpenFunctionSourceConnector openFunctionSourceConnector; + + public BlockingQueue queue; + + public OpenFunctionServerConfig config; + + public ProducerService(OpenFunctionSourceConnector openFunctionSourceConnector, OpenFunctionServerConfig serverConfig) { + this.openFunctionSourceConnector = openFunctionSourceConnector; + this.queue = openFunctionSourceConnector.queue(); + this.config = serverConfig; + } + + /** + * publish event to eventmesh + * + * @param event + * @param responseObserver + */ + @Override + public void publish(CloudEvent event, StreamObserver responseObserver) { + log.info("receive cloudevents {}", event); + Instant instant = now(); + CloudEvent.Builder builder = CloudEvent.newBuilder(); + ConnectRecord connectRecord = convertCloudEventToConnectorRecord(event); + try { + // put record to source connector + queue.put(connectRecord); + builder.putAttributes(ProtocolKey.GRPC_RESPONSE_CODE, + CloudEventAttributeValue.newBuilder().setCeString(StatusCode.SUCCESS.getRetCode()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_MESSAGE, + CloudEventAttributeValue.newBuilder().setCeString(StatusCode.SUCCESS.getErrMsg()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_TIME, CloudEventAttributeValue.newBuilder() + .setCeTimestamp(Timestamp.newBuilder().setSeconds(instant.getEpochSecond()).setNanos(instant.getNano()).build()).build()); + } catch (InterruptedException e) { + log.error("publish event error {}", e.getMessage()); + builder.putAttributes(ProtocolKey.GRPC_RESPONSE_CODE, + CloudEventAttributeValue.newBuilder().setCeString(StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR.getRetCode()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_MESSAGE, + CloudEventAttributeValue.newBuilder().setCeString(StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR.getErrMsg()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_TIME, CloudEventAttributeValue.newBuilder() + .setCeTimestamp(Timestamp.newBuilder().setSeconds(instant.getEpochSecond()).setNanos(instant.getNano()).build()).build()); + throw new RuntimeException(e); + } + + responseObserver.onNext(builder.build()); + responseObserver.onCompleted(); + + } + + private ConnectRecord convertCloudEventToConnectorRecord(CloudEvent event) { + ConnectRecord connectRecord = new ConnectRecord(null, null, System.currentTimeMillis(), event.getTextData()); + for (String extensionName : event.getAttributesMap().keySet()) { + connectRecord.addExtension(extensionName, Objects.requireNonNull(event.getAttributesOrThrow(extensionName)).getCeString()); + } + connectRecord.addExtension("id", event.getId()); + connectRecord.addExtension("source", event.getSource()); + connectRecord.addExtension("type", event.getType()); + return connectRecord; + } + + /** + * publish eventBatch to eventmesh + * + * @param eventBatch + * @param responseObserver + */ + @Override + public void batchPublish(CloudEventBatch eventBatch, StreamObserver responseObserver) { + + } + + private static Instant now() { + return OffsetDateTime.of(LocalDateTime.now(ZoneId.systemDefault()), ZoneOffset.UTC).toInstant(); + } + +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java new file mode 100644 index 0000000000..a1ee99f687 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java @@ -0,0 +1,29 @@ +/* + * 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.connector.openfunction.sink.config; + +import org.apache.eventmesh.openconnect.api.config.SinkConfig; + +import lombok.Data; + +@Data +public class OpenFunctionSinkConfig extends SinkConfig { + + public SinkConnectorConfig sinkConnectorConfig; + +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java new file mode 100644 index 0000000000..77c1b7c701 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java @@ -0,0 +1,28 @@ +/* + * 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.connector.openfunction.sink.config; + +import lombok.Data; + +@Data +public class SinkConnectorConfig { + + private String connectorName; + + private String target; +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java new file mode 100644 index 0000000000..80052f4edf --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java @@ -0,0 +1,89 @@ +/* + * 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.connector.openfunction.sink.connector; + +import org.apache.eventmesh.connector.openfunction.sink.config.OpenFunctionSinkConfig; +import org.apache.eventmesh.openconnect.api.config.Config; +import org.apache.eventmesh.openconnect.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.api.sink.Sink; + +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class OpenFunctionSinkConnector implements Sink { + + private OpenFunctionSinkConfig sinkConfig; + + private BlockingQueue queue; + + private volatile boolean isRunning = false; + + @Override + public Class configClass() { + return OpenFunctionSinkConfig.class; + } + + @Override + public void init(Config config) throws Exception { + // init config for openfunction source connector + this.sinkConfig = (OpenFunctionSinkConfig) config; + this.queue = new LinkedBlockingQueue<>(1000); + } + + @Override + public void start() throws Exception { + isRunning = true; + } + + @Override + public void commit(ConnectRecord record) { + + } + + @Override + public String name() { + return this.sinkConfig.getSinkConnectorConfig().getConnectorName(); + } + + @Override + public void stop() { + } + + @Override + public void put(List sinkRecords) { + for (ConnectRecord connectRecord : sinkRecords) { + try { + queue.put(connectRecord); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } + + public BlockingQueue queue() { + return queue; + } + + public boolean isRunning() { + return isRunning; + } +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java new file mode 100644 index 0000000000..6baf076c1a --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java @@ -0,0 +1,29 @@ +/* + * 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.connector.openfunction.source.config; + +import org.apache.eventmesh.openconnect.api.config.SourceConfig; + +import lombok.Data; + +@Data +public class OpenFunctionSourceConfig extends SourceConfig { + + public SourceConnectorConfig sourceConnectorConfig; + +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java new file mode 100644 index 0000000000..93fc9739fc --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java @@ -0,0 +1,27 @@ +/* + * 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.connector.openfunction.source.config; + +import lombok.Data; + +@Data +public class SourceConnectorConfig { + + private String connectorName; + +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java new file mode 100644 index 0000000000..4e79a56d92 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java @@ -0,0 +1,84 @@ +/* + * 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.connector.openfunction.source.connector; + +import org.apache.eventmesh.connector.openfunction.source.config.OpenFunctionSourceConfig; +import org.apache.eventmesh.openconnect.api.config.Config; +import org.apache.eventmesh.openconnect.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.api.source.Source; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class OpenFunctionSourceConnector implements Source { + + private OpenFunctionSourceConfig sourceConfig; + + private BlockingQueue queue; + + @Override + public Class configClass() { + return OpenFunctionSourceConfig.class; + } + + @Override + public void init(Config config) throws Exception { + // init config for openfunction source connector + this.sourceConfig = (OpenFunctionSourceConfig) config; + this.queue = new LinkedBlockingQueue<>(1000); + } + + @Override + public void start() throws Exception { + + } + + @Override + public void commit(ConnectRecord record) { + + } + + @Override + public String name() { + return this.sourceConfig.getSourceConnectorConfig().getConnectorName(); + } + + @Override + public void stop() { + + } + + public BlockingQueue queue() { + return queue; + } + + @Override + public List poll() { + List connectRecords = new ArrayList<>(); + ConnectRecord connectRecord = queue.poll(); + if (connectRecord != null) { + connectRecords.add(connectRecord); + } + return connectRecords; + } +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/callback-service.proto b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/callback-service.proto new file mode 100644 index 0000000000..b7e21d054f --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/callback-service.proto @@ -0,0 +1,37 @@ +/* + * 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. + */ + +syntax = "proto3"; + +package org.apache.eventmesh.cloudevents.v1; + +import "eventmesh-cloudevents.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; + +option java_outer_classname = "EventMeshGrpcService"; +option java_package = "org.apache.eventmesh.connect.openfunction"; + +service CallbackService { + + // Subscribes events + rpc OnTopicEvent(CloudEvent) returns (CloudEvent); + +} + + + diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-cloudevents.proto b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-cloudevents.proto new file mode 100644 index 0000000000..37e07a0b40 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-cloudevents.proto @@ -0,0 +1,86 @@ +/* + * 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. + */ + + + +/** + * CloudEvent Protobuf Format + * + * - Required context attributes are explicitly represented. + * - Optional and Extension context attributes are carried in a map structure. + * - Data may be represented as binary, text, or protobuf messages. + */ + +syntax = "proto3"; + +package org.apache.eventmesh.cloudevents.v1; + +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; + +option java_package = "org.apache.eventmesh.common.protocol.grpc.cloudevents"; +option java_multiple_files = true; +option java_outer_classname = "EventMeshCloudEvents"; + + +message CloudEvent { + + // -- CloudEvent Context Attributes + + // Required Attributes + string id = 1; + string source = 2; // URI-reference + string spec_version = 3; + string type = 4; + + // Optional & Extension Attributes + map attributes = 5; + + // -- CloudEvent Data (Bytes, Text, or Proto) + oneof data { + bytes binary_data = 6; + string text_data = 7; + google.protobuf.Any proto_data = 8; + } + + /** + * The CloudEvent specification defines + * seven attribute value types... + */ + + message CloudEventAttributeValue { + + oneof attr { + bool ce_boolean = 1; + int32 ce_integer = 2; + string ce_string = 3; + bytes ce_bytes = 4; + string ce_uri = 5; + string ce_uri_ref = 6; + google.protobuf.Timestamp ce_timestamp = 7; + } + } +} + +/** + * CloudEvent Protobuf Batch Format + * + */ + +message CloudEventBatch { + repeated CloudEvent events = 1; +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-service.proto b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-service.proto new file mode 100644 index 0000000000..99d57bc514 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-service.proto @@ -0,0 +1,58 @@ +/* + * 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. + */ +syntax = "proto3"; + +package org.apache.eventmesh.cloudevents.v1; + +import "google/protobuf/empty.proto"; +import "eventmesh-cloudevents.proto"; + +option java_package = "org.apache.eventmesh.common.protocol.grpc.cloudevents"; +option java_multiple_files = true; +option java_outer_classname = "EventMeshGrpcService"; + + +service PublisherService { + //publish event + rpc publish(CloudEvent) returns (CloudEvent); + + //publish event with reply + rpc requestReply(CloudEvent) returns (CloudEvent); + + //publish event one way + rpc publishOneWay(CloudEvent) returns (google.protobuf.Empty); + + // publish batch event + rpc batchPublish(CloudEventBatch) returns (CloudEvent); + + //publish batch event one way + rpc batchPublishOneWay(CloudEventBatch) returns (google.protobuf.Empty); +} + +service ConsumerService { + // The subscribed event will be delivered by invoking the webhook url in the Subscription + rpc subscribe(CloudEvent) returns (CloudEvent); + + // The subscribed event will be delivered through stream of Message + rpc subscribeStream(stream CloudEvent) returns (stream CloudEvent); + + rpc unsubscribe(CloudEvent) returns (CloudEvent); +} + +service HeartbeatService { + rpc heartbeat(CloudEvent) returns (CloudEvent); +} diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/server-config.yml b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/server-config.yml new file mode 100644 index 0000000000..83c94d164b --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/server-config.yml @@ -0,0 +1,22 @@ +# +# 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. +# + +serverPort: 10110 +sourceEnable: true +sinkEnable: true +targetAddress: 127.0.0.1 +targetPort: 10115 diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/sink-config.yml b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/sink-config.yml new file mode 100644 index 0000000000..659ed04920 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/sink-config.yml @@ -0,0 +1,29 @@ +# +# 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. +# + +pubSubConfig: + meshAddress: 127.0.0.1:10000 + subject: TEST-TOPIC-FUNCTION + idc: FT + env: PRD + group: openFunctionSink + appId: 5031 + userName: openFunctionSinkUser + passWord: openFunctionPassWord +sinkConnectorConfig: + connectorName: openFunctionSink + target: 127.0.0.1:8080/openfunction diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/source-config.yml b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/source-config.yml new file mode 100644 index 0000000000..1b75dcab42 --- /dev/null +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/source-config.yml @@ -0,0 +1,28 @@ +# +# 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. +# + +pubSubConfig: + meshAddress: 127.0.0.1:10000 + subject: TEST-TOPIC-FUNCTION + idc: FT + env: PRD + group: openFunctionSource + appId: 5031 + userName: openFunctionSourceUser + passWord: openFunctionPassWord +sourceConnectorConfig: + connectorName: openFunctionSource diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java b/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java index 611cdfa72e..61a67743bc 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java +++ b/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java @@ -24,7 +24,8 @@ public class RocketMQSinkWorker { public static void main(String[] args) throws Exception { - Application.run(RocketMQSinkConnector.class); + Application rocketmqSinkApp = new Application(); + rocketmqSinkApp.run(RocketMQSinkConnector.class); } } diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java b/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java index 41ce3135af..de984bffca 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java +++ b/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java @@ -23,8 +23,9 @@ public class RocketMQSourceWorker { public static void main(String[] args) throws Exception { - - Application.run(RocketMQSourceConnector.class); + + Application rocketmqSourceApp = new Application(); + rocketmqSourceApp.run(RocketMQSourceConnector.class); } 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 7d9b298c81..af1b0960fe 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 @@ -25,12 +25,17 @@ import org.apache.eventmesh.openconnect.api.source.Source; import org.apache.eventmesh.openconnect.util.ConfigUtil; +import java.util.HashMap; +import java.util.Map; + import lombok.extern.slf4j.Slf4j; @Slf4j public class Application { - public static void run(Class clazz) throws Exception { + public static final Map CONNECTOR_MAP = new HashMap<>(); + + public void run(Class clazz) throws Exception { Connector connector; try { connector = clazz.getDeclaredConstructor().newInstance(); @@ -49,6 +54,7 @@ public static void run(Class clazz) throws Exception { } try { connector.init(config); + CONNECTOR_MAP.putIfAbsent(connector.name(), connector); } catch (Exception e) { log.error("connector {} initialize error", connector.name(), e); return; @@ -71,7 +77,7 @@ public static void run(Class clazz) throws Exception { log.info("connector {} started", connector.name()); } - private static boolean isAssignableFrom(Class c, Class cls) { + public static boolean isAssignableFrom(Class c, Class cls) { Class[] clazzArr = c.getInterfaces(); for (Class clazz : clazzArr) { if (clazz.isAssignableFrom(cls)) { @@ -81,7 +87,7 @@ private static boolean isAssignableFrom(Class c, Class cls) { return false; } - private static boolean isSink(Class c) { + public static boolean isSink(Class c) { while (c != null && c != Object.class) { if (isAssignableFrom(c, Sink.class)) { return true; @@ -91,7 +97,7 @@ private static boolean isSink(Class c) { return false; } - private static boolean isSource(Class c) { + public static boolean isSource(Class c) { while (c != null && c != Object.class) { if (isAssignableFrom(c, Source.class)) { return true; 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 94d52b0f13..e3058b859c 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 @@ -125,6 +125,7 @@ public EventHandler(Sink sink) { @Override public Optional handle(CloudEvent event) { byte[] body = Objects.requireNonNull(event.getData()).toBytes(); + log.info("handle receive events {}", new String(event.getData().toBytes())); //todo: recordPartition & recordOffset ConnectRecord connectRecord = new ConnectRecord(null, null, System.currentTimeMillis(), body); for (String extensionName : event.getExtensionNames()) { diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java index c9e078a745..b64f86e6f0 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java @@ -55,6 +55,8 @@ public class SourceWorker implements ConnectorWorker { private final ExecutorService pollService = Executors.newSingleThreadExecutor(); + private final ExecutorService startService = Executors.newSingleThreadExecutor(); + private final BlockingQueue queue; private final EventMeshTCPClient eventMeshTCPClient; @@ -101,11 +103,17 @@ public void start() { log.info("event mesh address is {}", config.getPubSubConfig().getMeshAddress()); isRunning = true; pollService.execute(this::startPoll); - try { - startConnector(); - } catch (Exception e) { - log.error("source worker[{}] start fail", source.name(), e); - } + + startService.execute( + () -> { + try { + startConnector(); + } catch (Exception e) { + log.error("source worker[{}] start fail", source.name(), e); + throw new RuntimeException(e); + } + } + ); } public void startPoll() { @@ -137,8 +145,6 @@ private void startConnector() throws Exception { } private CloudEvent convertRecordToEvent(ConnectRecord connectRecord) { - final Map content = new HashMap<>(); - content.put("content", connectRecord.getData().toString()); return CloudEventBuilder.v1() .withId(UUID.randomUUID().toString()) @@ -146,7 +152,7 @@ private CloudEvent convertRecordToEvent(ConnectRecord connectRecord) { .withSource(URI.create("/")) .withDataContentType("application/cloudevents+json") .withType(EventMeshCommon.CLOUD_EVENTS_PROTOCOL_NAME) - .withData(Objects.requireNonNull(JsonUtils.toJSONString(content)).getBytes(StandardCharsets.UTF_8)) + .withData(Objects.requireNonNull(JsonUtils.toJSONString(connectRecord.getData())).getBytes(StandardCharsets.UTF_8)) .withExtension("ttl", 10000) .build(); } diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/Constants.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/Constants.java index de8eb51a53..59794e562a 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/Constants.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/Constants.java @@ -23,7 +23,9 @@ public class Constants { public static final String ENV_PORT = "connectorPort"; - public static final String ENV_CONFIG_FILE = "connectorConf"; + public static final String ENV_SOURCE_CONFIG_FILE = "sourceConnectorConf"; + + public static final String ENV_SINK_CONFIG_FILE = "sinkConnectorConf"; public static final int DEFAULT_ATTEMPT = 3; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java index fdd9df65cd..07d8bb52a8 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java @@ -19,6 +19,8 @@ import org.apache.eventmesh.openconnect.api.config.Config; import org.apache.eventmesh.openconnect.api.config.Constants; +import org.apache.eventmesh.openconnect.api.config.SinkConfig; +import org.apache.eventmesh.openconnect.api.config.SourceConfig; import java.io.File; import java.io.FileNotFoundException; @@ -37,10 +39,16 @@ public static Config parse(Class c) throws Exception { if (c == null) { return null; } - return parseConfig(c); + if (isSourceConfig(c)){ + return parseSourceConfig(c); + } else if (isSinkConfig(c)) { + return parseSinkConfig(c); + } else { + throw new RuntimeException("illegal config, parse config error"); + } } - private static T parse(Class c, String filePathName) throws Exception { + public static T parse(Class c, String filePathName) throws Exception { ObjectMapper objectMapper; if (filePathName.endsWith("json")) { objectMapper = new ObjectMapper(); @@ -59,11 +67,33 @@ private static T parse(Class c, String filePathName) throws Exception { return objectMapper.readValue(url, c); } - private static Config parseConfig(Class c) throws Exception { - String configFile = System.getProperty(Constants.ENV_CONFIG_FILE, System.getenv(Constants.ENV_CONFIG_FILE)); + private static Config parseSourceConfig(Class c) throws Exception { + String configFile = System.getProperty(Constants.ENV_SOURCE_CONFIG_FILE, System.getenv(Constants.ENV_SOURCE_CONFIG_FILE)); + if (configFile == null || configFile.isEmpty()) { + configFile = "source-config.yml"; + } + return parse(c, configFile); + } + + private static Config parseSinkConfig(Class c) throws Exception { + String configFile = System.getProperty(Constants.ENV_SINK_CONFIG_FILE, System.getenv(Constants.ENV_SINK_CONFIG_FILE)); if (configFile == null || configFile.isEmpty()) { - configFile = "config.yml"; + configFile = "sink-config.yml"; } return parse(c, configFile); } + + public static boolean isSinkConfig(Class c) { + if (c != null && c != Object.class) { + return SinkConfig.class.isAssignableFrom(c); + } + return false; + } + + public static boolean isSourceConfig(Class c) { + if (c != null && c != Object.class) { + return SourceConfig.class.isAssignableFrom(c); + } + return false; + } } diff --git a/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java b/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java index 0a41a42f2a..47456a0e3d 100644 --- a/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java +++ b/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java @@ -24,9 +24,11 @@ import org.apache.eventmesh.api.exception.StorageRuntimeException; import org.apache.kafka.clients.admin.Admin; +import org.apache.kafka.clients.producer.Callback; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.clients.producer.RecordMetadata; import org.apache.kafka.common.serialization.StringSerializer; import java.util.Objects; diff --git a/settings.gradle b/settings.gradle index 5ec4b6fc0b..60ee4bb7d3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,9 +26,7 @@ include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' include 'eventmesh-connectors:source-connector-rocketmq' include 'eventmesh-connectors:sink-connector-rocketmq' -include 'eventmesh-connectors:openfunction-connect-runtime' -include 'eventmesh-connectors:source-connector-openfunction' -include 'eventmesh-connectors:sink-connector-openfunction' +include 'eventmesh-connectors:eventmesh-openfunction-connector' include 'eventmesh-storage-plugin:eventmesh-storage-api' include 'eventmesh-storage-plugin:eventmesh-storage-standalone' include 'eventmesh-storage-plugin:eventmesh-storage-kafka' From 519941aa96d48dc482465d8d7accac49d235a810 Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Fri, 16 Jun 2023 22:46:56 +0800 Subject: [PATCH 016/333] [ISSUE #4125] rename eventmesh-connector-openfunction module --- .../build.gradle | 0 .../gradle.properties | 0 .../connector/openfunction/client/CallbackService.java | 0 .../connector/openfunction/client/CallbackServiceGrpc.java | 0 .../openfunction/client/CloudEventsPublishInstance.java | 0 .../openfunction/client/CloudEventsSubscribeInstance.java | 0 .../connector/openfunction/client/EventMeshGrpcService.java | 0 .../connector/openfunction/config/OpenFunctionServerConfig.java | 0 .../openfunction/server/OpenFunctionConnectServer.java | 0 .../connector/openfunction/service/ConsumerService.java | 0 .../connector/openfunction/service/ProducerService.java | 0 .../openfunction/sink/config/OpenFunctionSinkConfig.java | 0 .../connector/openfunction/sink/config/SinkConnectorConfig.java | 0 .../openfunction/sink/connector/OpenFunctionSinkConnector.java | 0 .../openfunction/source/config/OpenFunctionSourceConfig.java | 0 .../openfunction/source/config/SourceConnectorConfig.java | 0 .../source/connector/OpenFunctionSourceConnector.java | 0 .../src/main/proto/callback-service.proto | 0 .../src/main/proto/eventmesh-cloudevents.proto | 0 .../src/main/proto/eventmesh-service.proto | 0 .../src/main/resources/server-config.yml | 0 .../src/main/resources/sink-config.yml | 0 .../src/main/resources/source-config.yml | 0 settings.gradle | 2 +- 24 files changed, 1 insertion(+), 1 deletion(-) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/build.gradle (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/gradle.properties (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/proto/callback-service.proto (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/proto/eventmesh-cloudevents.proto (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/proto/eventmesh-service.proto (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/resources/server-config.yml (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/resources/sink-config.yml (100%) rename eventmesh-connectors/{eventmesh-openfunction-connector => eventmesh-connector-openfunction}/src/main/resources/source-config.yml (100%) diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/build.gradle b/eventmesh-connectors/eventmesh-connector-openfunction/build.gradle similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/build.gradle rename to eventmesh-connectors/eventmesh-connector-openfunction/build.gradle diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/gradle.properties b/eventmesh-connectors/eventmesh-connector-openfunction/gradle.properties similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/gradle.properties rename to eventmesh-connectors/eventmesh-connector-openfunction/gradle.properties diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackService.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsPublishInstance.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CloudEventsSubscribeInstance.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/server/OpenFunctionConnectServer.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ProducerService.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/SinkConnectorConfig.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/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 similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/connector/OpenFunctionSinkConnector.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/SourceConnectorConfig.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/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 similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/connector/OpenFunctionSourceConnector.java diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/callback-service.proto b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/proto/callback-service.proto similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/callback-service.proto rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/proto/callback-service.proto diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-cloudevents.proto b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/proto/eventmesh-cloudevents.proto similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-cloudevents.proto rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/proto/eventmesh-cloudevents.proto diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-service.proto b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/proto/eventmesh-service.proto similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/proto/eventmesh-service.proto rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/proto/eventmesh-service.proto diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/server-config.yml b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/server-config.yml similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/server-config.yml rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/server-config.yml diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/sink-config.yml b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/sink-config.yml similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/sink-config.yml rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/sink-config.yml diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/source-config.yml b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/source-config.yml similarity index 100% rename from eventmesh-connectors/eventmesh-openfunction-connector/src/main/resources/source-config.yml rename to eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/source-config.yml diff --git a/settings.gradle b/settings.gradle index 60ee4bb7d3..dd3f3bd6d3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,7 +26,7 @@ include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' include 'eventmesh-connectors:source-connector-rocketmq' include 'eventmesh-connectors:sink-connector-rocketmq' -include 'eventmesh-connectors:eventmesh-openfunction-connector' +include 'eventmesh-connectors:eventmesh-connector-openfunction' include 'eventmesh-storage-plugin:eventmesh-storage-api' include 'eventmesh-storage-plugin:eventmesh-storage-standalone' include 'eventmesh-storage-plugin:eventmesh-storage-kafka' From 41adba308f5dd898dbcf49149c4f0160d520c0e8 Mon Sep 17 00:00:00 2001 From: HattoriHenzo Date: Fri, 16 Jun 2023 18:12:14 -0400 Subject: [PATCH 017/333] [Enhancement] Anonymous new can be replaced with lambda.[AsyncPubClient] --- .../client/CallbackServiceGrpc.java | 27 +++++++++++++++---- .../runtime/demo/AsyncPubClient.java | 14 +++------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java index 704fba24eb..82c6253f6d 100644 --- a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java @@ -1,3 +1,20 @@ +/* + * 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.connector.openfunction.client; import static io.grpc.MethodDescriptor.generateFullMethodName; @@ -7,7 +24,7 @@ import static io.grpc.stub.ServerCalls.asyncUnaryCall; import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; -import org.apache.eventmesh.connect.openfunction.EventMeshGrpcService; +import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent; /** * @@ -24,16 +41,16 @@ private CallbackServiceGrpc() { // Static method descriptors that strictly reflect the proto. @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") - public static final io.grpc.MethodDescriptor METHOD_ON_TOPIC_EVENT = - io.grpc.MethodDescriptor.newBuilder() + io.grpc.MethodDescriptor.newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( "org.apache.eventmesh.cloudevents.v1.CallbackService", "OnTopicEvent")) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.getDefaultInstance())) + CloudEvent.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent.getDefaultInstance())) + CloudEvent.getDefaultInstance())) .build(); /** diff --git a/eventmesh-runtime/src/test/java/org/apache/eventmesh/runtime/demo/AsyncPubClient.java b/eventmesh-runtime/src/test/java/org/apache/eventmesh/runtime/demo/AsyncPubClient.java index 480fe98daa..e46fe3e232 100644 --- a/eventmesh-runtime/src/test/java/org/apache/eventmesh/runtime/demo/AsyncPubClient.java +++ b/eventmesh-runtime/src/test/java/org/apache/eventmesh/runtime/demo/AsyncPubClient.java @@ -17,17 +17,12 @@ package org.apache.eventmesh.runtime.demo; -import org.apache.eventmesh.common.protocol.tcp.Package; import org.apache.eventmesh.common.utils.ThreadUtils; import org.apache.eventmesh.runtime.client.common.ClientConstants; import org.apache.eventmesh.runtime.client.common.MessageUtils; import org.apache.eventmesh.runtime.client.common.UserAgentUtils; -import org.apache.eventmesh.runtime.client.hook.ReceiveMsgHook; import org.apache.eventmesh.runtime.client.impl.PubClientImpl; -import io.netty.channel.ChannelHandlerContext; - - import lombok.extern.slf4j.Slf4j; @Slf4j @@ -38,12 +33,9 @@ public static void main(String[] args) throws Exception { new PubClientImpl("localhost", 10000, UserAgentUtils.createUserAgent())) { pubClient.init(); pubClient.heartbeat(); - pubClient.registerBusiHandler(new ReceiveMsgHook() { - @Override - public void handle(Package msg, ChannelHandlerContext ctx) { - if (log.isInfoEnabled()) { - log.info("server good by request: {}", msg); - } + pubClient.registerBusiHandler((msg, ctx) -> { + if (log.isInfoEnabled()) { + log.info("server good by request: {}", msg); } }); From 833b5866e31f73c26c179aea1ac1209fcd7010f1 Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Sat, 17 Jun 2023 14:57:24 +0800 Subject: [PATCH 018/333] [ISSUE #4128] Add eventmesh-connector-rocketmq module --- .../build.gradle | 2 +- .../gradle.properties | 0 .../config/RocketMQServerConfig.java} | 16 ++++---- .../server/RocketMQConnectServer.java} | 29 ++++++++++---- .../sink}/config/RocketMQSinkConfig.java | 4 +- .../sink/config/SinkConnectorConfig.java} | 4 +- .../connector/RocketMQSinkConnector.java | 4 +- .../source}/config/RocketMQSourceConfig.java | 4 +- .../source/config/SourceConnectorConfig.java} | 4 +- .../connector/RocketMQSourceConnector.java | 4 +- .../src/main/resources/server-config.yml} | 4 +- .../src/main/resources/sink-config.yml} | 2 +- .../src/main/resources/source-config.yml} | 2 +- .../source-connector-rocketmq/build.gradle | 40 ------------------- settings.gradle | 3 +- 15 files changed, 49 insertions(+), 73 deletions(-) rename eventmesh-connectors/{sink-connector-rocketmq => eventmesh-connector-rocketmq}/build.gradle (99%) rename eventmesh-connectors/{sink-connector-rocketmq => eventmesh-connector-rocketmq}/gradle.properties (100%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java} (66%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java} (51%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink}/config/RocketMQSinkConfig.java (89%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java} (90%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink}/connector/RocketMQSinkConnector.java (96%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source}/config/RocketMQSourceConfig.java (89%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java} (90%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source}/connector/RocketMQSourceConnector.java (96%) rename eventmesh-connectors/{source-connector-rocketmq/gradle.properties => eventmesh-connector-rocketmq/src/main/resources/server-config.yml} (95%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/resources/config.yml => eventmesh-connector-rocketmq/src/main/resources/sink-config.yml} (98%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/resources/config.yml => eventmesh-connector-rocketmq/src/main/resources/source-config.yml} (97%) delete mode 100644 eventmesh-connectors/source-connector-rocketmq/build.gradle diff --git a/eventmesh-connectors/sink-connector-rocketmq/build.gradle b/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle similarity index 99% rename from eventmesh-connectors/sink-connector-rocketmq/build.gradle rename to eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle index f72ce1a515..bdad6c48e3 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/build.gradle +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle @@ -37,4 +37,4 @@ dependencies { implementation rocketmq compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' -} +} \ No newline at end of file diff --git a/eventmesh-connectors/sink-connector-rocketmq/gradle.properties b/eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties similarity index 100% rename from eventmesh-connectors/sink-connector-rocketmq/gradle.properties rename to eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java similarity index 66% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java index 61a67743bc..be90ee2087 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java @@ -15,17 +15,17 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq; +package org.apache.eventmesh.connector.rocketmq.config; -import org.apache.eventmesh.openconnect.Application; -import org.apache.eventmesh.sink.connector.rocketmq.connector.RocketMQSinkConnector; +import org.apache.eventmesh.openconnect.api.config.Config; -public class RocketMQSinkWorker { +import lombok.Data; - public static void main(String[] args) throws Exception { +@Data +public class RocketMQServerConfig extends Config { - Application rocketmqSinkApp = new Application(); - rocketmqSinkApp.run(RocketMQSinkConnector.class); + private boolean sourceEnable; + + private boolean sinkEnable; - } } diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java similarity index 51% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java index de984bffca..060b9fa01b 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java @@ -15,18 +15,33 @@ * limitations under the License. */ -package org.apache.eventmesh.source.connector.rocketmq; +package org.apache.eventmesh.connector.rocketmq.server; +import org.apache.eventmesh.connector.rocketmq.config.RocketMQServerConfig; +import org.apache.eventmesh.connector.rocketmq.sink.connector.RocketMQSinkConnector; +import org.apache.eventmesh.connector.rocketmq.source.connector.RocketMQSourceConnector; import org.apache.eventmesh.openconnect.Application; -import org.apache.eventmesh.source.connector.rocketmq.connector.RocketMQSourceConnector; +import org.apache.eventmesh.openconnect.util.ConfigUtil; + + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class RocketMQConnectServer { -public class RocketMQSourceWorker { public static void main(String[] args) throws Exception { - Application rocketmqSourceApp = new Application(); - rocketmqSourceApp.run(RocketMQSourceConnector.class); - - } + RocketMQServerConfig serverConfig = ConfigUtil.parse(RocketMQServerConfig.class, "server-config.yml"); + + if (serverConfig.isSourceEnable()) { + Application rocketmqSourceApp = new Application(); + rocketmqSourceApp.run(RocketMQSourceConnector.class); + } + if (serverConfig.isSinkEnable()) { + Application rocketmqSinkApp = new Application(); + rocketmqSinkApp.run(RocketMQSinkConnector.class); + } + } } diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/RocketMQSinkConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java similarity index 89% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/RocketMQSinkConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java index 0b90fb3990..b59dd523da 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/RocketMQSinkConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.sink.config; import org.apache.eventmesh.openconnect.api.config.SinkConfig; @@ -24,6 +24,6 @@ @Data public class RocketMQSinkConfig extends SinkConfig { - public ConnectorConfig connectorConfig; + public SinkConnectorConfig connectorConfig; } diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java similarity index 90% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java index 47dcd683bb..034dd7ce0c 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.sink.config; import lombok.Data; @Data -public class ConnectorConfig { +public class SinkConnectorConfig { private String connectorName; diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/connector/RocketMQSinkConnector.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java similarity index 96% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/connector/RocketMQSinkConnector.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java index c50c3969c1..2ac0a30521 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/connector/RocketMQSinkConnector.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq.connector; +package org.apache.eventmesh.connector.rocketmq.sink.connector; +import org.apache.eventmesh.connector.rocketmq.sink.config.RocketMQSinkConfig; import org.apache.eventmesh.openconnect.api.config.Config; import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.sink.Sink; -import org.apache.eventmesh.sink.connector.rocketmq.config.RocketMQSinkConfig; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.SendResult; diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/RocketMQSourceConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java similarity index 89% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/RocketMQSourceConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java index 204cd96182..33d9b9d00d 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/RocketMQSourceConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.source.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.source.config; import org.apache.eventmesh.openconnect.api.config.SourceConfig; @@ -24,5 +24,5 @@ @Data public class RocketMQSourceConfig extends SourceConfig { - public ConnectorConfig connectorConfig; + public SourceConnectorConfig connectorConfig; } diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java similarity index 90% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java index f139bd6eb7..1bdb4506b5 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java @@ -16,12 +16,12 @@ */ -package org.apache.eventmesh.source.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.source.config; import lombok.Data; @Data -public class ConnectorConfig { +public class SourceConnectorConfig { private String connectorName; diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java similarity index 96% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java index 3e497a2983..fd7e44589b 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package org.apache.eventmesh.source.connector.rocketmq.connector; +package org.apache.eventmesh.connector.rocketmq.source.connector; +import org.apache.eventmesh.connector.rocketmq.source.config.RocketMQSourceConfig; import org.apache.eventmesh.openconnect.api.config.Config; import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.data.RecordOffset; import org.apache.eventmesh.openconnect.api.data.RecordPartition; import org.apache.eventmesh.openconnect.api.source.Source; -import org.apache.eventmesh.source.connector.rocketmq.config.RocketMQSourceConfig; import org.apache.rocketmq.client.consumer.DefaultLitePullConsumer; import org.apache.rocketmq.common.message.MessageExt; diff --git a/eventmesh-connectors/source-connector-rocketmq/gradle.properties b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/server-config.yml similarity index 95% rename from eventmesh-connectors/source-connector-rocketmq/gradle.properties rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/server-config.yml index 89a6e46129..5f66dd0f68 100644 --- a/eventmesh-connectors/source-connector-rocketmq/gradle.properties +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/server-config.yml @@ -14,4 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -rocketmq_version=4.9.5 \ No newline at end of file + +sourceEnable: true +sinkEnable: true diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/resources/config.yml b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/sink-config.yml similarity index 98% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/resources/config.yml rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/sink-config.yml index 210361dc28..a88be86928 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/resources/config.yml +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/sink-config.yml @@ -24,7 +24,7 @@ pubSubConfig: appId: 5031 userName: rocketmqSinkUser passWord: rocketmqPassWord -connectorConfig: +sinkConnectorConfig: connectorName: rocketmqSink nameServer: 127.0.0.1:9876 topic: TopicTest diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/resources/config.yml b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml similarity index 97% rename from eventmesh-connectors/source-connector-rocketmq/src/main/resources/config.yml rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml index f91892f649..eadb122ce4 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/resources/config.yml +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml @@ -24,7 +24,7 @@ pubSubConfig: appId: 5032 userName: rocketmqSourceUser passWord: rocketmqPassWord -connectorConfig: +sourceConnectorConfig: connectorName: rocketmqSource nameserver: 127.0.0.1:9877 topic: TopicTest diff --git a/eventmesh-connectors/source-connector-rocketmq/build.gradle b/eventmesh-connectors/source-connector-rocketmq/build.gradle deleted file mode 100644 index f72ce1a515..0000000000 --- a/eventmesh-connectors/source-connector-rocketmq/build.gradle +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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. - */ - -List rocketmq = [ - "org.apache.rocketmq:rocketmq-client:$rocketmq_version", - "org.apache.rocketmq:rocketmq-broker:$rocketmq_version", - "org.apache.rocketmq:rocketmq-common:$rocketmq_version", - "org.apache.rocketmq:rocketmq-store:$rocketmq_version", - "org.apache.rocketmq:rocketmq-namesrv:$rocketmq_version", - "org.apache.rocketmq:rocketmq-tools:$rocketmq_version", - "org.apache.rocketmq:rocketmq-remoting:$rocketmq_version", - "org.apache.rocketmq:rocketmq-logging:$rocketmq_version", - "org.apache.rocketmq:rocketmq-test:$rocketmq_version", - "org.apache.rocketmq:rocketmq-srvutil:$rocketmq_version", - "org.apache.rocketmq:rocketmq-filter:$rocketmq_version", - "org.apache.rocketmq:rocketmq-acl:$rocketmq_version", - "org.apache.rocketmq:rocketmq-srvutil:$rocketmq_version", - -] - -dependencies { - implementation project(":eventmesh-openconnect:eventmesh-openconnect-java") - implementation rocketmq - compileOnly 'org.projectlombok:lombok' - annotationProcessor 'org.projectlombok:lombok' -} diff --git a/settings.gradle b/settings.gradle index 60ee4bb7d3..5e6ec6001e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -24,8 +24,7 @@ include 'eventmesh-starter' include 'eventmesh-examples' include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' -include 'eventmesh-connectors:source-connector-rocketmq' -include 'eventmesh-connectors:sink-connector-rocketmq' +include 'eventmesh-connectors:eventmesh-connector-rocketmq' include 'eventmesh-connectors:eventmesh-openfunction-connector' include 'eventmesh-storage-plugin:eventmesh-storage-api' include 'eventmesh-storage-plugin:eventmesh-storage-standalone' From c3a61bae9716b251135ff27145736c001d5d2fa9 Mon Sep 17 00:00:00 2001 From: HattoriHenzo Date: Mon, 19 Jun 2023 16:50:28 -0400 Subject: [PATCH 019/333] Add licence header to EventMeshGrpcService --- .../client/EventMeshGrpcService.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java index 79a0da01a4..b4c766e050 100644 --- a/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java +++ b/eventmesh-connectors/eventmesh-openfunction-connector/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: callback-service.proto From e4ec6fd3eb7cc85e8a322012dc2117a8b7a48ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E6=A1=A5?= <39259491+1404369980@users.noreply.github.com> Date: Sun, 25 Jun 2023 09:56:06 +0800 Subject: [PATCH 020/333] [ISSUE #4141] Fix the GRPC subscribe error (#4143) Co-authored-by: yiqf --- .../runtime/core/protocol/grpc/consumer/ConsumerManager.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java index f3cb6b639f..1260a6bc6c 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java @@ -90,8 +90,7 @@ public void shutdown() throws Exception { } public EventMeshConsumer getEventMeshConsumer(final String consumerGroup) { - return consumerTable.computeIfAbsent(consumerGroup, key -> - consumerTable.put(consumerGroup, new EventMeshConsumer(eventMeshGrpcServer, consumerGroup))); + return consumerTable.computeIfAbsent(consumerGroup, key -> new EventMeshConsumer(eventMeshGrpcServer, consumerGroup)); } public synchronized void registerClient(final ConsumerGroupClient newClient) { From 19ed469c366f3a36b63eae0e161b6138d5c8ce4b Mon Sep 17 00:00:00 2001 From: TheR1sing3un <87409330+TheR1sing3un@users.noreply.github.com> Date: Sun, 25 Jun 2023 11:03:04 +0800 Subject: [PATCH 021/333] [ISSUE #4146] fix some code to pass checkstyle (#4147) * style: fix some code to pass checkstyle 1. fix some code to pass checkstyle Closes https://github.com/apache/eventmesh/issues/4146 * style: add header license 1. add header license Closes https://github.com/apache/eventmesh/issues/4146 --- build.gradle | 2 ++ .../client/CallbackServiceGrpc.java | 19 +++++++++++++++++-- .../client/EventMeshGrpcService.java | 17 +++++++++++++++++ .../eventmesh/openconnect/SourceWorker.java | 2 -- .../openconnect/util/ConfigUtil.java | 2 +- .../storage/kafka/producer/ProducerImpl.java | 2 -- 6 files changed, 37 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 94bd3fa93e..87e61fcb6e 100644 --- a/build.gradle +++ b/build.gradle @@ -88,6 +88,8 @@ allprojects { checkstyleMain.exclude('**/org/apache/eventmesh/client/grpc/protos**') .exclude('**/org/apache/eventmesh/common/protocol/grpc/cloudevents**') + .exclude('**/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService**') + .exclude('**/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc**') dependencies { repositories { diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java index 704fba24eb..a62dedbca0 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java @@ -1,3 +1,20 @@ +/* + * 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.connector.openfunction.client; import static io.grpc.MethodDescriptor.generateFullMethodName; @@ -7,8 +24,6 @@ import static io.grpc.stub.ServerCalls.asyncUnaryCall; import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; -import org.apache.eventmesh.connect.openfunction.EventMeshGrpcService; - /** * */ diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java index 79a0da01a4..b4c766e050 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService.java @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Generated by the protocol buffer compiler. DO NOT EDIT! // source: callback-service.proto diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java index b64f86e6f0..91e494a337 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java @@ -31,9 +31,7 @@ import java.net.URI; import java.nio.charset.StandardCharsets; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.UUID; import java.util.concurrent.BlockingQueue; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java index 07d8bb52a8..93b2ba9582 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/util/ConfigUtil.java @@ -39,7 +39,7 @@ public static Config parse(Class c) throws Exception { if (c == null) { return null; } - if (isSourceConfig(c)){ + if (isSourceConfig(c)) { return parseSourceConfig(c); } else if (isSinkConfig(c)) { return parseSinkConfig(c); diff --git a/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java b/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java index 47456a0e3d..0a41a42f2a 100644 --- a/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java +++ b/eventmesh-storage-plugin/eventmesh-storage-kafka/src/main/java/org/apache/eventmesh/storage/kafka/producer/ProducerImpl.java @@ -24,11 +24,9 @@ import org.apache.eventmesh.api.exception.StorageRuntimeException; import org.apache.kafka.clients.admin.Admin; -import org.apache.kafka.clients.producer.Callback; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; -import org.apache.kafka.clients.producer.RecordMetadata; import org.apache.kafka.common.serialization.StringSerializer; import java.util.Objects; From 0d1069881919a8d4125b219911cb447deba733f7 Mon Sep 17 00:00:00 2001 From: mike_xwm Date: Sun, 25 Jun 2023 11:13:39 +0800 Subject: [PATCH 022/333] [ISSUE #4128] Add eventmesh-connector-rocketmq module (#4148) --- .../build.gradle | 2 +- .../gradle.properties | 0 .../config/RocketMQServerConfig.java} | 16 ++++---- .../server/RocketMQConnectServer.java} | 29 ++++++++++---- .../sink}/config/RocketMQSinkConfig.java | 4 +- .../sink/config/SinkConnectorConfig.java} | 4 +- .../connector/RocketMQSinkConnector.java | 4 +- .../source}/config/RocketMQSourceConfig.java | 4 +- .../source/config/SourceConnectorConfig.java} | 4 +- .../connector/RocketMQSourceConnector.java | 4 +- .../src/main/resources/server-config.yml} | 4 +- .../src/main/resources/sink-config.yml} | 2 +- .../src/main/resources/source-config.yml} | 2 +- .../source-connector-rocketmq/build.gradle | 40 ------------------- settings.gradle | 3 +- 15 files changed, 49 insertions(+), 73 deletions(-) rename eventmesh-connectors/{sink-connector-rocketmq => eventmesh-connector-rocketmq}/build.gradle (99%) rename eventmesh-connectors/{sink-connector-rocketmq => eventmesh-connector-rocketmq}/gradle.properties (100%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java} (66%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java} (51%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink}/config/RocketMQSinkConfig.java (89%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java} (90%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink}/connector/RocketMQSinkConnector.java (96%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source}/config/RocketMQSourceConfig.java (89%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java} (90%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq => eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source}/connector/RocketMQSourceConnector.java (96%) rename eventmesh-connectors/{source-connector-rocketmq/gradle.properties => eventmesh-connector-rocketmq/src/main/resources/server-config.yml} (95%) rename eventmesh-connectors/{sink-connector-rocketmq/src/main/resources/config.yml => eventmesh-connector-rocketmq/src/main/resources/sink-config.yml} (98%) rename eventmesh-connectors/{source-connector-rocketmq/src/main/resources/config.yml => eventmesh-connector-rocketmq/src/main/resources/source-config.yml} (97%) delete mode 100644 eventmesh-connectors/source-connector-rocketmq/build.gradle diff --git a/eventmesh-connectors/sink-connector-rocketmq/build.gradle b/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle similarity index 99% rename from eventmesh-connectors/sink-connector-rocketmq/build.gradle rename to eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle index f72ce1a515..bdad6c48e3 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/build.gradle +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle @@ -37,4 +37,4 @@ dependencies { implementation rocketmq compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' -} +} \ No newline at end of file diff --git a/eventmesh-connectors/sink-connector-rocketmq/gradle.properties b/eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties similarity index 100% rename from eventmesh-connectors/sink-connector-rocketmq/gradle.properties rename to eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java similarity index 66% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java index 61a67743bc..be90ee2087 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/RocketMQSinkWorker.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java @@ -15,17 +15,17 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq; +package org.apache.eventmesh.connector.rocketmq.config; -import org.apache.eventmesh.openconnect.Application; -import org.apache.eventmesh.sink.connector.rocketmq.connector.RocketMQSinkConnector; +import org.apache.eventmesh.openconnect.api.config.Config; -public class RocketMQSinkWorker { +import lombok.Data; - public static void main(String[] args) throws Exception { +@Data +public class RocketMQServerConfig extends Config { - Application rocketmqSinkApp = new Application(); - rocketmqSinkApp.run(RocketMQSinkConnector.class); + private boolean sourceEnable; + + private boolean sinkEnable; - } } diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java similarity index 51% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java index de984bffca..060b9fa01b 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/RocketMQSourceWorker.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/server/RocketMQConnectServer.java @@ -15,18 +15,33 @@ * limitations under the License. */ -package org.apache.eventmesh.source.connector.rocketmq; +package org.apache.eventmesh.connector.rocketmq.server; +import org.apache.eventmesh.connector.rocketmq.config.RocketMQServerConfig; +import org.apache.eventmesh.connector.rocketmq.sink.connector.RocketMQSinkConnector; +import org.apache.eventmesh.connector.rocketmq.source.connector.RocketMQSourceConnector; import org.apache.eventmesh.openconnect.Application; -import org.apache.eventmesh.source.connector.rocketmq.connector.RocketMQSourceConnector; +import org.apache.eventmesh.openconnect.util.ConfigUtil; + + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class RocketMQConnectServer { -public class RocketMQSourceWorker { public static void main(String[] args) throws Exception { - Application rocketmqSourceApp = new Application(); - rocketmqSourceApp.run(RocketMQSourceConnector.class); - - } + RocketMQServerConfig serverConfig = ConfigUtil.parse(RocketMQServerConfig.class, "server-config.yml"); + + if (serverConfig.isSourceEnable()) { + Application rocketmqSourceApp = new Application(); + rocketmqSourceApp.run(RocketMQSourceConnector.class); + } + if (serverConfig.isSinkEnable()) { + Application rocketmqSinkApp = new Application(); + rocketmqSinkApp.run(RocketMQSinkConnector.class); + } + } } diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/RocketMQSinkConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java similarity index 89% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/RocketMQSinkConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java index 0b90fb3990..b59dd523da 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/RocketMQSinkConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.sink.config; import org.apache.eventmesh.openconnect.api.config.SinkConfig; @@ -24,6 +24,6 @@ @Data public class RocketMQSinkConfig extends SinkConfig { - public ConnectorConfig connectorConfig; + public SinkConnectorConfig connectorConfig; } diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java similarity index 90% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java index 47dcd683bb..034dd7ce0c 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/config/ConnectorConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/SinkConnectorConfig.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.sink.config; import lombok.Data; @Data -public class ConnectorConfig { +public class SinkConnectorConfig { private String connectorName; diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/connector/RocketMQSinkConnector.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java similarity index 96% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/connector/RocketMQSinkConnector.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java index c50c3969c1..2ac0a30521 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/java/org/apache/eventmesh/sink/connector/rocketmq/connector/RocketMQSinkConnector.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java @@ -15,12 +15,12 @@ * limitations under the License. */ -package org.apache.eventmesh.sink.connector.rocketmq.connector; +package org.apache.eventmesh.connector.rocketmq.sink.connector; +import org.apache.eventmesh.connector.rocketmq.sink.config.RocketMQSinkConfig; import org.apache.eventmesh.openconnect.api.config.Config; import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.sink.Sink; -import org.apache.eventmesh.sink.connector.rocketmq.config.RocketMQSinkConfig; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.SendResult; diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/RocketMQSourceConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java similarity index 89% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/RocketMQSourceConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java index 204cd96182..33d9b9d00d 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/RocketMQSourceConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.source.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.source.config; import org.apache.eventmesh.openconnect.api.config.SourceConfig; @@ -24,5 +24,5 @@ @Data public class RocketMQSourceConfig extends SourceConfig { - public ConnectorConfig connectorConfig; + public SourceConnectorConfig connectorConfig; } diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java similarity index 90% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java index f139bd6eb7..1bdb4506b5 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/config/ConnectorConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/SourceConnectorConfig.java @@ -16,12 +16,12 @@ */ -package org.apache.eventmesh.source.connector.rocketmq.config; +package org.apache.eventmesh.connector.rocketmq.source.config; import lombok.Data; @Data -public class ConnectorConfig { +public class SourceConnectorConfig { private String connectorName; diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java similarity index 96% rename from eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java index 3e497a2983..fd7e44589b 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/java/org/apache/eventmesh/source/connector/rocketmq/connector/RocketMQSourceConnector.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/connector/RocketMQSourceConnector.java @@ -15,14 +15,14 @@ * limitations under the License. */ -package org.apache.eventmesh.source.connector.rocketmq.connector; +package org.apache.eventmesh.connector.rocketmq.source.connector; +import org.apache.eventmesh.connector.rocketmq.source.config.RocketMQSourceConfig; import org.apache.eventmesh.openconnect.api.config.Config; import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.data.RecordOffset; import org.apache.eventmesh.openconnect.api.data.RecordPartition; import org.apache.eventmesh.openconnect.api.source.Source; -import org.apache.eventmesh.source.connector.rocketmq.config.RocketMQSourceConfig; import org.apache.rocketmq.client.consumer.DefaultLitePullConsumer; import org.apache.rocketmq.common.message.MessageExt; diff --git a/eventmesh-connectors/source-connector-rocketmq/gradle.properties b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/server-config.yml similarity index 95% rename from eventmesh-connectors/source-connector-rocketmq/gradle.properties rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/server-config.yml index 89a6e46129..5f66dd0f68 100644 --- a/eventmesh-connectors/source-connector-rocketmq/gradle.properties +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/server-config.yml @@ -14,4 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -rocketmq_version=4.9.5 \ No newline at end of file + +sourceEnable: true +sinkEnable: true diff --git a/eventmesh-connectors/sink-connector-rocketmq/src/main/resources/config.yml b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/sink-config.yml similarity index 98% rename from eventmesh-connectors/sink-connector-rocketmq/src/main/resources/config.yml rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/sink-config.yml index 210361dc28..a88be86928 100644 --- a/eventmesh-connectors/sink-connector-rocketmq/src/main/resources/config.yml +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/sink-config.yml @@ -24,7 +24,7 @@ pubSubConfig: appId: 5031 userName: rocketmqSinkUser passWord: rocketmqPassWord -connectorConfig: +sinkConnectorConfig: connectorName: rocketmqSink nameServer: 127.0.0.1:9876 topic: TopicTest diff --git a/eventmesh-connectors/source-connector-rocketmq/src/main/resources/config.yml b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml similarity index 97% rename from eventmesh-connectors/source-connector-rocketmq/src/main/resources/config.yml rename to eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml index f91892f649..eadb122ce4 100644 --- a/eventmesh-connectors/source-connector-rocketmq/src/main/resources/config.yml +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml @@ -24,7 +24,7 @@ pubSubConfig: appId: 5032 userName: rocketmqSourceUser passWord: rocketmqPassWord -connectorConfig: +sourceConnectorConfig: connectorName: rocketmqSource nameserver: 127.0.0.1:9877 topic: TopicTest diff --git a/eventmesh-connectors/source-connector-rocketmq/build.gradle b/eventmesh-connectors/source-connector-rocketmq/build.gradle deleted file mode 100644 index f72ce1a515..0000000000 --- a/eventmesh-connectors/source-connector-rocketmq/build.gradle +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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. - */ - -List rocketmq = [ - "org.apache.rocketmq:rocketmq-client:$rocketmq_version", - "org.apache.rocketmq:rocketmq-broker:$rocketmq_version", - "org.apache.rocketmq:rocketmq-common:$rocketmq_version", - "org.apache.rocketmq:rocketmq-store:$rocketmq_version", - "org.apache.rocketmq:rocketmq-namesrv:$rocketmq_version", - "org.apache.rocketmq:rocketmq-tools:$rocketmq_version", - "org.apache.rocketmq:rocketmq-remoting:$rocketmq_version", - "org.apache.rocketmq:rocketmq-logging:$rocketmq_version", - "org.apache.rocketmq:rocketmq-test:$rocketmq_version", - "org.apache.rocketmq:rocketmq-srvutil:$rocketmq_version", - "org.apache.rocketmq:rocketmq-filter:$rocketmq_version", - "org.apache.rocketmq:rocketmq-acl:$rocketmq_version", - "org.apache.rocketmq:rocketmq-srvutil:$rocketmq_version", - -] - -dependencies { - implementation project(":eventmesh-openconnect:eventmesh-openconnect-java") - implementation rocketmq - compileOnly 'org.projectlombok:lombok' - annotationProcessor 'org.projectlombok:lombok' -} diff --git a/settings.gradle b/settings.gradle index dd3f3bd6d3..405d64d264 100644 --- a/settings.gradle +++ b/settings.gradle @@ -24,8 +24,7 @@ include 'eventmesh-starter' include 'eventmesh-examples' include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' -include 'eventmesh-connectors:source-connector-rocketmq' -include 'eventmesh-connectors:sink-connector-rocketmq' +include 'eventmesh-connectors:eventmesh-connector-rocketmq' include 'eventmesh-connectors:eventmesh-connector-openfunction' include 'eventmesh-storage-plugin:eventmesh-storage-api' include 'eventmesh-storage-plugin:eventmesh-storage-standalone' From 03bdb40004f63d04001c2ac1145c44e9faced1bc Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Sun, 25 Jun 2023 15:53:20 +0800 Subject: [PATCH 023/333] fix compile error --- .../connector/openfunction/client/CallbackServiceGrpc.java | 1 + 1 file changed, 1 insertion(+) diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java index a62dedbca0..432b49f7f0 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java @@ -30,6 +30,7 @@ @javax.annotation.Generated( value = "by gRPC proto compiler (version 1.4.0)", comments = "Source: callback-service.proto") +@io.grpc.stub.annotations.GrpcGenerated public final class CallbackServiceGrpc { private CallbackServiceGrpc() { From f807cc3c7599e24f8549d3347a77657c96ebc18a Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Sun, 25 Jun 2023 16:19:00 +0800 Subject: [PATCH 024/333] fix compile error --- .../eventmesh-connector-openfunction/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/build.gradle b/eventmesh-connectors/eventmesh-connector-openfunction/build.gradle index 039dbf44b7..5fc19090a7 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/build.gradle +++ b/eventmesh-connectors/eventmesh-connector-openfunction/build.gradle @@ -29,6 +29,9 @@ dependencies { api "com.fasterxml.jackson.core:jackson-databind" api "com.fasterxml.jackson.core:jackson-core" api "com.fasterxml.jackson.core:jackson-annotations" + + implementation "javax.annotation:javax.annotation-api:1.3.2" + compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' } \ No newline at end of file From 656c05373c15115930d75280839ef22f699c077b Mon Sep 17 00:00:00 2001 From: Eason Chen Date: Sun, 25 Jun 2023 17:30:28 +0800 Subject: [PATCH 025/333] Update README.md (#4152) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 389d8801f7..d2de833ec2 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![License](https://img.shields.io/github/license/apache/eventmesh?style=for-the-badge)](https://www.apache.org/licenses/LICENSE-2.0.html) [![GitHub Release](https://img.shields.io/github/v/release/apache/eventmesh?style=for-the-badge)](https://github.com/apache/eventmesh/releases) -[![Slack Status](https://img.shields.io/badge/slack-join_chat-blue.svg?logo=slack&style=for-the-badge)](https://join.slack.com/t/apacheeventmesh/shared_invite/zt-1vpgrvm5u-hh~5H9Aj4TGThaP9tusFfw) +[![Slack Status](https://img.shields.io/badge/slack-join_chat-blue.svg?logo=slack&style=for-the-badge)](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g) [📦 Documentation](https://eventmesh.apache.org/docs/introduction) | @@ -108,7 +108,7 @@ Apache EventMesh is licensed under the [Apache License, Version 2.0](http://www. |WeChat Assistant|WeChat Public Account|Slack| |-|-|-| -|||[Join Slack Chat](https://join.slack.com/t/apacheeventmesh/shared_invite/zt-1vpgrvm5u-hh~5H9Aj4TGThaP9tusFfw)| +|||[Join Slack Chat](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)(Please open an issue if this link is expired)| Bi-weekly meeting : [#Tencent meeting](https://meeting.tencent.com/dm/wes6Erb9ioVV) : 346-6926-0133 From 991cbdae829fcc15698654ca2c737575141f5286 Mon Sep 17 00:00:00 2001 From: Eason Chen Date: Sun, 25 Jun 2023 17:30:41 +0800 Subject: [PATCH 026/333] Update greetings.yml (#4153) --- .github/workflows/greetings.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 9ddc0315c6..6d866559e2 100644 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -43,7 +43,7 @@ jobs: |WeChat Assistant|WeChat Public Account|Slack| |-|-|-| - |||[Join Slack Chat](https://join.slack.com/t/apacheeventmesh/shared_invite/zt-1t1816dli-I0t3OE~IpdYWrZbIWhMbXg)| + |||[Join Slack Chat](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)| Mailing Lists: | Name | Description |Subscribe |Unsubscribe|Archive @@ -65,7 +65,7 @@ jobs: |WeChat Assistant|WeChat Public Account|Slack| |-|-|-| - |||[Join Slack Chat](https://join.slack.com/t/apacheeventmesh/shared_invite/zt-1t1816dli-I0t3OE~IpdYWrZbIWhMbXg)| + |||[Join Slack Chat](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)| Mailing Lists: | Name | Description |Subscribe |Unsubscribe|Archive From 140bebd40363c4318547600891b940bc1e2e02f7 Mon Sep 17 00:00:00 2001 From: mxsm Date: Sun, 18 Jun 2023 23:23:34 +0800 Subject: [PATCH 027/333] [ISSUE #4133]Optimize OpenFunctionSourceConnector poll --- .../OpenFunctionSourceConnector.java | 21 +++++++++++++++---- .../eventmesh/openconnect/SourceWorker.java | 12 +++++++---- 2 files changed, 25 insertions(+), 8 deletions(-) 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 4e79a56d92..c259485758 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 @@ -26,12 +26,15 @@ import java.util.List; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; import lombok.extern.slf4j.Slf4j; @Slf4j public class OpenFunctionSourceConnector implements Source { + private static final int DEFAULT_BATCH_SIZE = 10; + private OpenFunctionSourceConfig sourceConfig; private BlockingQueue queue; @@ -74,10 +77,20 @@ public BlockingQueue queue() { @Override public List poll() { - List connectRecords = new ArrayList<>(); - ConnectRecord connectRecord = queue.poll(); - if (connectRecord != null) { - connectRecords.add(connectRecord); + + List connectRecords = new ArrayList<>(DEFAULT_BATCH_SIZE); + + for (int count = 0; count < DEFAULT_BATCH_SIZE; ++count) { + try { + ConnectRecord connectRecord = queue.poll(3, TimeUnit.SECONDS); + if (connectRecord == null) { + break; + } + connectRecords.add(connectRecord); + } catch (InterruptedException e) { + // nothing to do + break; + } } return connectRecords; } diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java index 91e494a337..0f0c2f4784 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java @@ -29,6 +29,8 @@ import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.source.Source; +import org.apache.commons.collections4.CollectionUtils; + import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.List; @@ -120,7 +122,7 @@ public void startPoll() { try { connectRecord = queue.poll(5, TimeUnit.SECONDS); } catch (InterruptedException e) { - e.printStackTrace(); + Thread.currentThread().interrupt(); log.error("poll connect record error", e); } if (connectRecord == null) { @@ -136,8 +138,11 @@ private void startConnector() throws Exception { source.start(); while (isRunning) { List connectorRecordList = source.poll(); - for (ConnectRecord connectRecord : connectorRecordList) { - queue.put(connectRecord); + if (CollectionUtils.isEmpty(connectorRecordList)) { + continue; + } + for (ConnectRecord record : connectorRecordList) { + queue.put(record); } } } @@ -175,7 +180,6 @@ public void stop() { try { eventMeshTCPClient.close(); } catch (Exception e) { - e.printStackTrace(); log.error("event mesh client close error", e); } log.info("source worker stopped"); From b85d890e1ce694de70e2f03ca5ca1d3b364b8eb0 Mon Sep 17 00:00:00 2001 From: pandaapo <35672972+pandaapo@users.noreply.github.com> Date: Tue, 27 Jun 2023 11:24:26 +0800 Subject: [PATCH 028/333] [ISSUE #4069]Add TLSConfig to registry plugin Consul. --- .../consul/config/ConsulTLSConfig.java | 49 +++++++++++++++++++ .../consul/service/ConsulRegistryService.java | 32 +++++++++++- eventmesh-runtime/conf/eventmesh.properties | 8 +++ 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/config/ConsulTLSConfig.java diff --git a/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/config/ConsulTLSConfig.java b/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/config/ConsulTLSConfig.java new file mode 100644 index 0000000000..a2096666a2 --- /dev/null +++ b/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/config/ConsulTLSConfig.java @@ -0,0 +1,49 @@ +/* + * 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.registry.consul.config; + +import org.apache.eventmesh.common.config.Config; +import org.apache.eventmesh.common.config.ConfigFiled; +import org.apache.eventmesh.common.config.convert.converter.EnumConverter; + +import com.ecwid.consul.transport.TLSConfig.KeyStoreInstanceType; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@Config(prefix = "eventMesh.registry.consul.tls") +public class ConsulTLSConfig { + + @ConfigFiled(field = "keyStoreInstanceType", converter = EnumConverter.class) + private KeyStoreInstanceType keyStoreInstanceType; + + @ConfigFiled(field = "certificatePath") + private String certificatePath; + + @ConfigFiled(field = "certificatePassword") + private String certificatePassword; + + @ConfigFiled(field = "keyStorePath") + private String keyStorePath; + + @ConfigFiled(field = "keyStorePassword") + private String keyStorePassword; + +} diff --git a/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/ConsulRegistryService.java b/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/ConsulRegistryService.java index 48585686e0..57bc24bf3e 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/ConsulRegistryService.java +++ b/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/ConsulRegistryService.java @@ -23,17 +23,21 @@ import org.apache.eventmesh.api.registry.dto.EventMeshRegisterInfo; import org.apache.eventmesh.api.registry.dto.EventMeshUnRegisterInfo; import org.apache.eventmesh.common.config.CommonConfiguration; +import org.apache.eventmesh.common.config.ConfigService; import org.apache.eventmesh.common.utils.ConfigurationContextUtil; +import org.apache.eventmesh.registry.consul.config.ConsulTLSConfig; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.atomic.AtomicBoolean; +import com.ecwid.consul.transport.TLSConfig; import com.ecwid.consul.v1.ConsulClient; -import com.ecwid.consul.v1.ConsulRawClient; +import com.ecwid.consul.v1.ConsulRawClient.Builder; import com.ecwid.consul.v1.agent.model.NewService; import com.ecwid.consul.v1.agent.model.Service; import com.ecwid.consul.v1.health.HealthServicesRequest; @@ -60,6 +64,8 @@ public class ConsulRegistryService implements RegistryService { private String token; + private ConsulTLSConfig tlsConfig; + @Override public void init() throws RegistryException { if (initStatus.compareAndSet(false, true)) { @@ -79,6 +85,8 @@ public void init() throws RegistryException { break; } } + ConsulTLSConfig tlsConfig = ConfigService.getInstance().buildConfigInstance(ConsulTLSConfig.class); + this.tlsConfig = tlsConfig; } } @@ -87,8 +95,28 @@ public void start() throws RegistryException { if (!startStatus.compareAndSet(false, true)) { return; } - consulClient = new ConsulClient(new ConsulRawClient(consulHost, Integer.parseInt(consulPort))); + Builder builder = Builder.builder(); + builder.setHost(consulHost); + builder.setPort(Integer.parseInt(consulPort)); + if (tlsConfig != null + && Objects.nonNull(tlsConfig.getKeyStoreInstanceType()) + && !StringUtils.isAnyBlank( + tlsConfig.getCertificatePassword(), + tlsConfig.getCertificatePath(), + tlsConfig.getKeyStorePassword(), + tlsConfig.getKeyStorePath())) { + builder.setTlsConfig(convertToTlsConfig(tlsConfig)); + } + consulClient = new ConsulClient(builder.build()); + } + private TLSConfig convertToTlsConfig(ConsulTLSConfig tlsConfig) { + return new TLSConfig( + tlsConfig.getKeyStoreInstanceType(), + tlsConfig.getCertificatePath(), + tlsConfig.getCertificatePassword(), + tlsConfig.getKeyStorePath(), + tlsConfig.getKeyStorePassword()); } @Override diff --git a/eventmesh-runtime/conf/eventmesh.properties b/eventmesh-runtime/conf/eventmesh.properties index 1a2233f474..4e5cbd54b1 100644 --- a/eventmesh-runtime/conf/eventmesh.properties +++ b/eventmesh-runtime/conf/eventmesh.properties @@ -90,6 +90,14 @@ eventMesh.registry.plugin.server-addr=127.0.0.1:8848 eventMesh.registry.plugin.username=nacos eventMesh.registry.plugin.password=nacos +# The TLS configuration of registry plugin consul +# keyStoreInstanceType's value can refer to com.ecwid.consul.transport.TLSConfig.KeyStoreInstanceType +#eventMesh.registry.consul.tls.keyStoreInstanceType= +#eventMesh.registry.consul.tls.certificatePath= +#eventMesh.registry.consul.tls.certificatePassword= +#eventMesh.registry.consul.tls.keyStorePath= +#eventMesh.registry.consul.tls.keyStorePassword= + # metrics plugin, if you have multiple plugin, you can use ',' to split eventMesh.metrics.plugin=prometheus From 6cbb2d0f9924f03fd052b3f61e0a9248b0f4b9d4 Mon Sep 17 00:00:00 2001 From: dipanker <42119635+dipankr@users.noreply.github.com> Date: Tue, 27 Jun 2023 15:20:31 +0530 Subject: [PATCH 029/333] [ISSUE #4107] made fields final (#4158) * #4107 made fields final Signed-off-by: dipanker * #4107 moved the line to correct class Signed-off-by: dipanker * #4107 replaced direct use with a getter Signed-off-by: dipanker --------- Signed-off-by: dipanker --- .../tcp/client/session/push/DownStreamMsgContext.java | 8 ++++---- .../protocol/tcp/client/session/push/PushContext.java | 10 +++++----- .../client/session/send/EventMeshTcpSendResult.java | 6 +++--- .../tcp/client/session/send/SessionSender.java | 10 +++++++--- .../tcp/client/session/send/UpStreamMsgContext.java | 2 +- .../protocol/tcp/client/task/MessageTransferTask.java | 2 +- 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/DownStreamMsgContext.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/DownStreamMsgContext.java index 16a97d4cb0..1f9cc24399 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/DownStreamMsgContext.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/DownStreamMsgContext.java @@ -47,12 +47,12 @@ public class DownStreamMsgContext extends RetryContext { @Setter private Session session; - private AbstractContext consumeConcurrentlyContext; + private final AbstractContext consumeConcurrentlyContext; - private MQConsumerWrapper consumer; + private final MQConsumerWrapper consumer; @Getter - private SubscriptionItem subscriptionItem; + private final SubscriptionItem subscriptionItem; private long lastPushTime; @@ -60,7 +60,7 @@ public class DownStreamMsgContext extends RetryContext { private final long expireTime; - public boolean msgFromOtherEventMesh; + public final boolean msgFromOtherEventMesh; public DownStreamMsgContext(CloudEvent event, Session session, MQConsumerWrapper consumer, AbstractContext consumeConcurrentlyContext, boolean msgFromOtherEventMesh, diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/PushContext.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/PushContext.java index 5937eebf5f..ddc67a95cb 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/PushContext.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/push/PushContext.java @@ -31,15 +31,15 @@ @Slf4j public class PushContext { - private SessionPusher sessionPusher; + private final SessionPusher sessionPusher; - public AtomicLong deliveredMsgsCount = new AtomicLong(0); + public final AtomicLong deliveredMsgsCount = new AtomicLong(0); - public AtomicLong deliverFailMsgsCount = new AtomicLong(0); + public final AtomicLong deliverFailMsgsCount = new AtomicLong(0); - private ConcurrentHashMap unAckMsg = new ConcurrentHashMap(); + private final ConcurrentHashMap unAckMsg = new ConcurrentHashMap<>(); - private long createTime = System.currentTimeMillis(); + private final long createTime = System.currentTimeMillis(); public PushContext(SessionPusher sessionPusher) { this.sessionPusher = sessionPusher; diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/EventMeshTcpSendResult.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/EventMeshTcpSendResult.java index a967cdc89f..d9746c425a 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/EventMeshTcpSendResult.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/EventMeshTcpSendResult.java @@ -19,11 +19,11 @@ public class EventMeshTcpSendResult { - private String seq; + private final String seq; - private EventMeshTcpSendStatus sendStatus; + private final EventMeshTcpSendStatus sendStatus; - private String detail; + private final String detail; public EventMeshTcpSendResult(String seq, EventMeshTcpSendStatus sendStatus, String detail) { this.seq = seq; diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/SessionSender.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/SessionSender.java index da61686aae..c226b4529a 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/SessionSender.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/SessionSender.java @@ -59,11 +59,11 @@ public class SessionSender { private final transient Session session; - public transient long createTime = System.currentTimeMillis(); + public final transient long createTime = System.currentTimeMillis(); - public transient AtomicLong upMsgs = new AtomicLong(0); + public final transient AtomicLong upMsgs = new AtomicLong(0); - public transient AtomicLong failMsgCount = new AtomicLong(0); + public final transient AtomicLong failMsgCount = new AtomicLong(0); private static final int TRY_PERMIT_TIME_OUT = 5; @@ -221,4 +221,8 @@ public void onException(Throwable e) { } }; } + + public AtomicLong getFailMsgCount() { + return failMsgCount; + } } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java index 4ab4fd609a..98a92d5563 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java @@ -139,7 +139,7 @@ public void onException(OnExceptionContext context) { retryContext.delay(10000); Objects.requireNonNull(session.getClientGroupWrapper().get()).getEventMeshTcpRetryer().pushRetry(retryContext); - session.getSender().failMsgCount.incrementAndGet(); + session.getSender().getFailMsgCount().incrementAndGet(); log.error("upstreamMsg mq message error|user={}|callback cost={}, errMsg={}", session.getClient(), System.currentTimeMillis() - createTime, new Exception(context.getException())); msg.setHeader(new Header(replyCmd, OPStatus.FAIL.getCode(), context.getException().toString(), seq)); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/task/MessageTransferTask.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/task/MessageTransferTask.java index 62a97dc3fc..9f52579921 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/task/MessageTransferTask.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/task/MessageTransferTask.java @@ -253,7 +253,7 @@ public void onException(OnExceptionContext context) { session.getClientGroupWrapper().get()).getEventMeshTcpRetryer() .pushRetry(upStreamMsgContext); - session.getSender().failMsgCount.incrementAndGet(); + session.getSender().getFailMsgCount().incrementAndGet(); MESSAGE_LOGGER .error("upstreamMsg mq message error|user={}|callback cost={}, errMsg={}", session.getClient(), From 12aeb4bbbc6156d80057b33ef3a558a60b6ea516 Mon Sep 17 00:00:00 2001 From: Nitheesh Daram <54185106+nitheesh-daram@users.noreply.github.com> Date: Tue, 27 Jun 2023 15:20:46 +0530 Subject: [PATCH 030/333] [ISSUE #4109 ] Code Optimization.[ClientGroupWrapper] (#4154) * Resolves #4109 Signed-off-by: Nitheesh Daram <54185106+nitheesh-daram@users.noreply.github.com> * Resolves #4109 Code Review Changes Signed-off-by: Nitheesh Daram <54185106+nitheesh-daram@users.noreply.github.com> --------- Signed-off-by: Nitheesh Daram <54185106+nitheesh-daram@users.noreply.github.com> --- .../tcp/client/group/ClientGroupWrapper.java | 52 +++++++++++++------ .../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 ac45ca6cb3..097f891444 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 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 groupConsumerSessions = new HashSet(); + @Getter + private final Set groupConsumerSessions = new HashSet(); - public Set groupProducerSessions = new HashSet(); + @Getter + private final Set groupProducerSessions = new HashSet(); - 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 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 boolean hasSubscription(String topic) { 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 boolean addSubscription(SubscriptionItem subscriptionItem, Session sessio 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 boolean removeSubscription(SubscriptionItem subscriptionItem, Session ses 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 boolean addGroupConsumerSession(Session session) { } } } 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 boolean addGroupProducerSession(Session session) { 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 boolean removeGroupConsumerSession(Session session) { } } } 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 boolean removeGroupProducerSession(Session session) { 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 synchronized void shutdownPersistentConsumer() throws Exception { persistentMsgConsumer = null; } - public Set getGroupConsumerSessions() { - return groupConsumerSessions; - } - - public Set 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 a0c0880088..f8873ca9a9 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 @@ private void initClientGroupWrapper(UserAgent user, Session session) throws Exce } 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 @@ private void startClientGroupProducer(ClientGroupWrapper cgw, Session session) t } 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 @@ private void startClientGroupConsumer(Session session) throws Exception { 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 @@ private void handleUnackMsgsInSession(Session session) { 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 @@ private void cleanClientGroupWrapperCommon(ClientGroupWrapper clientGroupWrapper } 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(); } } From 35c1eb40ed0ab27525bc47c88995c7e5017ae619 Mon Sep 17 00:00:00 2001 From: xiguaxigua <68633657+sun-tao@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:51:02 +0800 Subject: [PATCH 031/333] [ISSUE #4108] Field may be 'final'[EventMeshRebalanceService] (#4149) * fix #4108 * fix #4108 --- .../tcp/client/rebalance/EventMeshRebalanceService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceService.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceService.java index 0832ae9111..8be8b6d0bb 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceService.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/rebalance/EventMeshRebalanceService.java @@ -32,11 +32,11 @@ @Slf4j public class EventMeshRebalanceService { - private EventMeshTCPServer eventMeshTCPServer; + private final EventMeshTCPServer eventMeshTCPServer; - private Integer rebalanceIntervalMills; + private final Integer rebalanceIntervalMills; - private EventMeshRebalanceStrategy rebalanceStrategy; + private final EventMeshRebalanceStrategy rebalanceStrategy; private ScheduledExecutorService serviceRebalanceScheduler; From 1600c6bf1cbdb34de4bc3e9630898ab158c7af6f Mon Sep 17 00:00:00 2001 From: pandaapo <35672972+pandaapo@users.noreply.github.com> Date: Wed, 28 Jun 2023 14:36:53 +0800 Subject: [PATCH 032/333] [ISSUE #4144] Subscription is almost impossible to be cancelled when the TCP sub client is closed (#4145) * Fix bug: suscription session can't be removed correctly. * Fix bug: suscription session can't be removed correctly. * remove the modification for other issue. --- .../ShowListenClientByTopicHandler.java | 7 ++--- .../tcp/client/group/ClientGroupWrapper.java | 31 +++++++++---------- .../protocol/tcp/client/session/Session.java | 5 +++ 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ShowListenClientByTopicHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ShowListenClientByTopicHandler.java index 10d6001820..8d9376f462 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ShowListenClientByTopicHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ShowListenClientByTopicHandler.java @@ -31,7 +31,6 @@ import java.io.IOException; import java.io.OutputStream; import java.util.Map; -import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -67,10 +66,10 @@ public void handle(HttpExchange httpExchange) throws IOException { ConcurrentHashMap clientGroupMap = clientSessionGroupMapping.getClientGroupMap(); if (!clientGroupMap.isEmpty()) { for (ClientGroupWrapper cgw : clientGroupMap.values()) { - Set listenSessionSet = cgw.getTopic2sessionInGroupMapping().get(topic); - if (listenSessionSet != null && !listenSessionSet.isEmpty()) { + Map listenSessions = cgw.getTopic2sessionInGroupMapping().get(topic); + if (listenSessions != null && !listenSessions.isEmpty()) { result.append(String.format("group:%s", cgw.getGroup())).append(newLine); - for (Session session : listenSessionSet) { + for (Session session : listenSessions.values()) { UserAgent userAgent = session.getClient(); result.append(String.format("pid=%s | ip=%s | port=%s | path=%s | version=%s", userAgent.getPid(), userAgent .getHost(), userAgent.getPort(), userAgent.getPath(), userAgent.getVersion())) 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 097f891444..72491a2ed0 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 @@ -49,9 +49,11 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Properties; import java.util.Set; @@ -114,8 +116,8 @@ public class ClientGroupWrapper { private MQConsumerWrapper broadCastMsgConsumer; - private final ConcurrentHashMap> topic2sessionInGroupMapping = - new ConcurrentHashMap>(); + private final ConcurrentHashMap> topic2sessionInGroupMapping = + new ConcurrentHashMap>(); private final ConcurrentHashMap subscriptions = new ConcurrentHashMap<>(); @@ -137,7 +139,7 @@ public ClientGroupWrapper(String sysId, String group, this.mqProducerWrapper = new MQProducerWrapper(eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshStoragePluginType()); } - public ConcurrentHashMap> getTopic2sessionInGroupMapping() { + public ConcurrentHashMap> getTopic2sessionInGroupMapping() { return topic2sessionInGroupMapping; } @@ -206,24 +208,22 @@ public boolean addSubscription(SubscriptionItem subscriptionItem, Session sessio return false; } - boolean r; + boolean r = false; try { this.groupLock.writeLock().lockInterruptibly(); if (!topic2sessionInGroupMapping.containsKey(topic)) { - Set sessions = new HashSet(); + Map sessions = new HashMap<>(); topic2sessionInGroupMapping.put(topic, sessions); } - r = topic2sessionInGroupMapping.get(topic).add(session); - if (r) { - + if (r = topic2sessionInGroupMapping.get(topic).putIfAbsent(session.getSessionId(), session) == null) { if (log.isInfoEnabled()) { - log.info("addSubscription success, group:{} topic:{} client:{}", group, - topic, session.getClient()); + log.info("Cache session success, group:{} topic:{} client:{} sessionId:{}", group, + topic, session.getClient(), session.getSessionId()); } } else { if (log.isWarnEnabled()) { - log.warn("addSubscription fail, group:{} topic:{} client:{}", group, topic, - session.getClient()); + log.warn("Session already exists in topic2sessionInGroupMapping. group:{} topic:{} client:{} sessionId:{}", group, topic, + session.getClient(), session.getSessionId()); } } @@ -257,8 +257,7 @@ public boolean removeSubscription(SubscriptionItem subscriptionItem, Session ses try { this.groupLock.writeLock().lockInterruptibly(); if (topic2sessionInGroupMapping.containsKey(topic)) { - r = topic2sessionInGroupMapping.get(topic).remove(session); - if (r) { + if (topic2sessionInGroupMapping.get(topic).remove(session.getSessionId()) != null) { if (log.isInfoEnabled()) { log.info( @@ -268,8 +267,8 @@ public boolean removeSubscription(SubscriptionItem subscriptionItem, Session ses } else { if (log.isWarnEnabled()) { log.warn( - "removeSubscription remove session failed, group:{} topic:{} client:{}", - group, topic, session.getClient()); + "Not found session in cache, group:{} topic:{} client:{} sessionId:{}", + group, topic, session.getClient(), session.getSessionId()); } } } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/Session.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/Session.java index 0d07454e46..c5126a630c 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/Session.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/Session.java @@ -41,6 +41,7 @@ import java.net.InetSocketAddress; import java.util.List; import java.util.Objects; +import java.util.UUID; import java.util.concurrent.locks.ReentrantLock; import org.slf4j.Logger; @@ -117,6 +118,10 @@ public class Session { @Getter protected SessionState sessionState = SessionState.CREATED; + @Setter + @Getter + private String sessionId = UUID.randomUUID().toString(); + public void notifyHeartbeat(long heartbeatTime) throws Exception { this.lastHeartbeatTime = heartbeatTime; } From 0fb795bbd4133b39d9587d52353a2df9d35c6338 Mon Sep 17 00:00:00 2001 From: Kuldeep Singh Date: Thu, 29 Jun 2023 08:08:35 +0530 Subject: [PATCH 033/333] [ISSUE #4102] Field may be 'final'[UpStreamMsgContext] --- .../tcp/client/session/send/UpStreamMsgContext.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java index 98a92d5563..ecea75c00c 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/tcp/client/session/send/UpStreamMsgContext.java @@ -43,15 +43,15 @@ @Slf4j public class UpStreamMsgContext extends RetryContext { - private Session session; + private final Session session; - private long createTime = System.currentTimeMillis(); + private final long createTime = System.currentTimeMillis(); - private Header header; + private final Header header; - private long startTime; + private final long startTime; - private long taskExecuteTime; + private final long taskExecuteTime; public UpStreamMsgContext(Session session, CloudEvent event, Header header, long startTime, long taskExecuteTime) { this.seq = header.getSeq(); From e789fc155d18f9122897085573b939e6152b5b5f Mon Sep 17 00:00:00 2001 From: Alonexc <91315508+Alonexc@users.noreply.github.com> Date: Thu, 29 Jun 2023 14:37:46 +0800 Subject: [PATCH 034/333] [MINOR] Fix constants and link. (#4163) * Create .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * delete lift * correct the wrong constants. * update link --- .github/ISSUE_TEMPLATE/unit_test.yml | 4 ++-- .../eventmesh/runtime/constants/EventMeshConstants.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/unit_test.yml b/.github/ISSUE_TEMPLATE/unit_test.yml index 723e1356d7..82ce502400 100644 --- a/.github/ISSUE_TEMPLATE/unit_test.yml +++ b/.github/ISSUE_TEMPLATE/unit_test.yml @@ -41,7 +41,7 @@ body: attributes: label: Read the unit testing guidelines description: > - Read the [unit testing guidelines](https://github.com/apache/eventmesh/blob/master/docs/en/contribute/02-write-unit-test.md) before writing unit test code. + Read the [unit testing guidelines](https://eventmesh.apache.org/community/contribute/write-unit-test) before writing unit test code. options: - label: > I have read. @@ -83,4 +83,4 @@ body: - type: markdown attributes: - value: "Thanks for completing our form!" \ No newline at end of file + value: "Thanks for completing our form!" diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/constants/EventMeshConstants.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/constants/EventMeshConstants.java index 6ffa05b71d..8e1aaac8fa 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/constants/EventMeshConstants.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/constants/EventMeshConstants.java @@ -109,7 +109,7 @@ public class EventMeshConstants { public static final String MANAGE_PURPOSE = "purpose"; public static final String MANAGE_TOPIC = "topic"; public static final String MANAGE_MSG = "msg"; - public static final String EVENTMESH_SEND_BACK_TIMES = "eventmeshdendbacktimes"; + public static final String EVENTMESH_SEND_BACK_TIMES = "eventmeshsendbacktimes"; public static final String EVENTMESH_SEND_BACK_IP = "eventmeshsendbackip"; From 2258c2142deec93ac0a3713171ed56ea1aa5084a Mon Sep 17 00:00:00 2001 From: mxsm Date: Thu, 29 Jun 2023 14:38:14 +0800 Subject: [PATCH 035/333] [ISSUE #4161]Fix JsonUtils not support serialize java.time.LocalDate (#4162) * [ISSUE #4161]Fix JsonUtils not support serialize java.time.LocalDate * fix codestyle --- build.gradle | 1 + eventmesh-common/build.gradle | 1 + .../java/org/apache/eventmesh/common/utils/JsonUtils.java | 2 ++ .../org/apache/eventmesh/common/utils/JsonUtilsTest.java | 6 ++++++ tools/dependency-check/known-dependencies.txt | 1 + 5 files changed, 11 insertions(+) diff --git a/build.gradle b/build.gradle index 87e61fcb6e..a30f89c3b5 100644 --- a/build.gradle +++ b/build.gradle @@ -458,6 +458,7 @@ subprojects { dependency "com.fasterxml.jackson.core:jackson-core:2.13.0" dependency "com.fasterxml.jackson.core:jackson-annotations:2.13.0" dependency "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0" + dependency "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.0" dependency "org.asynchttpclient:async-http-client:2.12.0" dependency "org.apache.httpcomponents:httpclient:4.5.13" diff --git a/eventmesh-common/build.gradle b/eventmesh-common/build.gradle index a4df43855c..c58556392b 100644 --- a/eventmesh-common/build.gradle +++ b/eventmesh-common/build.gradle @@ -36,6 +36,7 @@ dependencies { api "com.fasterxml.jackson.core:jackson-databind" api "com.fasterxml.jackson.core:jackson-core" api "com.fasterxml.jackson.core:jackson-annotations" + api "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" implementation "org.apache.httpcomponents:httpclient" diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/JsonUtils.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/JsonUtils.java index 58a0571ee8..c04521d5e5 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/JsonUtils.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/JsonUtils.java @@ -34,6 +34,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; /** * Json serialize or deserialize utils. @@ -48,6 +49,7 @@ public class JsonUtils { OBJECT_MAPPER.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); OBJECT_MAPPER.setDateFormat(new EventMeshDateFormat(Constants.DATE_FORMAT_DEFAULT)); OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL); + OBJECT_MAPPER.registerModule(new JavaTimeModule()); } /** diff --git a/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/JsonUtilsTest.java b/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/JsonUtilsTest.java index ba9a843308..a756cfe240 100644 --- a/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/JsonUtilsTest.java +++ b/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/JsonUtilsTest.java @@ -18,6 +18,7 @@ package org.apache.eventmesh.common.utils; import java.nio.charset.StandardCharsets; +import java.time.LocalDate; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; @@ -42,6 +43,11 @@ public void toJSONString() { map.put("mxsm", "2"); jsonString = JsonUtils.toJSONString(map); Assert.assertEquals("{\"mxsm\":\"2\"}", jsonString); + + Map maps = new HashMap<>(); + maps.put("mxsm", LocalDate.of(2013, 6, 28)); + jsonString = JsonUtils.toJSONString(maps); + Assert.assertEquals("{\"mxsm\":\"2013-06-28\"}", jsonString); } @Test diff --git a/tools/dependency-check/known-dependencies.txt b/tools/dependency-check/known-dependencies.txt index e86d1d40e1..98189aa71b 100644 --- a/tools/dependency-check/known-dependencies.txt +++ b/tools/dependency-check/known-dependencies.txt @@ -75,6 +75,7 @@ jackson-annotations-2.13.0.jar jackson-core-2.13.0.jar jackson-databind-2.13.0.jar jackson-dataformat-yaml-2.13.0.jar +jackson-datatype-jsr310-2.13.0.jar javassist-3.24.0-GA.jar javax.activation-1.2.0.jar javax.annotation-api-1.3.2.jar From 4e5428b9e1ea53f6ead5826379073a1b835d47b2 Mon Sep 17 00:00:00 2001 From: Xia Tian <41445332+Pil0tXia@users.noreply.github.com> Date: Thu, 29 Jun 2023 14:38:31 +0800 Subject: [PATCH 036/333] [ISSUE #4138] Add Unit Test for UrlMappingPattern (#4139) * [ISSUE #4138] add unit test for UrlMappingPattern * Optimize: Use an existing mock object and directly use the compiledUrlMappingPattern field. * chore: remove old comment * Revert "chore: remove old comment" This reverts commit 802debc7f41db6e6cf4bb23118a72e63589a251a. * fix: The private field being compared should belong to UrlMappingPattern rather than TestUrlMappingPattern --- .../rocketmq/util/UrlMappingPatternTest.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/eventmesh-admin/eventmesh-admin-rocketmq/src/test/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPatternTest.java b/eventmesh-admin/eventmesh-admin-rocketmq/src/test/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPatternTest.java index c86be228c6..61ceb6f48e 100644 --- a/eventmesh-admin/eventmesh-admin-rocketmq/src/test/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPatternTest.java +++ b/eventmesh-admin/eventmesh-admin-rocketmq/src/test/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPatternTest.java @@ -18,11 +18,13 @@ package org.apache.eventmesh.admin.rocketmq.util; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.lang.reflect.Field; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -86,8 +88,21 @@ public void testGetParamNames() { } @Test - public void testCompile() { - //TODO : Fix me to test the method compile(). It is better using Mockito not PowerMockito. + public void testCompile() throws NoSuchFieldException, IllegalAccessException { + // Obtain compiledUrlMappingPattern field with reflection + Field compiledUrlMappingPatternField = UrlMappingPattern.class.getDeclaredField("compiledUrlMappingPattern"); + compiledUrlMappingPatternField.setAccessible(true); + + urlMappingPattern.compile(); + + // Verify that the compiledUrlMappingPattern field is updated + Pattern compiledPattern = (Pattern) compiledUrlMappingPatternField.get(urlMappingPattern); + assertNotNull(compiledPattern); + + // Verify that the mocked pattern is compiled with the expected regex + String expectedRegex = "/test/([%\\w-.\\~!$&'\\(\\)\\*\\+,;=:\\[\\]@]+?)/path/([%\\w-.\\~!$&'\\(\\)\\*\\+,;=:\\[\\]@]+?)(?:\\?.*?)?$"; + Pattern expectedPattern = Pattern.compile(expectedRegex); + assertEquals(expectedPattern.pattern(), compiledPattern.pattern()); } class TestUrlMappingPattern extends UrlMappingPattern { From 525a8dd74b9a76908afb7ceaa86f78c59d471d08 Mon Sep 17 00:00:00 2001 From: mxsm Date: Fri, 30 Jun 2023 16:35:44 +0800 Subject: [PATCH 037/333] [ISSUE #4164]Fix EventMeshGrpcConsumer client subscribe topic error (#4165) * [ISSUE #4164]Fix EventMeshGrpcConsumer client subscribe topic error * fix code style * fix code style * fix code style --- .../sub/app/controller/SubController.java | 25 ------- ...stractPublishBatchCloudEventProcessor.java | 6 +- .../AbstractPublishCloudEventProcessor.java | 6 +- .../BatchPublishCloudEventProcessor.java | 2 +- .../grpc/processor/HeartbeatProcessor.java | 12 +-- .../PublishCloudEventsProcessor.java | 4 +- .../grpc/processor/ReplyMessageProcessor.java | 10 +-- .../processor/RequestCloudEventProcessor.java | 6 +- .../grpc/processor/SubscribeProcessor.java | 8 +- .../processor/SubscribeStreamProcessor.java | 8 +- .../grpc/processor/UnsubscribeProcessor.java | 6 +- .../grpc/service/ConsumerService.java | 14 ++-- .../grpc/service/HeartbeatService.java | 2 +- .../grpc/service/PublisherService.java | 6 +- .../protocol/grpc/service/ServiceUtils.java | 74 ++++++++++++++++--- .../grpc/consumer/SubStreamHandler.java | 3 +- .../grpc/util/EventMeshCloudEventBuilder.java | 3 +- .../util/EventMeshCloudEventBuilderTest.java | 15 ++++ 18 files changed, 129 insertions(+), 81 deletions(-) diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/controller/SubController.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/controller/SubController.java index aa95ac4487..af14e09af3 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/controller/SubController.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/sub/app/controller/SubController.java @@ -17,14 +17,10 @@ package org.apache.eventmesh.grpc.sub.app.controller; -import org.apache.eventmesh.client.tcp.common.EventMeshCommon; import org.apache.eventmesh.common.protocol.http.common.ProtocolKey; import org.apache.eventmesh.common.utils.JsonUtils; import org.apache.eventmesh.grpc.sub.app.service.SubService; -import org.apache.commons.lang3.StringUtils; - -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -35,11 +31,6 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import io.cloudevents.CloudEvent; -import io.cloudevents.CloudEventData; -import io.cloudevents.core.format.EventFormat; -import io.cloudevents.core.provider.EventFormatProvider; - import lombok.extern.slf4j.Slf4j; @Slf4j @@ -59,22 +50,6 @@ public String subTest(final HttpServletRequest request) { log.info("=======receive message======= {}", content); } - if (StringUtils.equals(EventMeshCommon.CLOUD_EVENTS_PROTOCOL_NAME, protocolType)) { - final String contentType = request.getHeader(ProtocolKey.CONTENT_TYPE); - - final EventFormat eventFormat = EventFormatProvider.getInstance().resolveFormat(contentType); - if (eventFormat != null) { - final CloudEvent event = eventFormat.deserialize(content.getBytes(StandardCharsets.UTF_8)); - final CloudEventData cloudEventData = event.getData(); - if (cloudEventData != null) { - final String data = new String(cloudEventData.toBytes(), StandardCharsets.UTF_8); - if (log.isInfoEnabled()) { - log.info("=======receive data======= {}", data); - } - } - } - } - subService.consumeMessage(content); final Map map = new HashMap<>(); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishBatchCloudEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishBatchCloudEventProcessor.java index d98f9d8065..43cdb9a3cf 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishBatchCloudEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishBatchCloudEventProcessor.java @@ -56,18 +56,18 @@ public void process(CloudEventBatch cloudEvent, EventEmitter emitter // control flow rate limit if (!eventMeshGrpcServer.getMsgRateLimiter().tryAcquire(EventMeshConstants.DEFAULT_FASTFAIL_TIMEOUT_IN_MILLISECONDS, TimeUnit.MILLISECONDS)) { log.error("Send message speed over limit."); - ServiceUtils.completed(StatusCode.EVENTMESH_SEND_MESSAGE_SPEED_OVER_LIMIT_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_SEND_MESSAGE_SPEED_OVER_LIMIT_ERR, emitter); return; } StatusCode cloudEventCheck = cloudEventBatchCheck(cloudEvent); if (cloudEventCheck != StatusCode.SUCCESS) { - ServiceUtils.completed(cloudEventCheck, emitter); + ServiceUtils.sendResponseCompleted(cloudEventCheck, emitter); return; } StatusCode aclCheck = this.aclCheck(cloudEvent.getEvents(0)); if (aclCheck != StatusCode.SUCCESS) { - ServiceUtils.completed(aclCheck, emitter); + ServiceUtils.sendResponseCompleted(aclCheck, emitter); return; } handleCloudEvent(cloudEvent, emitter); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishCloudEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishCloudEventProcessor.java index 484ef1e93c..2f46f2f067 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishCloudEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/AbstractPublishCloudEventProcessor.java @@ -55,18 +55,18 @@ public void process(CloudEvent cloudEvent, EventEmitter emitter) thr // control flow rate limit if (!eventMeshGrpcServer.getMsgRateLimiter().tryAcquire(EventMeshConstants.DEFAULT_FASTFAIL_TIMEOUT_IN_MILLISECONDS, TimeUnit.MILLISECONDS)) { log.error("Send message speed over limit."); - ServiceUtils.streamCompleted(cloudEvent, StatusCode.EVENTMESH_SEND_MESSAGE_SPEED_OVER_LIMIT_ERR, emitter); + ServiceUtils.sendStreamResponseCompleted(cloudEvent, StatusCode.EVENTMESH_SEND_MESSAGE_SPEED_OVER_LIMIT_ERR, emitter); return; } StatusCode cloudEventCheck = cloudEventCheck(cloudEvent); if (cloudEventCheck != StatusCode.SUCCESS) { - ServiceUtils.completed(cloudEventCheck, emitter); + ServiceUtils.sendResponseCompleted(cloudEventCheck, emitter); return; } StatusCode aclCheck = this.aclCheck(cloudEvent); if (aclCheck != StatusCode.SUCCESS) { - ServiceUtils.completed(aclCheck, emitter); + ServiceUtils.sendResponseCompleted(aclCheck, emitter); return; } handleCloudEvent(cloudEvent, emitter); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/BatchPublishCloudEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/BatchPublishCloudEventProcessor.java index 60e7946373..06f946aed7 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/BatchPublishCloudEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/BatchPublishCloudEventProcessor.java @@ -85,7 +85,7 @@ public void onException(OnExceptionContext context) { } }); } - ServiceUtils.completed(StatusCode.SUCCESS, "batch publish success", emitter); + ServiceUtils.sendResponseCompleted(StatusCode.SUCCESS, "batch publish success", emitter); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java index 256b56389f..805f16f354 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java @@ -56,12 +56,12 @@ public HeartbeatProcessor(final EventMeshGrpcServer eventMeshGrpcServer) { public void process(CloudEvent heartbeat, EventEmitter emitter) throws Exception { if (!ServiceUtils.validateCloudEventAttributes(heartbeat)) { - ServiceUtils.completed(StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); return; } if (!ServiceUtils.validateHeartBeat(heartbeat)) { - ServiceUtils.completed(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); return; } @@ -69,14 +69,14 @@ public void process(CloudEvent heartbeat, EventEmitter emitter) thro doAclCheck(heartbeat); } catch (AclException e) { aclLogger.warn("CLIENT HAS NO PERMISSION, HeartbeatProcessor failed", e); - ServiceUtils.completed(StatusCode.EVENTMESH_ACL_ERR, e.getMessage(), emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_ACL_ERR, e.getMessage(), emitter); return; } // only handle heartbeat for consumers org.apache.eventmesh.common.protocol.grpc.common.ClientType clientType = EventMeshCloudEventUtils.getClientType(heartbeat); if (org.apache.eventmesh.common.protocol.grpc.common.ClientType.SUB != clientType) { - ServiceUtils.completed(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); return; } @@ -106,11 +106,11 @@ public void process(CloudEvent heartbeat, EventEmitter emitter) thro // consumer group client is lost, and the client needs to resubscribe. if (!consumerManager.updateClientTime(hbClient)) { - ServiceUtils.completed(StatusCode.CLIENT_RESUBSCRIBE, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.CLIENT_RESUBSCRIBE, emitter); return; } } - ServiceUtils.completed(StatusCode.SUCCESS, "heartbeat success", emitter); + ServiceUtils.sendResponseCompleted(StatusCode.SUCCESS, "heartbeat success", emitter); } private void doAclCheck(CloudEvent heartbeat) throws AclException { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/PublishCloudEventsProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/PublishCloudEventsProcessor.java index bce303b260..0485315876 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/PublishCloudEventsProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/PublishCloudEventsProcessor.java @@ -66,7 +66,7 @@ public void handleCloudEvent(CloudEvent message, EventEmitter emitte eventMeshProducer.send(sendMessageContext, new SendCallback() { @Override public void onSuccess(SendResult sendResult) { - ServiceUtils.completed(StatusCode.SUCCESS, sendResult.toString(), emitter); + ServiceUtils.sendResponseCompleted(StatusCode.SUCCESS, sendResult.toString(), emitter); long endTime = System.currentTimeMillis(); log.info("message|eventMesh2mq|REQ|ASYNC|send2MQCost={}ms|topic={}|bizSeqNo={}|uniqueId={}", endTime - startTime, topic, seqNum, uniqueId); @@ -75,7 +75,7 @@ public void onSuccess(SendResult sendResult) { @Override public void onException(OnExceptionContext context) { - ServiceUtils.completed(StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR, + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR, EventMeshUtil.stackTrace(context.getException(), 2), emitter); long endTime = System.currentTimeMillis(); log.error("message|eventMesh2mq|REQ|ASYNC|send2MQCost={}ms|topic={}|bizSeqNo={}|uniqueId={}", diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/ReplyMessageProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/ReplyMessageProcessor.java index 4b5e20f90e..d82ae77a69 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/ReplyMessageProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/ReplyMessageProcessor.java @@ -66,12 +66,12 @@ public ReplyMessageProcessor(final EventMeshGrpcServer eventMeshGrpcServer) { public void process(CloudEvent message, EventEmitter emitter) throws Exception { if (!ServiceUtils.validateCloudEventAttributes(message)) { - ServiceUtils.streamCompleted(message, StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); + ServiceUtils.sendStreamResponseCompleted(message, StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); return; } if (!ServiceUtils.validateCloudEventData(message)) { - ServiceUtils.streamCompleted(message, StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); + ServiceUtils.sendStreamResponseCompleted(message, StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); return; } @@ -79,7 +79,7 @@ public void process(CloudEvent message, EventEmitter emitter) throws doAclCheck(message); } catch (Exception e) { aclLogger.warn("CLIENT HAS NO PERMISSION,RequestReplyMessageProcessor reply failed", e); - ServiceUtils.streamCompleted(message, StatusCode.EVENTMESH_ACL_ERR, e.getMessage(), emitter); + ServiceUtils.sendStreamResponseCompleted(message, StatusCode.EVENTMESH_ACL_ERR, e.getMessage(), emitter); return; } @@ -87,7 +87,7 @@ public void process(CloudEvent message, EventEmitter emitter) throws if (!eventMeshGrpcServer.getMsgRateLimiter() .tryAcquire(EventMeshConstants.DEFAULT_FASTFAIL_TIMEOUT_IN_MILLISECONDS, TimeUnit.MILLISECONDS)) { log.error("Send message speed over limit."); - ServiceUtils.streamCompleted(message, StatusCode.EVENTMESH_SEND_MESSAGE_SPEED_OVER_LIMIT_ERR, emitter); + ServiceUtils.sendStreamResponseCompleted(message, StatusCode.EVENTMESH_SEND_MESSAGE_SPEED_OVER_LIMIT_ERR, emitter); return; } @@ -122,7 +122,7 @@ public void onSuccess(SendResult sendResult) { @Override public void onException(OnExceptionContext onExceptionContext) { - ServiceUtils.streamCompleted(messageReply, StatusCode.EVENTMESH_REPLY_MSG_ERR, + ServiceUtils.sendStreamResponseCompleted(messageReply, StatusCode.EVENTMESH_REPLY_MSG_ERR, EventMeshUtil.stackTrace(onExceptionContext.getException(), 2), emitter); long endTime = System.currentTimeMillis(); log.error("message|mq2eventmesh|REPLY|ReplyToServer|send2MQCost={}ms|topic={}|bizSeqNo={}|uniqueId={}", diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/RequestCloudEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/RequestCloudEventProcessor.java index 7cbd18c58e..a256f5bb7c 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/RequestCloudEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/RequestCloudEventProcessor.java @@ -79,7 +79,8 @@ public void onSuccess(io.cloudevents.CloudEvent event) { endTime - startTime, topic, seqNum, uniqueId); eventMeshGrpcServer.getMetricsMonitor().recordSendMsgToClient(); } catch (Exception e) { - ServiceUtils.streamCompleted(message, StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR, EventMeshUtil.stackTrace(e, 2), emitter); + ServiceUtils.sendStreamResponseCompleted(message, StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR, EventMeshUtil.stackTrace(e, 2), + emitter); long endTime = System.currentTimeMillis(); log.error("message|mq2eventmesh|REPLY|RequestReply|send2MQCost={}ms|topic={}|bizSeqNo={}|uniqueId={}", endTime - startTime, topic, seqNum, uniqueId, e); @@ -88,7 +89,8 @@ public void onSuccess(io.cloudevents.CloudEvent event) { @Override public void onException(Throwable e) { - ServiceUtils.streamCompleted(message, StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR, EventMeshUtil.stackTrace(e, 2), emitter); + ServiceUtils.sendStreamResponseCompleted(message, StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR, EventMeshUtil.stackTrace(e, 2), + emitter); long endTime = System.currentTimeMillis(); log.error("message|eventMesh2mq|REPLY|RequestReply|send2MQCost={}ms|topic={}|bizSeqNo={}|uniqueId={}", endTime - startTime, topic, seqNum, uniqueId, e); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/SubscribeProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/SubscribeProcessor.java index f8a276fce7..5a74e01ba9 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/SubscribeProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/SubscribeProcessor.java @@ -62,12 +62,12 @@ public void process(final CloudEvent subscription, final EventEmitter emitter) throws Exception { if (!ServiceUtils.validateCloudEventAttributes(subscription)) { - ServiceUtils.completed(StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); return; } if (!ServiceUtils.validateSubscription(grpcType, subscription)) { - ServiceUtils.completed(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); return; } @@ -77,7 +77,7 @@ public void process(CloudEvent subscription, EventEmitter emitter) t doAclCheck(subscription); } catch (AclException e) { aclLogger.warn("CLIENT HAS NO PERMISSION to Subscribe. failed", e); - ServiceUtils.streamCompleted(subscription, StatusCode.EVENTMESH_ACL_ERR, e.getMessage(), emitter); + ServiceUtils.sendStreamResponseCompleted(subscription, StatusCode.EVENTMESH_ACL_ERR, e.getMessage(), emitter); return; } @@ -135,7 +135,7 @@ public void process(CloudEvent subscription, EventEmitter emitter) t log.warn("EventMesh consumer [{}] didn't restart.", consumerGroup); } - ServiceUtils.streamCompleted(subscription, StatusCode.SUCCESS, "subscribe success", emitter); + ServiceUtils.sendStreamResponse(subscription, StatusCode.SUCCESS, "subscribe success", emitter); } private void doAclCheck(CloudEvent subscription) throws AclException { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/UnsubscribeProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/UnsubscribeProcessor.java index 2301ad6297..708e3cfee4 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/UnsubscribeProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/UnsubscribeProcessor.java @@ -49,12 +49,12 @@ public UnsubscribeProcessor(EventMeshGrpcServer eventMeshGrpcServer) { public void process(CloudEvent subscription, EventEmitter emitter) throws Exception { if (!ServiceUtils.validateCloudEventAttributes(subscription)) { - ServiceUtils.completed(StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_PROTOCOL_HEADER_ERR, emitter); return; } if (!ServiceUtils.validateSubscription(null, subscription)) { - ServiceUtils.completed(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_PROTOCOL_BODY_ERR, emitter); return; } @@ -111,6 +111,6 @@ public void process(CloudEvent subscription, EventEmitter emitter) t log.warn("EventMesh consumer [{}] didn't restart.", consumerGroup); } - ServiceUtils.completed(StatusCode.SUCCESS, "unsubscribe success", emitter); + ServiceUtils.sendResponseCompleted(StatusCode.SUCCESS, "unsubscribe success", emitter); } } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ConsumerService.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ConsumerService.java index f8801dfa88..e1f9407380 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ConsumerService.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ConsumerService.java @@ -32,7 +32,7 @@ import org.apache.commons.collections4.CollectionUtils; -import java.util.List; +import java.util.Set; import java.util.concurrent.ThreadPoolExecutor; import io.grpc.stub.StreamObserver; @@ -73,7 +73,7 @@ public void subscribe(CloudEvent request, StreamObserver responseObs } catch (Exception e) { log.error("Error code {}, error message {}", StatusCode.EVENTMESH_SUBSCRIBE_ERR.getRetCode(), StatusCode.EVENTMESH_SUBSCRIBE_ERR.getErrMsg(), e); - ServiceUtils.completed(StatusCode.EVENTMESH_SUBSCRIBE_ERR, e.getMessage(), emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_SUBSCRIBE_ERR, e.getMessage(), emitter); } }); } @@ -85,8 +85,8 @@ public StreamObserver subscribeStream(StreamObserver res return new StreamObserver() { @Override public void onNext(CloudEvent subscription) { - List subscriptionItems = JsonUtils.parseTypeReferenceObject(subscription.getTextData(), - new TypeReference>() { + Set subscriptionItems = JsonUtils.parseTypeReferenceObject(subscription.getTextData(), + new TypeReference>() { }); if (CollectionUtils.isNotEmpty(subscriptionItems)) { log.info("cmd={}|{}|client2eventMesh|from={}|to={}", "subscribeStream", EventMeshConstants.PROTOCOL_GRPC, @@ -122,7 +122,7 @@ private void handleSubscriptionStream(CloudEvent request, EventEmitter responseO } catch (Exception e) { log.error("Error code {}, error message {}", StatusCode.EVENTMESH_UNSUBSCRIBE_ERR.getRetCode(), StatusCode.EVENTMESH_UNSUBSCRIBE_ERR.getErrMsg(), e); - ServiceUtils.completed(StatusCode.EVENTMESH_UNSUBSCRIBE_ERR, e.getMessage(), emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_UNSUBSCRIBE_ERR, e.getMessage(), emitter); } }); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/HeartbeatService.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/HeartbeatService.java index 69a87eec46..0b85ac371a 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/HeartbeatService.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/HeartbeatService.java @@ -60,7 +60,7 @@ public void heartbeat(CloudEvent request, StreamObserver responseObs } catch (Exception e) { log.error("Error code {}, error message {}", StatusCode.EVENTMESH_HEARTBEAT_ERR.getRetCode(), StatusCode.EVENTMESH_HEARTBEAT_ERR.getErrMsg(), e); - ServiceUtils.completed(StatusCode.EVENTMESH_HEARTBEAT_ERR, e.getMessage(), emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_HEARTBEAT_ERR, e.getMessage(), emitter); } }); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/PublisherService.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/PublisherService.java index 1f41724fa2..7969ffe6c3 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/PublisherService.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/PublisherService.java @@ -69,7 +69,7 @@ public void publish(CloudEvent request, StreamObserver responseObser } catch (Exception e) { log.error("Error code {}, error message {}", StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR.getRetCode(), StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR.getErrMsg(), e); - ServiceUtils.completed(StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR, e.getMessage(), emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_SEND_ASYNC_MSG_ERR, e.getMessage(), emitter); } }); } @@ -98,7 +98,7 @@ public void requestReply(CloudEvent request, StreamObserver response } catch (Exception e) { log.error("Error code {}, error message {}", StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR.getRetCode(), StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR.getErrMsg(), e); - ServiceUtils.streamCompleted(request, StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR, e.getMessage(), emitter); + ServiceUtils.sendStreamResponseCompleted(request, StatusCode.EVENTMESH_REQUEST_REPLY_MSG_ERR, e.getMessage(), emitter); } }); } @@ -126,7 +126,7 @@ public void batchPublish(CloudEventBatch request, StreamObserver res } catch (Exception e) { log.error("Error code {}, error message {}", StatusCode.EVENTMESH_BATCH_PUBLISH_ERR.getRetCode(), StatusCode.EVENTMESH_BATCH_PUBLISH_ERR.getErrMsg(), e); - ServiceUtils.completed(StatusCode.EVENTMESH_BATCH_PUBLISH_ERR, e.getMessage(), emitter); + ServiceUtils.sendResponseCompleted(StatusCode.EVENTMESH_BATCH_PUBLISH_ERR, e.getMessage(), emitter); } }); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java index b7a8db91f1..128d058e95 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java @@ -152,7 +152,14 @@ public static boolean validateHeartBeat(CloudEvent heartbeat) { return true; } - public static void completed(StatusCode code, String message, EventEmitter emitter) { + /** + * Sends a completed response event to the given EventEmitter. + * + * @param code The status code for the response. + * @param message The message for the response. + * @param emitter The EventEmitter to send the response event to. + */ + public static void sendResponseCompleted(StatusCode code, String message, EventEmitter emitter) { Instant instant = now(); CloudEvent.Builder builder = CloudEvent.newBuilder().setId(RandomStringUtils.generateUUID()) @@ -166,32 +173,75 @@ public static void completed(StatusCode code, String message, EventEmitter emitter) { + /** + * Sends a completed response event to the emitter. + * + * @param code The status code of the response + * @param emitter The emitter to send the event to + */ + public static void sendResponseCompleted(StatusCode code, EventEmitter emitter) { Instant instant = now(); CloudEvent.Builder builder = CloudEvent.newBuilder() .putAttributes(ProtocolKey.GRPC_RESPONSE_CODE, CloudEventAttributeValue.newBuilder().setCeString(code.getRetCode()).build()) - .putAttributes(ProtocolKey.GRPC_RESPONSE_MESSAGE, - CloudEventAttributeValue.newBuilder().setCeString(code.getErrMsg()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_MESSAGE, CloudEventAttributeValue.newBuilder().setCeString(code.getErrMsg()).build()) .putAttributes(ProtocolKey.GRPC_RESPONSE_TIME, CloudEventAttributeValue.newBuilder() .setCeTimestamp(Timestamp.newBuilder().setSeconds(instant.getEpochSecond()).setNanos(instant.getNano()).build()).build()); emitter.onNext(builder.build()); emitter.onCompleted(); } - public static void streamCompleted(CloudEvent cloudEvent, StatusCode code, EventEmitter emitter) { + /** + * Sends a completed response event to the emitter for a stream. + * + * @param cloudEvent The original CloudEvent + * @param code The status code of the response + * @param emitter The emitter to send the event to + */ + public static void sendStreamResponseCompleted(CloudEvent cloudEvent, StatusCode code, EventEmitter emitter) { + sendStreamResponse(cloudEvent, code, emitter); + emitter.onCompleted(); + } + + /** + * Sends a completed response event to the emitter for a stream with a custom message. + * + * @param cloudEvent The original CloudEvent + * @param code The status code of the response + * @param message The custom message for the response + * @param emitter The emitter to send the event to + */ + public static void sendStreamResponseCompleted(CloudEvent cloudEvent, StatusCode code, String message, EventEmitter emitter) { + sendStreamResponse(cloudEvent, code, message, emitter); + emitter.onCompleted(); + } + + /** + * Sends a response event to the emitter for a stream. + * + * @param cloudEvent The original CloudEvent + * @param code The status code of the response + * @param emitter The emitter to send the event to + */ + public static void sendStreamResponse(CloudEvent cloudEvent, StatusCode code, EventEmitter emitter) { Instant instant = now(); CloudEvent.Builder builder = CloudEvent.newBuilder(cloudEvent) .putAttributes(ProtocolKey.GRPC_RESPONSE_CODE, CloudEventAttributeValue.newBuilder().setCeString(code.getRetCode()).build()) - .putAttributes(ProtocolKey.GRPC_RESPONSE_MESSAGE, - CloudEventAttributeValue.newBuilder().setCeString(code.getErrMsg()).build()) + .putAttributes(ProtocolKey.GRPC_RESPONSE_MESSAGE, CloudEventAttributeValue.newBuilder().setCeString(code.getErrMsg()).build()) .putAttributes(ProtocolKey.GRPC_RESPONSE_TIME, CloudEventAttributeValue.newBuilder() .setCeTimestamp(Timestamp.newBuilder().setSeconds(instant.getEpochSecond()).setNanos(instant.getNano()).build()).build()); emitter.onNext(builder.build()); - emitter.onCompleted(); } - public static void streamCompleted(CloudEvent cloudEvent, StatusCode code, String message, EventEmitter emitter) { + /** + * Sends a response event to the emitter for a stream with a custom message. + * + * @param cloudEvent The original CloudEvent + * @param code The status code of the response + * @param message The custom message for the response + * @param emitter The emitter to send the event to + */ + public static void sendStreamResponse(CloudEvent cloudEvent, StatusCode code, String message, EventEmitter emitter) { Instant instant = OffsetDateTime.now().toInstant(); CloudEvent.Builder builder = CloudEvent.newBuilder(cloudEvent) .putAttributes(ProtocolKey.GRPC_RESPONSE_CODE, CloudEventAttributeValue.newBuilder().setCeString(code.getRetCode()).build()) @@ -201,9 +251,13 @@ public static void streamCompleted(CloudEvent cloudEvent, StatusCode code, Strin .setCeTimestamp(Timestamp.newBuilder().setSeconds(instant.getEpochSecond()).setNanos(instant.getNano()).build()).build()); emitter.onNext(builder.build()); - emitter.onCompleted(); } + /** + * Returns the current instant. + * + * @return The current instant + */ private static Instant now() { return OffsetDateTime.of(LocalDateTime.now(ZoneId.systemDefault()), ZoneOffset.UTC).toInstant(); } diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/consumer/SubStreamHandler.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/consumer/SubStreamHandler.java index 5bd4d9208a..40cd417871 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/consumer/SubStreamHandler.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/consumer/SubStreamHandler.java @@ -31,6 +31,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.concurrent.CountDownLatch; import io.grpc.stub.StreamObserver; @@ -71,7 +72,7 @@ private StreamObserver createReceiver() { @Override public void onNext(final CloudEvent message) { T msg = EventMeshCloudEventBuilder.buildMessageFromEventMeshCloudEvent(message, listener.getProtocolType()); - if (msg instanceof Map) { + if (msg instanceof Set) { if (log.isInfoEnabled()) { log.info("Received message from Server:{}", message); } diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilder.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilder.java index a98766b95d..feaef016b7 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilder.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilder.java @@ -269,8 +269,9 @@ public static T buildMessageFromEventMeshCloudEvent(final CloudEvent cloudEv // This is GRPC response cloudEvent if (StringUtils.isEmpty(seq) && StringUtils.isEmpty(uniqueId)) { + //The SubscriptionItem collection contains the content for the subscription. return (T) JsonUtils.parseTypeReferenceObject(content, - new TypeReference>() { + new TypeReference>>() { }); } diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilderTest.java b/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilderTest.java index 201413f109..9e98cb8bfe 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilderTest.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/util/EventMeshCloudEventBuilderTest.java @@ -29,11 +29,14 @@ import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEventBatch; import org.apache.eventmesh.common.protocol.grpc.common.EventMeshCloudEventUtils; import org.apache.eventmesh.common.protocol.grpc.common.ProtocolKey; +import org.apache.eventmesh.common.utils.JsonUtils; import java.net.URI; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; import org.junit.Assert; @@ -166,5 +169,17 @@ public void testBuildMessageFromEventMeshCloudEvent() { Assert.assertTrue(event1 instanceof io.cloudevents.CloudEvent); Object event2 = EventMeshCloudEventBuilder.buildMessageFromEventMeshCloudEvent(eventmesh1, EventMeshProtocolType.EVENT_MESH_MESSAGE); Assert.assertTrue(event2 instanceof EventMeshMessage); + + final Map attributeValueMap = EventMeshCloudEventBuilder.buildCommonCloudEventAttributes(clientConfig, + EventMeshProtocolType.EVENT_MESH_MESSAGE); + attributeValueMap.put(ProtocolKey.CONSUMERGROUP, CloudEventAttributeValue.newBuilder().setCeString(clientConfig.getConsumerGroup()).build()); + attributeValueMap.put(ProtocolKey.DATA_CONTENT_TYPE, CloudEventAttributeValue.newBuilder().setCeString("application/json").build()); + Set set = new HashSet<>(); + SubscriptionItem subscriptionItem = new SubscriptionItem("111", SubscriptionMode.CLUSTERING, SubscriptionType.SYNC); + set.add(subscriptionItem); + CloudEvent eventmesh2 = CloudEvent.newBuilder().setSpecVersion("1.0").setType("eventmesh").setSource(URI.create("/").toString()) + .setId(UUID.randomUUID().toString()).putAllAttributes(attributeValueMap).setTextData(JsonUtils.toJSONString(set)).build(); + Object event4 = EventMeshCloudEventBuilder.buildMessageFromEventMeshCloudEvent(eventmesh2, EventMeshProtocolType.CLOUD_EVENTS); + Assert.assertTrue(event4 instanceof Set); } } From bae1307239d4db5623a691cdb510bf49cb8fe5c3 Mon Sep 17 00:00:00 2001 From: Alonexc <91315508+Alonexc@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:35:58 +0800 Subject: [PATCH 038/333] [ISSUE #4166] Fix grpc AsyncPublishInstance has no push messages. (#4167) * Create .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * delete lift * push message optimization methods and correction of topic. * push message optimization methods and correction of topic. --- .../java/org/apache/eventmesh/grpc/GrpcAbstractDemo.java | 8 ++++---- .../pub/cloudevents/CloudEventsBatchPublishInstance.java | 3 ++- .../grpc/pub/cloudevents/CloudEventsPublishInstance.java | 3 ++- .../grpc/pub/cloudevents/CloudEventsRequestInstance.java | 3 ++- .../grpc/pub/eventmeshmessage/AsyncPublishBroadcast.java | 3 ++- .../grpc/pub/eventmeshmessage/AsyncPublishInstance.java | 3 ++- .../grpc/pub/eventmeshmessage/BatchPublishInstance.java | 3 ++- .../grpc/pub/eventmeshmessage/RequestReplyInstance.java | 3 ++- 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/GrpcAbstractDemo.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/GrpcAbstractDemo.java index 65ff999af6..28e260b8d9 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/GrpcAbstractDemo.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/GrpcAbstractDemo.java @@ -53,10 +53,10 @@ protected static EventMeshGrpcClientConfig initEventMeshGrpcClientConfig(final S .build(); } - protected static CloudEvent buildCloudEvent(final Map content) { + protected static CloudEvent buildCloudEvent(final Map content, String topic) { return CloudEventBuilder.v1() .withId(UUID.randomUUID().toString()) - .withSubject(ExampleConstants.EVENTMESH_GRPC_ASYNC_TEST_TOPIC) + .withSubject(topic) .withSource(URI.create("/")) .withDataContentType(ExampleConstants.CLOUDEVENT_CONTENT_TYPE) .withType(EventMeshCommon.CLOUD_EVENTS_PROTOCOL_NAME) @@ -66,10 +66,10 @@ protected static CloudEvent buildCloudEvent(final Map content) { } - protected static EventMeshMessage buildEventMeshMessage(final Map content) { + protected static EventMeshMessage buildEventMeshMessage(final Map content, String topic) { return EventMeshMessage.builder() .content(JsonUtils.toJSONString(content)) - .topic(ExampleConstants.EVENTMESH_GRPC_BROADCAT_TEST_TOPIC) + .topic(topic) .uniqueId(RandomStringUtils.generateNum(30)) .bizSeqNo(RandomStringUtils.generateNum(30)) .build() diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsBatchPublishInstance.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsBatchPublishInstance.java index 03705c85c8..264dcc64ab 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsBatchPublishInstance.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsBatchPublishInstance.java @@ -45,7 +45,8 @@ public static void main(String[] args) throws Exception { final List cloudEventList = new ArrayList<>(); for (int i = 0; i < 5; i++) { - cloudEventList.add(buildCloudEvent(content)); + cloudEventList.add(buildCloudEvent(content, + ExampleConstants.EVENTMESH_GRPC_BROADCAT_TEST_TOPIC)); } eventMeshGrpcProducer.publish(cloudEventList); ThreadUtils.sleep(10, TimeUnit.SECONDS); diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsPublishInstance.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsPublishInstance.java index 309af86048..dc9cfca7ab 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsPublishInstance.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsPublishInstance.java @@ -44,7 +44,8 @@ public static void main(String[] args) throws Exception { content.put("content", "testAsyncMessage"); for (int i = 0; i < MESSAGE_SIZE; i++) { - eventMeshGrpcProducer.publish(buildCloudEvent(content)); + eventMeshGrpcProducer.publish(buildCloudEvent(content, + ExampleConstants.EVENTMESH_GRPC_ASYNC_TEST_TOPIC)); ThreadUtils.sleep(1, TimeUnit.SECONDS); } diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsRequestInstance.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsRequestInstance.java index 589432f266..f733d1ce1e 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsRequestInstance.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/cloudevents/CloudEventsRequestInstance.java @@ -43,7 +43,8 @@ public static void main(String[] args) throws Exception { content.put("content", "testRequestReplyMessage"); for (int i = 0; i < MESSAGE_SIZE; i++) { - eventMeshGrpcProducer.requestReply(buildCloudEvent(content), EventMeshCommon.DEFAULT_TIME_OUT_MILLS); + eventMeshGrpcProducer.requestReply(buildCloudEvent(content, + ExampleConstants.EVENTMESH_GRPC_RR_TEST_TOPIC), EventMeshCommon.DEFAULT_TIME_OUT_MILLS); ThreadUtils.sleep(1, TimeUnit.SECONDS); } diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishBroadcast.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishBroadcast.java index b4d7c489d3..cee6b4da9a 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishBroadcast.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishBroadcast.java @@ -43,7 +43,8 @@ public static void main(String[] args) throws Exception { content.put("content", "testAsyncMessage"); for (int i = 0; i < MESSAGE_SIZE; i++) { - eventMeshGrpcProducer.publish(buildEventMeshMessage(content)); + eventMeshGrpcProducer.publish(buildEventMeshMessage(content, + ExampleConstants.EVENTMESH_GRPC_BROADCAT_TEST_TOPIC)); ThreadUtils.sleep(1, TimeUnit.SECONDS); } ThreadUtils.sleep(30, TimeUnit.SECONDS); diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishInstance.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishInstance.java index 162d360ed7..57d29aca65 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishInstance.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/AsyncPublishInstance.java @@ -43,7 +43,8 @@ public static void main(String[] args) throws Exception { content.put("content", "testAsyncMessage"); for (int i = 0; i < MESSAGE_SIZE; i++) { - buildEventMeshMessage(content); + eventMeshGrpcProducer.publish(buildEventMeshMessage(content, + ExampleConstants.EVENTMESH_GRPC_ASYNC_TEST_TOPIC)); ThreadUtils.sleep(1, TimeUnit.SECONDS); } ThreadUtils.sleep(30, TimeUnit.SECONDS); diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/BatchPublishInstance.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/BatchPublishInstance.java index 941f72ce81..3deed51663 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/BatchPublishInstance.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/BatchPublishInstance.java @@ -45,7 +45,8 @@ public static void main(String[] args) throws Exception { List messageList = new ArrayList<>(); for (int i = 0; i < 5; i++) { - messageList.add(buildEventMeshMessage(content)); + messageList.add(buildEventMeshMessage(content, + ExampleConstants.EVENTMESH_GRPC_BROADCAT_TEST_TOPIC)); } eventMeshGrpcProducer.publish(messageList); diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/RequestReplyInstance.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/RequestReplyInstance.java index 723c0637b9..4d71f93b75 100644 --- a/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/RequestReplyInstance.java +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/grpc/pub/eventmeshmessage/RequestReplyInstance.java @@ -45,7 +45,8 @@ public static void main(String[] args) throws Exception { content.put("content", "testRequestReplyMessage"); for (int i = 0; i < MESSAGE_SIZE; i++) { - eventMeshGrpcProducer.requestReply(buildEventMeshMessage(content), + eventMeshGrpcProducer.requestReply(buildEventMeshMessage(content, + ExampleConstants.EVENTMESH_GRPC_RR_TEST_TOPIC), EventMeshCommon.DEFAULT_TIME_OUT_MILLS); ThreadUtils.sleep(1, TimeUnit.SECONDS); } From 3392b45240c0cd27347667e26b2a4d4a68c8ab00 Mon Sep 17 00:00:00 2001 From: mike_xwm Date: Wed, 5 Jul 2023 09:31:56 +0800 Subject: [PATCH 039/333] merge 1.9.0 prepare branch to master for release (#4181) * remove the go dependency licenses (#4168) * update release version (#4169) * update known-dependencies.txt (#4170) * update release version * update known-dependencies.txt --- .../gradle.properties | 4 +- .../gradle.properties | 4 +- gradle.properties | 2 +- tools/dependency-check/known-dependencies.txt | 3 + tools/third-party-licenses/LICENSE | 77 ---- .../go/LICENSE-cloud.google.com-go.txt | 202 ---------- .../go/LICENSE-github.com-BurntSushi-toml.txt | 21 - .../go/LICENSE-github.com-OneOfOne-xxhash.txt | 187 --------- ...github.com-aliyun-alibaba-cloud-sdk-go.txt | 201 ---------- .../LICENSE-github.com-antihax-optional.txt | 8 - ...ithub.com-apache-rocketmq-client-go-v2.txt | 201 ---------- ...CENSE-github.com-asyncapi-converter-go.txt | 201 ---------- .../LICENSE-github.com-asyncapi-parser-go.txt | 201 ---------- ...thub.com-asyncapi-spec-json-schemas-v2.txt | 201 ---------- .../LICENSE-github.com-avast-retry-go-v4.txt | 21 - .../go/LICENSE-github.com-beorn7-perks.txt | 20 - .../LICENSE-github.com-buger-jsonparser.txt | 21 - ...ensus-instrumentation-opencensus-proto.txt | 202 ---------- .../LICENSE-github.com-cespare-xxhash-v2.txt | 22 -- .../go/LICENSE-github.com-cespare-xxhash.txt | 22 -- .../LICENSE-github.com-client9-misspell.txt | 21 - ...CENSE-github.com-cloudevents-sdk-go-v2.txt | 201 ---------- .../go/LICENSE-github.com-cncf-udpa-go.txt | 201 ---------- .../go/LICENSE-github.com-cncf-xds-go.txt | 201 ---------- .../go/LICENSE-github.com-creack-pty.txt | 23 -- .../go/LICENSE-github.com-davecgh-go-spew.txt | 15 - ...LICENSE-github.com-deckarep-golang-set.txt | 22 -- ...github.com-envoyproxy-go-control-plane.txt | 201 ---------- ...hub.com-envoyproxy-protoc-gen-validate.txt | 202 ---------- .../LICENSE-github.com-fsnotify-fsnotify.txt | 25 -- .../go/LICENSE-github.com-ghodss-yaml.txt | 50 --- .../LICENSE-github.com-gin-contrib-pprof.txt | 21 - .../go/LICENSE-github.com-gin-contrib-sse.txt | 21 - .../go/LICENSE-github.com-gin-gonic-gin.txt | 21 - .../LICENSE-github.com-go-errors-errors.txt | 7 - ...SE-github.com-go-openapi-jsonreference.txt | 202 ---------- .../go/LICENSE-github.com-go-openapi-spec.txt | 202 ---------- .../go/LICENSE-github.com-go-openapi-swag.txt | 202 ---------- ...CENSE-github.com-go-playground-locales.txt | 21 - ...com-go-playground-universal-translator.txt | 21 - ...github.com-go-playground-validator-v10.txt | 21 - ...LICENSE-github.com-go-sql-driver-mysql.txt | 373 ------------------ .../go/LICENSE-github.com-goccy-go-json.txt | 21 - .../go/LICENSE-github.com-gogf-gf.txt | 21 - .../go/LICENSE-github.com-golang-glog.txt | 191 --------- .../go/LICENSE-github.com-golang-mock.txt | 202 ---------- .../go/LICENSE-github.com-golang-protobuf.txt | 27 -- .../go/LICENSE-github.com-google-go-cmp.txt | 27 -- .../go/LICENSE-github.com-google-gofuzz.txt | 202 ---------- .../go/LICENSE-github.com-google-uuid.txt | 27 -- ...github.com-grpc-ecosystem-grpc-gateway.txt | 27 -- .../LICENSE-github.com-hashicorp-errwrap.txt | 353 ----------------- ...NSE-github.com-hashicorp-go-multierror.txt | 353 ----------------- ...E-github.com-inconshreveable-mousetrap.txt | 201 ---------- .../go/LICENSE-github.com-itchyny-gojq.txt | 21 - .../LICENSE-github.com-jinzhu-inflection.txt | 21 - .../go/LICENSE-github.com-jinzhu-now.txt | 21 - ...ICENSE-github.com-jmespath-go-jmespath.txt | 202 ---------- .../LICENSE-github.com-json-iterator-go.txt | 21 - .../licenses/go/LICENSE-github.com-kr-pty.txt | 23 -- .../go/LICENSE-github.com-kr-text.txt | 19 - .../go/LICENSE-github.com-leodido-go-urn.txt | 21 - ...ICENSE-github.com-lestrrat-go-strftime.txt | 21 - .../go/LICENSE-github.com-liyue201-gostl.txt | 21 - .../go/LICENSE-github.com-mattn-go-isatty.txt | 9 - ...-matttproud-golang_protobuf_extensions.txt | 201 ---------- ...ENSE-github.com-mitchellh-mapstructure.txt | 21 - ...ICENSE-github.com-modern-go-concurrent.txt | 201 ---------- .../LICENSE-github.com-modern-go-reflect2.txt | 201 ---------- ...github.com-nacos-group-nacos-sdk-go-v2.txt | 201 ---------- .../go/LICENSE-github.com-niemeyer-pretty.txt | 19 - .../go/LICENSE-github.com-panjf2000-ants.txt | 21 - ...ICENSE-github.com-pelletier-go-toml-v2.txt | 21 - .../go/LICENSE-github.com-pkg-errors.txt | 23 -- .../LICENSE-github.com-pmezard-go-difflib.txt | 27 -- ...SE-github.com-prometheus-client_golang.txt | 201 ---------- ...NSE-github.com-prometheus-client_model.txt | 201 ---------- .../LICENSE-github.com-prometheus-common.txt | 201 ---------- .../LICENSE-github.com-prometheus-procfs.txt | 201 ---------- .../LICENSE-github.com-reactivex-rxgo-v2.txt | 21 - .../LICENSE-github.com-rogpeppe-fastuuid.txt | 26 -- ...ithub.com-serverlessworkflow-sdk-go-v2.txt | 201 ---------- .../go/LICENSE-github.com-sony-sonyflake.txt | 21 - .../LICENSE-github.com-spaolacci-murmur3.txt | 24 -- .../go/LICENSE-github.com-spf13-pflag.txt | 28 -- .../go/LICENSE-github.com-stretchr-objx.txt | 22 -- .../LICENSE-github.com-stretchr-testify.txt | 21 - .../go/LICENSE-github.com-swaggo-files.txt | 21 - .../LICENSE-github.com-swaggo-gin-swagger.txt | 21 - .../go/LICENSE-github.com-swaggo-swag.txt | 21 - .../go/LICENSE-github.com-ugorji-go.txt | 22 -- .../go/LICENSE-github.com-unrolled-secure.txt | 20 - .../go/LICENSE-github.com-urfave-cli-v2.txt | 21 - ...ENSE-github.com-valyala-bytebufferpool.txt | 21 - ...CENSE-github.com-xeipuuv-gojsonpointer.txt | 202 ---------- ...NSE-github.com-xeipuuv-gojsonreference.txt | 202 ---------- ...ICENSE-github.com-xeipuuv-gojsonschema.txt | 202 ---------- ...LICENSE-go.opentelemetry.io-proto-otlp.txt | 201 ---------- .../go/LICENSE-go.uber.org-atomic.txt | 19 - .../licenses/go/LICENSE-go.uber.org-dig.txt | 19 - .../licenses/go/LICENSE-go.uber.org-fx.txt | 19 - .../go/LICENSE-go.uber.org-multierr.txt | 19 - .../licenses/go/LICENSE-go.uber.org-zap.txt | 19 - .../go/LICENSE-golang.org-x-crypto.txt | 27 -- .../licenses/go/LICENSE-golang.org-x-exp.txt | 27 -- .../licenses/go/LICENSE-golang.org-x-lint.txt | 27 -- .../licenses/go/LICENSE-golang.org-x-net.txt | 27 -- .../go/LICENSE-golang.org-x-oauth2.txt | 27 -- .../licenses/go/LICENSE-golang.org-x-sync.txt | 27 -- .../licenses/go/LICENSE-golang.org-x-sys.txt | 27 -- .../licenses/go/LICENSE-golang.org-x-text.txt | 27 -- .../licenses/go/LICENSE-golang.org-x-time.txt | 27 -- .../go/LICENSE-golang.org-x-tools.txt | 27 -- .../go/LICENSE-golang.org-x-xerrors.txt | 27 -- .../LICENSE-google.golang.org-appengine.txt | 201 ---------- .../go/LICENSE-google.golang.org-genproto.txt | 202 ---------- .../go/LICENSE-google.golang.org-grpc.txt | 202 ---------- .../go/LICENSE-google.golang.org-protobuf.txt | 202 ---------- .../licenses/go/LICENSE-gopkg.in-check.v1.txt | 25 -- .../licenses/go/LICENSE-gopkg.in-ini.v1.txt | 191 --------- ...CENSE-gopkg.in-natefinch-lumberjack.v2.txt | 21 - .../licenses/go/LICENSE-gopkg.in-yaml.v2.txt | 201 ---------- .../licenses/go/LICENSE-gopkg.in-yaml.v3.txt | 50 --- .../go/LICENSE-gorm.io-driver-mysql.txt | 21 - .../licenses/go/LICENSE-gorm.io-gorm.txt | 21 - .../go/LICENSE-honnef.co-go-tools.txt | 20 - 126 files changed, 10 insertions(+), 10944 deletions(-) delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-cloud.google.com-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-BurntSushi-toml.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-OneOfOne-xxhash.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-aliyun-alibaba-cloud-sdk-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-antihax-optional.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-apache-rocketmq-client-go-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-converter-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-parser-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-spec-json-schemas-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-avast-retry-go-v4.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-beorn7-perks.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-buger-jsonparser.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-census-instrumentation-opencensus-proto.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-client9-misspell.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-udpa-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-xds-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-creack-pty.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-davecgh-go-spew.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-deckarep-golang-set.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-go-control-plane.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-protoc-gen-validate.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-fsnotify-fsnotify.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-ghodss-yaml.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-pprof.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-sse.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-gonic-gin.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-errors-errors.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-jsonreference.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-spec.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-swag.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-locales.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-universal-translator.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-validator-v10.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-go-sql-driver-mysql.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-goccy-go-json.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-gogf-gf.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-glog.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-mock.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-protobuf.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-google-go-cmp.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-google-gofuzz.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-grpc-ecosystem-grpc-gateway.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-errwrap.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-go-multierror.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-inconshreveable-mousetrap.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-itchyny-gojq.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-inflection.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-now.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-jmespath-go-jmespath.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-pty.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-text.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-leodido-go-urn.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-lestrrat-go-strftime.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-liyue201-gostl.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-mattn-go-isatty.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-matttproud-golang_protobuf_extensions.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-mitchellh-mapstructure.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-concurrent.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-reflect2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-nacos-group-nacos-sdk-go-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-niemeyer-pretty.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-pelletier-go-toml-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-pkg-errors.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-pmezard-go-difflib.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_golang.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_model.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-common.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-procfs.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-reactivex-rxgo-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-rogpeppe-fastuuid.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-serverlessworkflow-sdk-go-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-spaolacci-murmur3.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-spf13-pflag.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-objx.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-files.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-gin-swagger.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-swag.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-ugorji-go.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-unrolled-secure.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-urfave-cli-v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-valyala-bytebufferpool.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonpointer.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonreference.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonschema.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.opentelemetry.io-proto-otlp.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-dig.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-fx.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-multierr.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-crypto.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-exp.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-lint.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-net.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-oauth2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sync.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sys.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-text.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-time.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-tools.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-xerrors.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-appengine.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-genproto.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-check.v1.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-ini.v1.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-natefinch-lumberjack.v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v2.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v3.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-gorm.io-driver-mysql.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-gorm.io-gorm.txt delete mode 100644 tools/third-party-licenses/licenses/go/LICENSE-honnef.co-go-tools.txt diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/gradle.properties b/eventmesh-connectors/eventmesh-connector-openfunction/gradle.properties index a9fd83fea0..cdcf52e5a8 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/gradle.properties +++ b/eventmesh-connectors/eventmesh-connector-openfunction/gradle.properties @@ -13,4 +13,6 @@ # 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. -# \ No newline at end of file +# +pluginType=connector +pluginName=openfunction \ No newline at end of file diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties b/eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties index 89a6e46129..8545888587 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/gradle.properties @@ -14,4 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -rocketmq_version=4.9.5 \ No newline at end of file +rocketmq_version=4.9.5 +pluginType=connector +pluginName=rocketmq \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 89018bf93f..baf88cfabc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,7 +18,7 @@ jdk=1.8 snapshot=false group=org.apache.eventmesh -version=1.8.0-release +version=1.9.0-release #last eight bits of public key signing.keyId= #passphrase for key pairs diff --git a/tools/dependency-check/known-dependencies.txt b/tools/dependency-check/known-dependencies.txt index 98189aa71b..2711e43c7e 100644 --- a/tools/dependency-check/known-dependencies.txt +++ b/tools/dependency-check/known-dependencies.txt @@ -98,9 +98,12 @@ jsr305-3.0.2.jar junit-4.13.2.jar kafka-clients-3.0.0.jar listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +log4j-1.2.17.jar log4j-api-2.17.1.jar log4j-core-2.17.1.jar log4j-slf4j-impl-2.17.1.jar +logback-classic-1.2.10.jar +logback-core-1.2.10.jar lz4-java-1.7.1.jar lz4-java-1.8.0.jar metrics-annotation-4.1.0.jar diff --git a/tools/third-party-licenses/LICENSE b/tools/third-party-licenses/LICENSE index bf92fc7a95..9456ae5c1a 100644 --- a/tools/third-party-licenses/LICENSE +++ b/tools/third-party-licenses/LICENSE @@ -374,25 +374,6 @@ The text of each license is also included at licenses/LICENSE-[project].txt. zipkin-reporter 2.16.3: https://github.com/openzipkin/zipkin-reporter-java, Apache 2.0 zipkin-sender-okhttp3 2.16.3: https://github.com/openzipkin/zipkin-reporter-java, Apache 2.0 zookeeper 3.4.6: https://github.com/apache/zookeeper, Apache 2.0 - cloud.google.com/go v0.34.0 Apache-2.0 - github.com/OneOfOne/xxhash v1.2.2 Apache-2.0 - github.com/census-instrumentation/opencensus-proto v0.2.1 Apache-2.0 - github.com/cloudevents/sdk-go/v2 v2.6.0 Apache-2.0 - github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 Apache-2.0 - github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1 Apache-2.0 - github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021 Apache-2.0 - github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0 - github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b Apache-2.0 - github.com/golang/mock v1.1.1 Apache-2.0 - github.com/google/gofuzz v1.0.0 Apache-2.0 - github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 Apache-2.0 - github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 Apache-2.0 - github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 Apache-2.0 - go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0 - google.golang.org/appengine v1.4.0 Apache-2.0 - google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 Apache-2.0 - google.golang.org/grpc v1.45.0 Apache-2.0 - gopkg.in/yaml.v2 v2.3.0 Apache-2.0 ======================================================================== BSD licenses @@ -450,27 +431,6 @@ The text of each license is also included at licenses/LICENSE-[project].txt. checker-qual 3.12.0: https://github.com/typetools/checker-framework, MIT reactive-streams 1.0.3: https://github.com/reactive-streams/reactive-streams-jvm, MIT slf4j-api 1.7.30: https://github.com/qos-ch/slf4j, MIT - github.com/BurntSushi/toml v0.3.1 MIT - github.com/antihax/optional v1.0.0 MIT - github.com/cespare/xxhash v1.1.0 MIT - github.com/cespare/xxhash/v2 v2.1.1 MIT - github.com/client9/misspell v0.3.4 MIT - github.com/creack/pty v1.1.9 MIT - github.com/deckarep/golang-set v1.7.1 - github.com/ghodss/yaml v1.0.0 MIT - github.com/json-iterator/go v1.1.10 MIT - github.com/kr/pty v1.1.1 MIT - github.com/kr/text v0.2.0 MIT - github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e MIT - github.com/panjf2000/ants v1.3.0 MIT - github.com/sony/sonyflake v1.0.0 MIT - github.com/stretchr/objx v0.1.1 MIT - github.com/stretchr/testify v1.7.0 MIT - github.com/valyala/bytebufferpool v1.0.0 MIT - go.uber.org/atomic v1.4.0 MIT - go.uber.org/multierr v1.1.0 MIT - go.uber.org/zap v1.10.0 MIT - honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc MIT ======================================================================== BSD-3-Clause licenses @@ -480,32 +440,6 @@ The following components are provided under the BSD-3-Clause License. See projec The text of each license is also included at licenses/license-[project].txt. jline 0.9.94: https://github.com/jline, BSD-3-Clause - github.com/golang/protobuf v1.5.2 BSD-3-Clause - github.com/google/go-cmp v0.5.5 BSD-3-Clause - github.com/google/uuid v1.3.0 BSD-3-Clause - github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause - github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause - github.com/rogpeppe/fastuuid v1.2.0 BSD-3-Clause - github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 BSD-3-Clause - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 BSD-3-Clause - golang.org/x/exp v0.0.0-20190121172915-509febef88a4 BSD-3-Clause - golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 BSD-3-Clause - golang.org/x/net v0.0.0-20200822124328-c89045814202 BSD-3-Clause - golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d BSD-3-Clause - golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e BSD-3-Clause - golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd BSD-3-Clause - golang.org/x/text v0.3.0 BSD-3-Clause - golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135 BSD-3-Clause - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 BSD-3-Clause - -======================================================================== -ISC licenses -======================================================================== - -The following components are provided under the ISC License. See project link for details. -The text of each license is also included at licenses/license-[project].txt. - - github.com/davecgh/go-spew v1.1.1 ISC ======================================================================== BSD-2-Clause licenses @@ -516,17 +450,6 @@ The text of each license is also included at licenses/license-[project].txt. jodd-bean 5.1.6: https://github.com/oblac/jodd-util, BSD-2-Clause jodd-core 5.1.6: https://github.com/oblac/jodd, BSD-2-Clause - github.com/pkg/errors v0.9.1 BSD-2-Clause - gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f BSD-2-Clause - -======================================================================== -MIT and Apache licenses -======================================================================== - -The following components are provided under the MIT and Apache License. See project link for details. -The text of each license is also included at licenses/license-[project].txt. - - gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c MIT and Apache ======================================================================== MPL & GPL & Apache licenses diff --git a/tools/third-party-licenses/licenses/go/LICENSE-cloud.google.com-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-cloud.google.com-go.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-cloud.google.com-go.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-BurntSushi-toml.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-BurntSushi-toml.txt deleted file mode 100644 index 01b5743200..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-BurntSushi-toml.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 TOML authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-OneOfOne-xxhash.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-OneOfOne-xxhash.txt deleted file mode 100644 index e64dffa0a9..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-OneOfOne-xxhash.txt +++ /dev/null @@ -1,187 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-aliyun-alibaba-cloud-sdk-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-aliyun-alibaba-cloud-sdk-go.txt deleted file mode 100644 index de095ef1a9..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-aliyun-alibaba-cloud-sdk-go.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright (c) 2009-present, Alibaba Cloud All rights reserved. - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-antihax-optional.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-antihax-optional.txt deleted file mode 100644 index 6a2c64ab1f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-antihax-optional.txt +++ /dev/null @@ -1,8 +0,0 @@ -The MIT License (MIT) -Copyright (c) 2016 Adam Hintz - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-apache-rocketmq-client-go-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-apache-rocketmq-client-go-v2.txt deleted file mode 100644 index 3d33284651..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-apache-rocketmq-client-go-v2.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-converter-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-converter-go.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-converter-go.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-parser-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-parser-go.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-parser-go.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-spec-json-schemas-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-spec-json-schemas-v2.txt deleted file mode 100644 index 9453962d52..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-asyncapi-spec-json-schemas-v2.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -   Copyright The Linux Foundation - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-avast-retry-go-v4.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-avast-retry-go-v4.txt deleted file mode 100644 index 89a39a513f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-avast-retry-go-v4.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Avast - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-beorn7-perks.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-beorn7-perks.txt deleted file mode 100644 index e52e03f1cc..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-beorn7-perks.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (C) 2013 Blake Mizerany - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-buger-jsonparser.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-buger-jsonparser.txt deleted file mode 100644 index 7dad6acda0..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-buger-jsonparser.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Leonid Bugaev - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-census-instrumentation-opencensus-proto.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-census-instrumentation-opencensus-proto.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-census-instrumentation-opencensus-proto.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt deleted file mode 100644 index 10222e14e2..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2016 Caleb Spare - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt deleted file mode 100644 index 10222e14e2..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2016 Caleb Spare - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-client9-misspell.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-client9-misspell.txt deleted file mode 100644 index bfcfcd3013..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-client9-misspell.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2017 Nick Galbreath - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-udpa-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-udpa-go.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-udpa-go.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-xds-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-xds-go.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cncf-xds-go.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-creack-pty.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-creack-pty.txt deleted file mode 100644 index 6b761042bf..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-creack-pty.txt +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2011 Keith Rarick - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, -sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall -be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS -OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-davecgh-go-spew.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-davecgh-go-spew.txt deleted file mode 100644 index 7304bdf8cb..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-davecgh-go-spew.txt +++ /dev/null @@ -1,15 +0,0 @@ -ISC License - -Copyright (c) 2012-2016 Dave Collins - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-deckarep-golang-set.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-deckarep-golang-set.txt deleted file mode 100644 index efd4827e21..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-deckarep-golang-set.txt +++ /dev/null @@ -1,22 +0,0 @@ -Open Source Initiative OSI - The MIT License (MIT):Licensing - -The MIT License (MIT) -Copyright (c) 2013 - 2022 Ralph Caraveo (deckarep@gmail.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-go-control-plane.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-go-control-plane.txt deleted file mode 100644 index 9c8f3ea087..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-go-control-plane.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-protoc-gen-validate.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-protoc-gen-validate.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-envoyproxy-protoc-gen-validate.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-fsnotify-fsnotify.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-fsnotify-fsnotify.txt deleted file mode 100644 index c656a4322e..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-fsnotify-fsnotify.txt +++ /dev/null @@ -1,25 +0,0 @@ -Copyright © 2012 The Go Authors. All rights reserved. -Copyright © fsnotify Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. -* Neither the name of Google Inc. nor the names of its contributors may be used - to endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-ghodss-yaml.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-ghodss-yaml.txt deleted file mode 100644 index e137618b0f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-ghodss-yaml.txt +++ /dev/null @@ -1,50 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Sam Ghods - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-pprof.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-pprof.txt deleted file mode 100644 index 952e7d0ab7..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-pprof.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Gin-Gonic - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-sse.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-sse.txt deleted file mode 100644 index 234880dcb8..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-contrib-sse.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Manuel Martínez-Almeida - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-gonic-gin.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-gonic-gin.txt deleted file mode 100644 index 234880dcb8..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gin-gonic-gin.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Manuel Martínez-Almeida - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-errors-errors.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-errors-errors.txt deleted file mode 100644 index 61b40eeef9..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-errors-errors.txt +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2015 Conrad Irwin - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-jsonreference.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-jsonreference.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-jsonreference.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-spec.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-spec.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-spec.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-swag.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-swag.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-openapi-swag.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-locales.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-locales.txt deleted file mode 100644 index 75854ac4f0..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-locales.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Go Playground - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-universal-translator.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-universal-translator.txt deleted file mode 100644 index 75854ac4f0..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-universal-translator.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Go Playground - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-validator-v10.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-validator-v10.txt deleted file mode 100644 index ab4304b3cd..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-playground-validator-v10.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Dean Karn - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-sql-driver-mysql.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-sql-driver-mysql.txt deleted file mode 100644 index fa0086a952..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-go-sql-driver-mysql.txt +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-goccy-go-json.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-goccy-go-json.txt deleted file mode 100644 index 90ef3730cb..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-goccy-go-json.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Masaaki Goshima - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gogf-gf.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-gogf-gf.txt deleted file mode 100644 index 0b6bc3a5f4..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-gogf-gf.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 john@goframe.org https://goframe.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-glog.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-glog.txt deleted file mode 100644 index 8405e89a0b..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-glog.txt +++ /dev/null @@ -1,191 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright -owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities -that control, are controlled by, or are under common control with that entity. -For the purposes of this definition, "control" means (i) the power, direct or -indirect, to cause the direction or management of such entity, whether by -contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including -but not limited to software source code, documentation source, and configuration -files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object code, -generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made -available under the License, as indicated by a copyright notice that is included -in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative Works -shall not include works that remain separable from, or merely link (or bind by -name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version -of the Work and any modifications or additions to that Work or Derivative Works -thereof, that is intentionally submitted to Licensor for inclusion in the Work -by the copyright owner or by an individual or Legal Entity authorized to submit -on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, and -issue tracking systems that are managed by, or on behalf of, the Licensor for -the purpose of discussing and improving the Work, but excluding communication -that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the Work and such -Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable (except as stated in this section) patent license to make, have -made, use, offer to sell, sell, import, and otherwise transfer the Work, where -such license applies only to those patent claims licensable by such Contributor -that are necessarily infringed by their Contribution(s) alone or by combination -of their Contribution(s) with the Work to which such Contribution(s) was -submitted. If You institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work or a -Contribution incorporated within the Work constitutes direct or contributory -patent infringement, then any patent licenses granted to You under this License -for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof -in any medium, with or without modifications, and in Source or Object form, -provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of -this License; and -You must cause any modified files to carry prominent notices stating that You -changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, -all copyright, patent, trademark, and attribution notices from the Source form -of the Work, excluding those notices that do not pertain to any part of the -Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any -Derivative Works that You distribute must include a readable copy of the -attribution notices contained within such NOTICE file, excluding those notices -that do not pertain to any part of the Derivative Works, in at least one of the -following places: within a NOTICE text file distributed as part of the -Derivative Works; within the Source form or documentation, if provided along -with the Derivative Works; or, within a display generated by the Derivative -Works, if and wherever such third-party notices normally appear. The contents of -the NOTICE file are for informational purposes only and do not modify the -License. You may add Your own attribution notices within Derivative Works that -You distribute, alongside or as an addendum to the NOTICE text from the Work, -provided that such additional attribution notices cannot be construed as -modifying the License. -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a whole, -provided Your use, reproduction, and distribution of the Work otherwise complies -with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted -for inclusion in the Work by You to the Licensor shall be under the terms and -conditions of this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify the terms of -any separate license agreement you may have executed with Licensor regarding -such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, -service marks, or product names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the -Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, -including, without limitation, any warranties or conditions of TITLE, -NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are -solely responsible for determining the appropriateness of using or -redistributing the Work and assume any risks associated with Your exercise of -permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), -contract, or otherwise, unless required by applicable law (such as deliberate -and grossly negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, incidental, -or consequential damages of any character arising as a result of this License or -out of the use or inability to use the Work (including but not limited to -damages for loss of goodwill, work stoppage, computer failure or malfunction, or -any and all other commercial damages or losses), even if such Contributor has -been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to -offer, and charge a fee for, acceptance of support, warranty, indemnity, or -other liability obligations and/or rights consistent with this License. However, -in accepting such obligations, You may act only on Your own behalf and on Your -sole responsibility, not on behalf of any other Contributor, and only if You -agree to indemnify, defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason of your -accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work - -To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be -enclosed in the appropriate comment syntax for the file format. We also -recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification within -third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-mock.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-mock.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-mock.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-protobuf.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-protobuf.txt deleted file mode 100644 index 8e63345bc2..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-golang-protobuf.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2010 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-go-cmp.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-go-cmp.txt deleted file mode 100644 index d9b732cfd3..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-go-cmp.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2017 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-gofuzz.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-gofuzz.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-gofuzz.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt deleted file mode 100644 index 0c2c410a76..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009,2014 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-grpc-ecosystem-grpc-gateway.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-grpc-ecosystem-grpc-gateway.txt deleted file mode 100644 index 6e59e318a1..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-grpc-ecosystem-grpc-gateway.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2015, Gengo, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither the name of Gengo, Inc. nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-errwrap.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-errwrap.txt deleted file mode 100644 index 82b4de97c7..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-errwrap.txt +++ /dev/null @@ -1,353 +0,0 @@ -Mozilla Public License, version 2.0 - -1. Definitions - -1.1. “Contributor” - - means each individual or legal entity that creates, contributes to the - creation of, or owns Covered Software. - -1.2. “Contributor Version” - - means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor’s Contribution. - -1.3. “Contribution” - - means Covered Software of a particular Contributor. - -1.4. “Covered Software” - - means Source Code Form to which the initial Contributor has attached the - notice in Exhibit A, the Executable Form of such Source Code Form, and - Modifications of such Source Code Form, in each case including portions - thereof. - -1.5. “Incompatible With Secondary Licenses” - means - - a. that the initial Contributor has attached the notice described in - Exhibit B to the Covered Software; or - - b. that the Covered Software was made available under the terms of version - 1.1 or earlier of the License, but not also under the terms of a - Secondary License. - -1.6. “Executable Form” - - means any form of the work other than Source Code Form. - -1.7. “Larger Work” - - means a work that combines Covered Software with other material, in a separate - file or files, that is not Covered Software. - -1.8. “License” - - means this document. - -1.9. “Licensable” - - means having the right to grant, to the maximum extent possible, whether at the - time of the initial grant or subsequently, any and all of the rights conveyed by - this License. - -1.10. “Modifications” - - means any of the following: - - a. any file in Source Code Form that results from an addition to, deletion - from, or modification of the contents of Covered Software; or - - b. any new file in Source Code Form that contains any Covered Software. - -1.11. “Patent Claims” of a Contributor - - means any patent claim(s), including without limitation, method, process, - and apparatus claims, in any patent Licensable by such Contributor that - would be infringed, but for the grant of the License, by the making, - using, selling, offering for sale, having made, import, or transfer of - either its Contributions or its Contributor Version. - -1.12. “Secondary License” - - means either the GNU General Public License, Version 2.0, the GNU Lesser - General Public License, Version 2.1, the GNU Affero General Public - License, Version 3.0, or any later versions of those licenses. - -1.13. “Source Code Form” - - means the form of the work preferred for making modifications. - -1.14. “You” (or “Your”) - - means an individual or a legal entity exercising rights under this - License. For legal entities, “You” includes any entity that controls, is - controlled by, or is under common control with You. For purposes of this - definition, “control” means (a) the power, direct or indirect, to cause - the direction or management of such entity, whether by contract or - otherwise, or (b) ownership of more than fifty percent (50%) of the - outstanding shares or beneficial ownership of such entity. - - -2. License Grants and Conditions - -2.1. Grants - - Each Contributor hereby grants You a world-wide, royalty-free, - non-exclusive license: - - a. under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or as - part of a Larger Work; and - - b. under Patent Claims of such Contributor to make, use, sell, offer for - sale, have made, import, and otherwise transfer either its Contributions - or its Contributor Version. - -2.2. Effective Date - - The licenses granted in Section 2.1 with respect to any Contribution become - effective for each Contribution on the date the Contributor first distributes - such Contribution. - -2.3. Limitations on Grant Scope - - The licenses granted in this Section 2 are the only rights granted under this - License. No additional rights or licenses will be implied from the distribution - or licensing of Covered Software under this License. Notwithstanding Section - 2.1(b) above, no patent license is granted by a Contributor: - - a. for any code that a Contributor has removed from Covered Software; or - - b. for infringements caused by: (i) Your and any other third party’s - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - - c. under Patent Claims infringed by Covered Software in the absence of its - Contributions. - - This License does not grant any rights in the trademarks, service marks, or - logos of any Contributor (except as may be necessary to comply with the - notice requirements in Section 3.4). - -2.4. Subsequent Licenses - - No Contributor makes additional grants as a result of Your choice to - distribute the Covered Software under a subsequent version of this License - (see Section 10.2) or under the terms of a Secondary License (if permitted - under the terms of Section 3.3). - -2.5. Representation - - Each Contributor represents that the Contributor believes its Contributions - are its original creation(s) or it has sufficient rights to grant the - rights to its Contributions conveyed by this License. - -2.6. Fair Use - - This License is not intended to limit any rights You have under applicable - copyright doctrines of fair use, fair dealing, or other equivalents. - -2.7. Conditions - - Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in - Section 2.1. - - -3. Responsibilities - -3.1. Distribution of Source Form - - All distribution of Covered Software in Source Code Form, including any - Modifications that You create or to which You contribute, must be under the - terms of this License. You must inform recipients that the Source Code Form - of the Covered Software is governed by the terms of this License, and how - they can obtain a copy of this License. You may not attempt to alter or - restrict the recipients’ rights in the Source Code Form. - -3.2. Distribution of Executable Form - - If You distribute Covered Software in Executable Form then: - - a. such Covered Software must also be made available in Source Code Form, - as described in Section 3.1, and You must inform recipients of the - Executable Form how they can obtain a copy of such Source Code Form by - reasonable means in a timely manner, at a charge no more than the cost - of distribution to the recipient; and - - b. You may distribute such Executable Form under the terms of this License, - or sublicense it under different terms, provided that the license for - the Executable Form does not attempt to limit or alter the recipients’ - rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - - You may create and distribute a Larger Work under terms of Your choice, - provided that You also comply with the requirements of this License for the - Covered Software. If the Larger Work is a combination of Covered Software - with a work governed by one or more Secondary Licenses, and the Covered - Software is not Incompatible With Secondary Licenses, this License permits - You to additionally distribute such Covered Software under the terms of - such Secondary License(s), so that the recipient of the Larger Work may, at - their option, further distribute the Covered Software under the terms of - either this License or such Secondary License(s). - -3.4. Notices - - You may not remove or alter the substance of any license notices (including - copyright notices, patent notices, disclaimers of warranty, or limitations - of liability) contained within the Source Code Form of the Covered - Software, except that You may alter any license notices to the extent - required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - - You may choose to offer, and to charge a fee for, warranty, support, - indemnity or liability obligations to one or more recipients of Covered - Software. However, You may do so only on Your own behalf, and not on behalf - of any Contributor. You must make it absolutely clear that any such - warranty, support, indemnity, or liability obligation is offered by You - alone, and You hereby agree to indemnify every Contributor for any - liability incurred by such Contributor as a result of warranty, support, - indemnity or liability terms You offer. You may include additional - disclaimers of warranty and limitations of liability specific to any - jurisdiction. - -4. Inability to Comply Due to Statute or Regulation - - If it is impossible for You to comply with any of the terms of this License - with respect to some or all of the Covered Software due to statute, judicial - order, or regulation then You must: (a) comply with the terms of this License - to the maximum extent possible; and (b) describe the limitations and the code - they affect. Such description must be placed in a text file included with all - distributions of the Covered Software under this License. Except to the - extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to - understand it. - -5. Termination - -5.1. The rights granted under this License will terminate automatically if You - fail to comply with any of its terms. However, if You become compliant, - then the rights granted under this License from a particular Contributor - are reinstated (a) provisionally, unless and until such Contributor - explicitly and finally terminates Your grants, and (b) on an ongoing basis, - if such Contributor fails to notify You of the non-compliance by some - reasonable means prior to 60 days after You have come back into compliance. - Moreover, Your grants from a particular Contributor are reinstated on an - ongoing basis if such Contributor notifies You of the non-compliance by - some reasonable means, this is the first time You have received notice of - non-compliance with this License from such Contributor, and You become - compliant prior to 30 days after Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent - infringement claim (excluding declaratory judgment actions, counter-claims, - and cross-claims) alleging that a Contributor Version directly or - indirectly infringes any patent, then the rights granted to You by any and - all Contributors for the Covered Software under Section 2.1 of this License - shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user - license agreements (excluding distributors and resellers) which have been - validly granted by You or Your distributors under this License prior to - termination shall survive termination. - -6. Disclaimer of Warranty - - Covered Software is provided under this License on an “as is” basis, without - warranty of any kind, either expressed, implied, or statutory, including, - without limitation, warranties that the Covered Software is free of defects, - merchantable, fit for a particular purpose or non-infringing. The entire - risk as to the quality and performance of the Covered Software is with You. - Should any Covered Software prove defective in any respect, You (not any - Contributor) assume the cost of any necessary servicing, repair, or - correction. This disclaimer of warranty constitutes an essential part of this - License. No use of any Covered Software is authorized under this License - except under this disclaimer. - -7. Limitation of Liability - - Under no circumstances and under no legal theory, whether tort (including - negligence), contract, or otherwise, shall any Contributor, or anyone who - distributes Covered Software as permitted above, be liable to You for any - direct, indirect, special, incidental, or consequential damages of any - character including, without limitation, damages for lost profits, loss of - goodwill, work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses, even if such party shall have been - informed of the possibility of such damages. This limitation of liability - shall not apply to liability for death or personal injury resulting from such - party’s negligence to the extent applicable law prohibits such limitation. - Some jurisdictions do not allow the exclusion or limitation of incidental or - consequential damages, so this exclusion and limitation may not apply to You. - -8. Litigation - - Any litigation relating to this License may be brought only in the courts of - a jurisdiction where the defendant maintains its principal place of business - and such litigation shall be governed by laws of that jurisdiction, without - reference to its conflict-of-law provisions. Nothing in this Section shall - prevent a party’s ability to bring cross-claims or counter-claims. - -9. Miscellaneous - - This License represents the complete agreement concerning the subject matter - hereof. If any provision of this License is held to be unenforceable, such - provision shall be reformed only to the extent necessary to make it - enforceable. Any law or regulation which provides that the language of a - contract shall be construed against the drafter shall not be used to construe - this License against a Contributor. - - -10. Versions of the License - -10.1. New Versions - - Mozilla Foundation is the license steward. Except as provided in Section - 10.3, no one other than the license steward has the right to modify or - publish new versions of this License. Each version will be given a - distinguishing version number. - -10.2. Effect of New Versions - - You may distribute the Covered Software under the terms of the version of - the License under which You originally received the Covered Software, or - under the terms of any subsequent version published by the license - steward. - -10.3. Modified Versions - - If you create software not governed by this License, and you want to - create a new license for such software, you may create and use a modified - version of this License if you rename the license and remove any - references to the name of the license steward (except to note that such - modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses - If You choose to distribute Source Code Form that is Incompatible With - Secondary Licenses under the terms of this version of the License, the - notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the - terms of the Mozilla Public License, v. - 2.0. If a copy of the MPL was not - distributed with this file, You can - obtain one at - http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular file, then -You may include the notice in a location (such as a LICENSE file in a relevant -directory) where a recipient would be likely to look for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - “Incompatible With Secondary Licenses” Notice - - This Source Code Form is “Incompatible - With Secondary Licenses”, as defined by - the Mozilla Public License, v. 2.0. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-go-multierror.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-go-multierror.txt deleted file mode 100644 index cdff15cd53..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-hashicorp-go-multierror.txt +++ /dev/null @@ -1,353 +0,0 @@ -Mozilla Public License, version 2.0 - -1. Definitions - -1.1. “Contributor” - - means each individual or legal entity that creates, contributes to the - creation of, or owns Covered Software. - -1.2. “Contributor Version” - - means the combination of the Contributions of others (if any) used by a - Contributor and that particular Contributor’s Contribution. - -1.3. “Contribution” - - means Covered Software of a particular Contributor. - -1.4. “Covered Software” - - means Source Code Form to which the initial Contributor has attached the - notice in Exhibit A, the Executable Form of such Source Code Form, and - Modifications of such Source Code Form, in each case including portions - thereof. - -1.5. “Incompatible With Secondary Licenses” - means - - a. that the initial Contributor has attached the notice described in - Exhibit B to the Covered Software; or - - b. that the Covered Software was made available under the terms of version - 1.1 or earlier of the License, but not also under the terms of a - Secondary License. - -1.6. “Executable Form” - - means any form of the work other than Source Code Form. - -1.7. “Larger Work” - - means a work that combines Covered Software with other material, in a separate - file or files, that is not Covered Software. - -1.8. “License” - - means this document. - -1.9. “Licensable” - - means having the right to grant, to the maximum extent possible, whether at the - time of the initial grant or subsequently, any and all of the rights conveyed by - this License. - -1.10. “Modifications” - - means any of the following: - - a. any file in Source Code Form that results from an addition to, deletion - from, or modification of the contents of Covered Software; or - - b. any new file in Source Code Form that contains any Covered Software. - -1.11. “Patent Claims” of a Contributor - - means any patent claim(s), including without limitation, method, process, - and apparatus claims, in any patent Licensable by such Contributor that - would be infringed, but for the grant of the License, by the making, - using, selling, offering for sale, having made, import, or transfer of - either its Contributions or its Contributor Version. - -1.12. “Secondary License” - - means either the GNU General Public License, Version 2.0, the GNU Lesser - General Public License, Version 2.1, the GNU Affero General Public - License, Version 3.0, or any later versions of those licenses. - -1.13. “Source Code Form” - - means the form of the work preferred for making modifications. - -1.14. “You” (or “Your”) - - means an individual or a legal entity exercising rights under this - License. For legal entities, “You” includes any entity that controls, is - controlled by, or is under common control with You. For purposes of this - definition, “control” means (a) the power, direct or indirect, to cause - the direction or management of such entity, whether by contract or - otherwise, or (b) ownership of more than fifty percent (50%) of the - outstanding shares or beneficial ownership of such entity. - - -2. License Grants and Conditions - -2.1. Grants - - Each Contributor hereby grants You a world-wide, royalty-free, - non-exclusive license: - - a. under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or as - part of a Larger Work; and - - b. under Patent Claims of such Contributor to make, use, sell, offer for - sale, have made, import, and otherwise transfer either its Contributions - or its Contributor Version. - -2.2. Effective Date - - The licenses granted in Section 2.1 with respect to any Contribution become - effective for each Contribution on the date the Contributor first distributes - such Contribution. - -2.3. Limitations on Grant Scope - - The licenses granted in this Section 2 are the only rights granted under this - License. No additional rights or licenses will be implied from the distribution - or licensing of Covered Software under this License. Notwithstanding Section - 2.1(b) above, no patent license is granted by a Contributor: - - a. for any code that a Contributor has removed from Covered Software; or - - b. for infringements caused by: (i) Your and any other third party’s - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - - c. under Patent Claims infringed by Covered Software in the absence of its - Contributions. - - This License does not grant any rights in the trademarks, service marks, or - logos of any Contributor (except as may be necessary to comply with the - notice requirements in Section 3.4). - -2.4. Subsequent Licenses - - No Contributor makes additional grants as a result of Your choice to - distribute the Covered Software under a subsequent version of this License - (see Section 10.2) or under the terms of a Secondary License (if permitted - under the terms of Section 3.3). - -2.5. Representation - - Each Contributor represents that the Contributor believes its Contributions - are its original creation(s) or it has sufficient rights to grant the - rights to its Contributions conveyed by this License. - -2.6. Fair Use - - This License is not intended to limit any rights You have under applicable - copyright doctrines of fair use, fair dealing, or other equivalents. - -2.7. Conditions - - Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in - Section 2.1. - - -3. Responsibilities - -3.1. Distribution of Source Form - - All distribution of Covered Software in Source Code Form, including any - Modifications that You create or to which You contribute, must be under the - terms of this License. You must inform recipients that the Source Code Form - of the Covered Software is governed by the terms of this License, and how - they can obtain a copy of this License. You may not attempt to alter or - restrict the recipients’ rights in the Source Code Form. - -3.2. Distribution of Executable Form - - If You distribute Covered Software in Executable Form then: - - a. such Covered Software must also be made available in Source Code Form, - as described in Section 3.1, and You must inform recipients of the - Executable Form how they can obtain a copy of such Source Code Form by - reasonable means in a timely manner, at a charge no more than the cost - of distribution to the recipient; and - - b. You may distribute such Executable Form under the terms of this License, - or sublicense it under different terms, provided that the license for - the Executable Form does not attempt to limit or alter the recipients’ - rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - - You may create and distribute a Larger Work under terms of Your choice, - provided that You also comply with the requirements of this License for the - Covered Software. If the Larger Work is a combination of Covered Software - with a work governed by one or more Secondary Licenses, and the Covered - Software is not Incompatible With Secondary Licenses, this License permits - You to additionally distribute such Covered Software under the terms of - such Secondary License(s), so that the recipient of the Larger Work may, at - their option, further distribute the Covered Software under the terms of - either this License or such Secondary License(s). - -3.4. Notices - - You may not remove or alter the substance of any license notices (including - copyright notices, patent notices, disclaimers of warranty, or limitations - of liability) contained within the Source Code Form of the Covered - Software, except that You may alter any license notices to the extent - required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - - You may choose to offer, and to charge a fee for, warranty, support, - indemnity or liability obligations to one or more recipients of Covered - Software. However, You may do so only on Your own behalf, and not on behalf - of any Contributor. You must make it absolutely clear that any such - warranty, support, indemnity, or liability obligation is offered by You - alone, and You hereby agree to indemnify every Contributor for any - liability incurred by such Contributor as a result of warranty, support, - indemnity or liability terms You offer. You may include additional - disclaimers of warranty and limitations of liability specific to any - jurisdiction. - -4. Inability to Comply Due to Statute or Regulation - - If it is impossible for You to comply with any of the terms of this License - with respect to some or all of the Covered Software due to statute, judicial - order, or regulation then You must: (a) comply with the terms of this License - to the maximum extent possible; and (b) describe the limitations and the code - they affect. Such description must be placed in a text file included with all - distributions of the Covered Software under this License. Except to the - extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to - understand it. - -5. Termination - -5.1. The rights granted under this License will terminate automatically if You - fail to comply with any of its terms. However, if You become compliant, - then the rights granted under this License from a particular Contributor - are reinstated (a) provisionally, unless and until such Contributor - explicitly and finally terminates Your grants, and (b) on an ongoing basis, - if such Contributor fails to notify You of the non-compliance by some - reasonable means prior to 60 days after You have come back into compliance. - Moreover, Your grants from a particular Contributor are reinstated on an - ongoing basis if such Contributor notifies You of the non-compliance by - some reasonable means, this is the first time You have received notice of - non-compliance with this License from such Contributor, and You become - compliant prior to 30 days after Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent - infringement claim (excluding declaratory judgment actions, counter-claims, - and cross-claims) alleging that a Contributor Version directly or - indirectly infringes any patent, then the rights granted to You by any and - all Contributors for the Covered Software under Section 2.1 of this License - shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user - license agreements (excluding distributors and resellers) which have been - validly granted by You or Your distributors under this License prior to - termination shall survive termination. - -6. Disclaimer of Warranty - - Covered Software is provided under this License on an “as is” basis, without - warranty of any kind, either expressed, implied, or statutory, including, - without limitation, warranties that the Covered Software is free of defects, - merchantable, fit for a particular purpose or non-infringing. The entire - risk as to the quality and performance of the Covered Software is with You. - Should any Covered Software prove defective in any respect, You (not any - Contributor) assume the cost of any necessary servicing, repair, or - correction. This disclaimer of warranty constitutes an essential part of this - License. No use of any Covered Software is authorized under this License - except under this disclaimer. - -7. Limitation of Liability - - Under no circumstances and under no legal theory, whether tort (including - negligence), contract, or otherwise, shall any Contributor, or anyone who - distributes Covered Software as permitted above, be liable to You for any - direct, indirect, special, incidental, or consequential damages of any - character including, without limitation, damages for lost profits, loss of - goodwill, work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses, even if such party shall have been - informed of the possibility of such damages. This limitation of liability - shall not apply to liability for death or personal injury resulting from such - party’s negligence to the extent applicable law prohibits such limitation. - Some jurisdictions do not allow the exclusion or limitation of incidental or - consequential damages, so this exclusion and limitation may not apply to You. - -8. Litigation - - Any litigation relating to this License may be brought only in the courts of - a jurisdiction where the defendant maintains its principal place of business - and such litigation shall be governed by laws of that jurisdiction, without - reference to its conflict-of-law provisions. Nothing in this Section shall - prevent a party’s ability to bring cross-claims or counter-claims. - -9. Miscellaneous - - This License represents the complete agreement concerning the subject matter - hereof. If any provision of this License is held to be unenforceable, such - provision shall be reformed only to the extent necessary to make it - enforceable. Any law or regulation which provides that the language of a - contract shall be construed against the drafter shall not be used to construe - this License against a Contributor. - - -10. Versions of the License - -10.1. New Versions - - Mozilla Foundation is the license steward. Except as provided in Section - 10.3, no one other than the license steward has the right to modify or - publish new versions of this License. Each version will be given a - distinguishing version number. - -10.2. Effect of New Versions - - You may distribute the Covered Software under the terms of the version of - the License under which You originally received the Covered Software, or - under the terms of any subsequent version published by the license - steward. - -10.3. Modified Versions - - If you create software not governed by this License, and you want to - create a new license for such software, you may create and use a modified - version of this License if you rename the license and remove any - references to the name of the license steward (except to note that such - modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses - If You choose to distribute Source Code Form that is Incompatible With - Secondary Licenses under the terms of this version of the License, the - notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the - terms of the Mozilla Public License, v. - 2.0. If a copy of the MPL was not - distributed with this file, You can - obtain one at - http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular file, then -You may include the notice in a location (such as a LICENSE file in a relevant -directory) where a recipient would be likely to look for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - “Incompatible With Secondary Licenses” Notice - - This Source Code Form is “Incompatible - With Secondary Licenses”, as defined by - the Mozilla Public License, v. 2.0. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-inconshreveable-mousetrap.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-inconshreveable-mousetrap.txt deleted file mode 100644 index 01109bbff3..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-inconshreveable-mousetrap.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2022 Alan Shreve (@inconshreveable) - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-itchyny-gojq.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-itchyny-gojq.txt deleted file mode 100644 index 13fd2944ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-itchyny-gojq.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2019-2022 itchyny - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-inflection.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-inflection.txt deleted file mode 100644 index f39e7202f4..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-inflection.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 - Jinzhu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-now.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-now.txt deleted file mode 100644 index 9c8526e909..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-jinzhu-now.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-NOW Jinzhu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-jmespath-go-jmespath.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-jmespath-go-jmespath.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-jmespath-go-jmespath.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt deleted file mode 100644 index c7684dea88..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 json-iterator - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-pty.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-pty.txt deleted file mode 100644 index 35934dbf5e..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-pty.txt +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2019 Keith Rarick - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, -sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall -be included in all copies or substantial portions of the -Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS -OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-text.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-text.txt deleted file mode 100644 index 2e9e336a3f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-kr-text.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2012 Keith Rarick - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-leodido-go-urn.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-leodido-go-urn.txt deleted file mode 100644 index ed0af7b31b..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-leodido-go-urn.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Leonardo Di Donato - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-lestrrat-go-strftime.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-lestrrat-go-strftime.txt deleted file mode 100644 index 4e95cc3a2d..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-lestrrat-go-strftime.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 lestrrat - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-liyue201-gostl.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-liyue201-gostl.txt deleted file mode 100644 index ee25ffddd2..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-liyue201-gostl.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 stirlingx - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-mattn-go-isatty.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-mattn-go-isatty.txt deleted file mode 100644 index d609ea5ebc..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-mattn-go-isatty.txt +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) Yasuhiro MATSUMOTO - -MIT License (Expat) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-matttproud-golang_protobuf_extensions.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-matttproud-golang_protobuf_extensions.txt deleted file mode 100644 index 9c8f3ea087..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-matttproud-golang_protobuf_extensions.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-mitchellh-mapstructure.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-mitchellh-mapstructure.txt deleted file mode 100644 index 09fffd383e..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-mitchellh-mapstructure.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Mitchell Hashimoto - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-concurrent.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-concurrent.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-concurrent.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-reflect2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-reflect2.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-modern-go-reflect2.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-nacos-group-nacos-sdk-go-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-nacos-group-nacos-sdk-go-v2.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-nacos-group-nacos-sdk-go-v2.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-niemeyer-pretty.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-niemeyer-pretty.txt deleted file mode 100644 index 2e9e336a3f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-niemeyer-pretty.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2012 Keith Rarick - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt deleted file mode 100644 index e257a9ebd6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Andy Pan - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-pelletier-go-toml-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-pelletier-go-toml-v2.txt deleted file mode 100644 index 5b769ab525..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-pelletier-go-toml-v2.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-pkg-errors.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-pkg-errors.txt deleted file mode 100644 index 1906e68097..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-pkg-errors.txt +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Dave Cheney -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-pmezard-go-difflib.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-pmezard-go-difflib.txt deleted file mode 100644 index 485be13c67..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-pmezard-go-difflib.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2013, Patrick Mezard -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - The names of its contributors may not be used to endorse or promote -products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_golang.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_golang.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_golang.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_model.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_model.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-client_model.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-common.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-common.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-common.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-procfs.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-procfs.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-prometheus-procfs.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-reactivex-rxgo-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-reactivex-rxgo-v2.txt deleted file mode 100644 index 1c00bfab3f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-reactivex-rxgo-v2.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Joe Chasinga - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-rogpeppe-fastuuid.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-rogpeppe-fastuuid.txt deleted file mode 100644 index f84b5232e7..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-rogpeppe-fastuuid.txt +++ /dev/null @@ -1,26 +0,0 @@ -Copyright © 2014, Roger Peppe -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of this project nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-serverlessworkflow-sdk-go-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-serverlessworkflow-sdk-go-v2.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-serverlessworkflow-sdk-go-v2.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt deleted file mode 100644 index 049a827f3f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright 2015 Sony Corporation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-spaolacci-murmur3.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-spaolacci-murmur3.txt deleted file mode 100644 index 8eeb61967a..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-spaolacci-murmur3.txt +++ /dev/null @@ -1,24 +0,0 @@ -Copyright 2013, Sébastien Paolacci. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the library nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-spf13-pflag.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-spf13-pflag.txt deleted file mode 100644 index e33bc4c751..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-spf13-pflag.txt +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2012 Alex Ogier. All rights reserved. -Copyright (c) 2012 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-objx.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-objx.txt deleted file mode 100644 index 5b30a3704f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-objx.txt +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License - -Copyright (c) 2014 Stretchr, Inc. -Copyright (c) 2017-2018 objx contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt deleted file mode 100644 index 0be77a0bef..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-files.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-files.txt deleted file mode 100644 index 64ef3d0d74..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-files.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Swaggo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-gin-swagger.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-gin-swagger.txt deleted file mode 100644 index 8c16ff84f0..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-gin-swagger.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Swaggo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-swag.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-swag.txt deleted file mode 100644 index 99436a322f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-swaggo-swag.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Eason Lin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-ugorji-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-ugorji-go.txt deleted file mode 100644 index 37c671078f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-ugorji-go.txt +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012-2020 Ugorji Nwoke. -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-unrolled-secure.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-unrolled-secure.txt deleted file mode 100644 index c1b34f99ef..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-unrolled-secure.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Cory Jacobsen - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-urfave-cli-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-urfave-cli-v2.txt deleted file mode 100644 index 55c42a9e53..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-urfave-cli-v2.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 urfave/cli maintainers - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-valyala-bytebufferpool.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-valyala-bytebufferpool.txt deleted file mode 100644 index 8d25e9a147..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-valyala-bytebufferpool.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Aliaksandr Valialkin, VertaMedia - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonpointer.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonpointer.txt deleted file mode 100644 index c5cec753c0..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonpointer.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2015 xeipuuv - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonreference.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonreference.txt deleted file mode 100644 index c5cec753c0..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonreference.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2015 xeipuuv - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonschema.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonschema.txt deleted file mode 100644 index c5cec753c0..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-github.com-xeipuuv-gojsonschema.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2015 xeipuuv - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.opentelemetry.io-proto-otlp.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.opentelemetry.io-proto-otlp.txt deleted file mode 100644 index 30f8920b6a..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-go.opentelemetry.io-proto-otlp.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt deleted file mode 100644 index 721b703b60..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2016 Uber Technologies, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-dig.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-dig.txt deleted file mode 100644 index 300ce9b9e7..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-dig.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2017-2018 Uber Technologies, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-fx.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-fx.txt deleted file mode 100644 index 300ce9b9e7..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-fx.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2017-2018 Uber Technologies, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-multierr.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-multierr.txt deleted file mode 100644 index 5bfe7bb6d9..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-multierr.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2017-2021 Uber Technologies, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt deleted file mode 100644 index 2cf1638263..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2016-2017 Uber Technologies, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-crypto.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-crypto.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-crypto.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-exp.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-exp.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-exp.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-lint.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-lint.txt deleted file mode 100644 index 65d761bc9f..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-lint.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2013 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-net.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-net.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-net.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-oauth2.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-oauth2.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-oauth2.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sync.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sync.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sync.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sys.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sys.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-sys.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-text.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-text.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-text.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-time.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-time.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-time.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-tools.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-tools.txt deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-tools.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-xerrors.txt b/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-xerrors.txt deleted file mode 100644 index e4a47e17f1..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-golang.org-x-xerrors.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2019 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-appengine.txt b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-appengine.txt deleted file mode 100644 index f49a4e16e6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-appengine.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-genproto.txt b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-genproto.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-genproto.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-check.v1.txt b/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-check.v1.txt deleted file mode 100644 index eea77e192a..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-check.v1.txt +++ /dev/null @@ -1,25 +0,0 @@ -Gocheck - A rich testing framework for Go - -Copyright (c) 2010-2013 Gustavo Niemeyer - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-ini.v1.txt b/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-ini.v1.txt deleted file mode 100644 index 3f78a807f6..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-ini.v1.txt +++ /dev/null @@ -1,191 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright -owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities -that control, are controlled by, or are under common control with that entity. -For the purposes of this definition, "control" means (i) the power, direct or -indirect, to cause the direction or management of such entity, whether by -contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including -but not limited to software source code, documentation source, and configuration -files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object code, -generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made -available under the License, as indicated by a copyright notice that is included -in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative Works -shall not include works that remain separable from, or merely link (or bind by -name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version -of the Work and any modifications or additions to that Work or Derivative Works -thereof, that is intentionally submitted to Licensor for inclusion in the Work -by the copyright owner or by an individual or Legal Entity authorized to submit -on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, and -issue tracking systems that are managed by, or on behalf of, the Licensor for -the purpose of discussing and improving the Work, but excluding communication -that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the Work and such -Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable (except as stated in this section) patent license to make, have -made, use, offer to sell, sell, import, and otherwise transfer the Work, where -such license applies only to those patent claims licensable by such Contributor -that are necessarily infringed by their Contribution(s) alone or by combination -of their Contribution(s) with the Work to which such Contribution(s) was -submitted. If You institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work or a -Contribution incorporated within the Work constitutes direct or contributory -patent infringement, then any patent licenses granted to You under this License -for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof -in any medium, with or without modifications, and in Source or Object form, -provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of -this License; and -You must cause any modified files to carry prominent notices stating that You -changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, -all copyright, patent, trademark, and attribution notices from the Source form -of the Work, excluding those notices that do not pertain to any part of the -Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any -Derivative Works that You distribute must include a readable copy of the -attribution notices contained within such NOTICE file, excluding those notices -that do not pertain to any part of the Derivative Works, in at least one of the -following places: within a NOTICE text file distributed as part of the -Derivative Works; within the Source form or documentation, if provided along -with the Derivative Works; or, within a display generated by the Derivative -Works, if and wherever such third-party notices normally appear. The contents of -the NOTICE file are for informational purposes only and do not modify the -License. You may add Your own attribution notices within Derivative Works that -You distribute, alongside or as an addendum to the NOTICE text from the Work, -provided that such additional attribution notices cannot be construed as -modifying the License. -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a whole, -provided Your use, reproduction, and distribution of the Work otherwise complies -with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted -for inclusion in the Work by You to the Licensor shall be under the terms and -conditions of this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify the terms of -any separate license agreement you may have executed with Licensor regarding -such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, -service marks, or product names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the -Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, -including, without limitation, any warranties or conditions of TITLE, -NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are -solely responsible for determining the appropriateness of using or -redistributing the Work and assume any risks associated with Your exercise of -permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), -contract, or otherwise, unless required by applicable law (such as deliberate -and grossly negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, incidental, -or consequential damages of any character arising as a result of this License or -out of the use or inability to use the Work (including but not limited to -damages for loss of goodwill, work stoppage, computer failure or malfunction, or -any and all other commercial damages or losses), even if such Contributor has -been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to -offer, and charge a fee for, acceptance of support, warranty, indemnity, or -other liability obligations and/or rights consistent with this License. However, -in accepting such obligations, You may act only on Your own behalf and on Your -sole responsibility, not on behalf of any other Contributor, and only if You -agree to indemnify, defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason of your -accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work - -To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be -enclosed in the appropriate comment syntax for the file format. We also -recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification within -third-party archives. - - Copyright 2014 Unknwon - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-natefinch-lumberjack.v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-natefinch-lumberjack.v2.txt deleted file mode 100644 index 8d6bb4a46c..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-natefinch-lumberjack.v2.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Nate Finch - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v2.txt deleted file mode 100644 index 9c8f3ea087..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v2.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v3.txt b/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v3.txt deleted file mode 100644 index ce5fc85d7b..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-gopkg.in-yaml.v3.txt +++ /dev/null @@ -1,50 +0,0 @@ - -This project is covered by two different licenses: MIT and Apache. - -#### MIT License #### - -The following files were ported to Go from C files of libyaml, and thus -are still covered by their original MIT license, with the additional -copyright staring in 2011 when the project was ported over: - - apic.go emitterc.go parserc.go readerc.go scannerc.go - writerc.go yamlh.go yamlprivateh.go - -Copyright (c) 2006-2010 Kirill Simonov -Copyright (c) 2006-2011 Kirill Simonov - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -### Apache License ### - -All the remaining project files are covered by the Apache license: - -Copyright (c) 2011-2019 Canonical Ltd - -Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-gorm.io-driver-mysql.txt b/tools/third-party-licenses/licenses/go/LICENSE-gorm.io-driver-mysql.txt deleted file mode 100644 index 9c8526e909..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-gorm.io-driver-mysql.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-NOW Jinzhu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-gorm.io-gorm.txt b/tools/third-party-licenses/licenses/go/LICENSE-gorm.io-gorm.txt deleted file mode 100644 index 9c8526e909..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-gorm.io-gorm.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-NOW Jinzhu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-honnef.co-go-tools.txt b/tools/third-party-licenses/licenses/go/LICENSE-honnef.co-go-tools.txt deleted file mode 100644 index 0dd5c21067..0000000000 --- a/tools/third-party-licenses/licenses/go/LICENSE-honnef.co-go-tools.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2016 Dominik Honnef - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file From 092736fa87113aa972a4d9cfb1e13dd99d48400e Mon Sep 17 00:00:00 2001 From: HattoriHenzo Date: Fri, 7 Jul 2023 08:35:23 -0400 Subject: [PATCH 040/333] Minor refactoring --- .../client/CallbackServiceGrpc.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java index 9436002a9a..ddb2e650c2 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc.java @@ -43,7 +43,7 @@ private CallbackServiceGrpc() { // Static method descriptors that strictly reflect the proto. @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") public static final io.grpc.MethodDescriptor METHOD_ON_TOPIC_EVENT = + CloudEvent> METHOD_ON_TOPIC_EVENT = io.grpc.MethodDescriptor.newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName( @@ -87,8 +87,8 @@ public static abstract class CallbackServiceImplBase implements io.grpc.Bindable * Subscribes events * */ - public void onTopicEvent(org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request, - io.grpc.stub.StreamObserver responseObserver) { + public void onTopicEvent(CloudEvent request, + io.grpc.stub.StreamObserver responseObserver) { asyncUnimplementedUnaryCall(METHOD_ON_TOPIC_EVENT, responseObserver); } @@ -99,8 +99,8 @@ public final io.grpc.ServerServiceDefinition bindService() { METHOD_ON_TOPIC_EVENT, asyncUnaryCall( new MethodHandlers< - org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent, - org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent>( + CloudEvent, + CloudEvent>( this, METHODID_ON_TOPIC_EVENT))) .build(); } @@ -131,8 +131,8 @@ protected CallbackServiceStub build(io.grpc.Channel channel, * Subscribes events * */ - public void onTopicEvent(org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request, - io.grpc.stub.StreamObserver responseObserver) { + public void onTopicEvent(CloudEvent request, + io.grpc.stub.StreamObserver responseObserver) { asyncUnaryCall( getChannel().newCall(METHOD_ON_TOPIC_EVENT, getCallOptions()), request, responseObserver); } @@ -163,8 +163,8 @@ protected CallbackServiceBlockingStub build(io.grpc.Channel channel, * Subscribes events * */ - public org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent onTopicEvent( - org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request) { + public CloudEvent onTopicEvent( + CloudEvent request) { return blockingUnaryCall( getChannel(), METHOD_ON_TOPIC_EVENT, getCallOptions(), request); } @@ -195,8 +195,8 @@ protected CallbackServiceFutureStub build(io.grpc.Channel channel, * Subscribes events * */ - public com.google.common.util.concurrent.ListenableFuture onTopicEvent( - org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent request) { + public com.google.common.util.concurrent.ListenableFuture onTopicEvent( + CloudEvent request) { return futureUnaryCall( getChannel().newCall(METHOD_ON_TOPIC_EVENT, getCallOptions()), request); } @@ -223,8 +223,8 @@ private static final class MethodHandlers implements public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { switch (methodId) { case METHODID_ON_TOPIC_EVENT: - serviceImpl.onTopicEvent((org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent) request, - (io.grpc.stub.StreamObserver) responseObserver); + serviceImpl.onTopicEvent((CloudEvent) request, + (io.grpc.stub.StreamObserver) responseObserver); break; default: throw new AssertionError(); From fb27010ebbba7fb1a8cd3ed5544a858baca5a7ab Mon Sep 17 00:00:00 2001 From: Harshitha Sudhakar <111514477+harshithasudhakar@users.noreply.github.com> Date: Mon, 10 Jul 2023 14:26:04 +0530 Subject: [PATCH 041/333] [ISSUE#4198]Do some code optimization.[GrpcRetryer] (#4205) * Update GrpcRetryer.java * Update GrpcRetryer.java Fixed Checkstyle Issues * Update GrpcRetryer.java --- .../runtime/core/protocol/grpc/retry/GrpcRetryer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/retry/GrpcRetryer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/retry/GrpcRetryer.java index 4c5cea1036..6de4eee588 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/retry/GrpcRetryer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/retry/GrpcRetryer.java @@ -62,7 +62,7 @@ public void init() { dispatcher = new Thread(() -> { try { - DelayRetryable retryObj = null; + DelayRetryable retryObj; while (!Thread.currentThread().isInterrupted() && (retryObj = failed.take()) != null) { final DelayRetryable delayRetryable = retryObj; @@ -78,6 +78,9 @@ public void init() { }); } } catch (Exception e) { + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } log.error("grpc-retry-dispatcher error!", e); } }, "grpc-retry-dispatcher"); From 1497fd3310170fc8b2574c815544221d45ce76b2 Mon Sep 17 00:00:00 2001 From: Pil0tXia <41445332+Pil0tXia@users.noreply.github.com> Date: Mon, 10 Jul 2023 16:56:30 +0800 Subject: [PATCH 042/333] [ISSUE #4185] Correct eventmesh.properties comment grammar mistake (#4187) * doc: Correct eventmesh.properties comment grammar mistake * doc: Correct README.md grammar sequence mistake --- eventmesh-connectors/README.md | 2 +- eventmesh-runtime/conf/eventmesh.properties | 2 +- .../src/test/resources/eventmesh.properties | 2 +- .../src/test/resources/eventmesh.properties | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eventmesh-connectors/README.md b/eventmesh-connectors/README.md index 1cba277ea9..a52d5dd73e 100644 --- a/eventmesh-connectors/README.md +++ b/eventmesh-connectors/README.md @@ -4,7 +4,7 @@ A connector is a bridge that interacts with a specific external service or underlying data source (e.g., Databases) on behalf of user applications. A connector is either a Source or a Sink. ## Source -A source connector obtains data from an underlying data producer and delivers it to targets, after original data has been transformed into CloudEvents. It doesn't limit the way how a source retrieves data. (e.g., A source may pull data from a message queue or act as an HTTP server waiting for data sent to it). +A source connector obtains data from an underlying data producer, and delivers it to targets after original data has been transformed into CloudEvents. It doesn't limit the way how a source retrieves data. (e.g., A source may pull data from a message queue or act as an HTTP server waiting for data sent to it). ## Sink A sink connector receives CloudEvents and does some specific business logics. (e.g., A MySQL Sink extracts useful data from CloudEvents and writes them to a MySQL database). diff --git a/eventmesh-runtime/conf/eventmesh.properties b/eventmesh-runtime/conf/eventmesh.properties index 4e5cbd54b1..df272a01a0 100644 --- a/eventmesh-runtime/conf/eventmesh.properties +++ b/eventmesh-runtime/conf/eventmesh.properties @@ -115,5 +115,5 @@ eventMesh.webHook.fileMode.filePath= #{eventMeshHome}/webhook # Nacos storage mode, and the configuration naming rule is eventmesh webHook. nacosMode. {nacos native configuration key} please see the specific configuration [nacos github api](https://github.com/alibaba/nacos/blob/develop/api/src/main/java/com/alibaba/nacos/api/SystemPropertyKeyConst.java) ## Address of Nacos eventMesh.webHook.nacosMode.serverAddr=127.0.0.1:8848 -# Webhook eventcloud sending mode. And eventmesh connector. plugin. The type configuration is the same +# Webhook CloudEvent sending mode. This property is the same as the eventMesh.storage.plugin.type configuration. eventMesh.webHook.producer.storage=standalone diff --git a/eventmesh-webhook/eventmesh-webhook-admin/src/test/resources/eventmesh.properties b/eventmesh-webhook/eventmesh-webhook-admin/src/test/resources/eventmesh.properties index cbf4371d87..b808436f97 100644 --- a/eventmesh-webhook/eventmesh-webhook-admin/src/test/resources/eventmesh.properties +++ b/eventmesh-webhook/eventmesh-webhook-admin/src/test/resources/eventmesh.properties @@ -24,5 +24,5 @@ eventMesh.webHook.fileMode.filePath=. # Nacos storage mode, and the configuration naming rule is eventmesh webHook. nacosMode. {nacos native configuration key} please see the specific configuration [nacos github api](https://github.com/alibaba/nacos/blob/develop/api/src/main/java/com/alibaba/nacos/api/SystemPropertyKeyConst.java) ## Address of Nacos eventMesh.webHook.nacosMode.serverAddr=127.0.0.1:8848 -# Webhook eventcloud sending mode. And eventmesh storage. plugin. The type configuration is the same +# Webhook CloudEvent sending mode. This property is the same as the eventMesh.storage.plugin.type configuration. eventMesh.webHook.producer.storage=standalone diff --git a/eventmesh-webhook/eventmesh-webhook-receive/src/test/resources/eventmesh.properties b/eventmesh-webhook/eventmesh-webhook-receive/src/test/resources/eventmesh.properties index 90e359d581..bd700c26c9 100644 --- a/eventmesh-webhook/eventmesh-webhook-receive/src/test/resources/eventmesh.properties +++ b/eventmesh-webhook/eventmesh-webhook-receive/src/test/resources/eventmesh.properties @@ -26,5 +26,5 @@ eventMesh.webHook.fileMode.filePath=. # Nacos storage mode, and the configuration naming rule is eventmesh webHook. nacosMode. {nacos native configuration key} please see the specific configuration [nacos github api](https://github.com/alibaba/nacos/blob/develop/api/src/main/java/com/alibaba/nacos/api/SystemPropertyKeyConst.java) ## Address of Nacos eventMesh.webHook.nacosMode.serverAddr=127.0.0.1:8848 -# Webhook eventcloud sending mode. And eventmesh storage. plugin. The type configuration is the same +# Webhook CloudEvent sending mode. This property is the same as the eventMesh.storage.plugin.type configuration. eventMesh.webHook.producer.storage=standalone From b42f7b4082b2ed1cfe5f3de01bb1df46dd09923e Mon Sep 17 00:00:00 2001 From: ruhshan Date: Mon, 10 Jul 2023 14:57:39 +0600 Subject: [PATCH 043/333] [ISSUE # 4137]Replace printStackTrace with error logging in RocketMQSinkConnector (#4188) --- .../rocketmq/sink/connector/RocketMQSinkConnector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java index 2ac0a30521..f33e604e2f 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java @@ -78,7 +78,7 @@ public void put(List sinkRecords) { try { SendResult sendResult = producer.send(message); } catch (Exception e) { - e.printStackTrace(); + log.error("[RocketMQSinkConnector] sendResult has error : ", e); } } } From 42db0655acf9ea2764575c3a73488ecd859fc415 Mon Sep 17 00:00:00 2001 From: ruhshan Date: Mon, 10 Jul 2023 14:57:55 +0600 Subject: [PATCH 044/333] [ISSUE #4101]Correct sequence for expected and actual arguments in assertEquals (#4189) --- .../storage/knative/config/ClientConfigurationTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eventmesh-storage-plugin/eventmesh-storage-knative/src/test/java/org/apache/eventmesh/storage/knative/config/ClientConfigurationTest.java b/eventmesh-storage-plugin/eventmesh-storage-knative/src/test/java/org/apache/eventmesh/storage/knative/config/ClientConfigurationTest.java index 9ff668a1c0..334b9b4de9 100644 --- a/eventmesh-storage-plugin/eventmesh-storage-knative/src/test/java/org/apache/eventmesh/storage/knative/config/ClientConfigurationTest.java +++ b/eventmesh-storage-plugin/eventmesh-storage-knative/src/test/java/org/apache/eventmesh/storage/knative/config/ClientConfigurationTest.java @@ -45,7 +45,7 @@ public void getConfigWhenKnativeProducerInit() { } private void assertConfig(ClientConfiguration config) { - Assert.assertEquals(config.getEmurl(), "127.0.0.1"); - Assert.assertEquals(config.getServiceAddr(), "cloudevents-player.default.127.0.0.1.sslip.io"); + Assert.assertEquals("127.0.0.1", config.getEmurl()); + Assert.assertEquals("cloudevents-player.default.127.0.0.1.sslip.io", config.getServiceAddr()); } } \ No newline at end of file From abb227183925c25e3bbd8ed3678ccf00fa70707b Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 16:30:24 +0800 Subject: [PATCH 045/333] Fix the port occupation that caused the startup fail, and the process did not exit --- .../org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java | 1 + .../org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java | 1 + 2 files changed, 2 insertions(+) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java index d74b69a3ac..42b1f6c4d9 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java @@ -227,6 +227,7 @@ public void start() throws Exception { } catch (Exception ex) { log.error("HTTPServer shutdown error!", ex); } + System.exit(-1); } }; diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java index 67b56ed6df..4b5c744296 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshTCPServer.java @@ -195,6 +195,7 @@ public void initChannel(final Channel ch) throws Exception { } catch (Exception ex) { log.error("EventMeshTCPServer RemotingServer shutdown Err!", ex); } + System.exit(-1); } }; From 8fcde9c386180c2b8af747ee4af8234c4edb10bb Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 16:31:24 +0800 Subject: [PATCH 046/333] Fix concurrent modification exception --- .../metrics/api/model/HttpSummaryMetrics.java | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java b/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java index 34de770820..adaf9ff5e2 100644 --- a/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java +++ b/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java @@ -22,6 +22,8 @@ import java.util.concurrent.DelayQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; import lombok.extern.slf4j.Slf4j; @@ -106,6 +108,7 @@ public class HttpSummaryMetrics implements Metric { private final DelayQueue httpFailedQueue; + private Lock lock = new ReentrantLock(); public HttpSummaryMetrics(final ThreadPoolExecutor batchMsgExecutor, final ThreadPoolExecutor sendMsgExecutor, @@ -139,20 +142,37 @@ public void recordHTTPDiscard() { } public void snapshotHTTPTPS() { - Integer tps = httpRequestPerSecond.intValue(); - httpRequestTPSSnapshots.add(tps); - httpRequestPerSecond.set(0); - if (httpRequestTPSSnapshots.size() > STATIC_PERIOD / 1000) { - httpRequestTPSSnapshots.removeFirst(); + try{ + lock.lock(); + Integer tps = httpRequestPerSecond.intValue(); + httpRequestTPSSnapshots.add(tps); + httpRequestPerSecond.set(0); + if (httpRequestTPSSnapshots.size() > STATIC_PERIOD / 1000) { + httpRequestTPSSnapshots.removeFirst(); + } + }finally { + lock.unlock(); } } public float maxHTTPTPS() { - return Collections.max(httpRequestTPSSnapshots); + try{ + lock.lock(); + float tps = Collections.max(httpRequestTPSSnapshots); + return tps; + }finally { + lock.unlock(); + } } public float avgHTTPTPS() { - return avg(httpRequestTPSSnapshots); + try{ + lock.lock(); + float tps = avg(httpRequestTPSSnapshots); + return tps; + }finally { + lock.unlock(); + } } public void recordHTTPReqResTimeCost(long cost) { From 2a0fb98571f99912bcca17bc3af5c83d8cc45124 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 16:33:28 +0800 Subject: [PATCH 047/333] Set http request timeout --- .../core/protocol/http/push/HTTPClientPool.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/HTTPClientPool.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/HTTPClientPool.java index fde09ae800..df5ff036a4 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/HTTPClientPool.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/HTTPClientPool.java @@ -18,6 +18,7 @@ package org.apache.eventmesh.runtime.core.protocol.http.push; import org.apache.commons.collections4.CollectionUtils; +import org.apache.http.client.config.RequestConfig; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; @@ -60,6 +61,9 @@ public class HTTPClientPool { private static final int DEFAULT_MAX_TOTAL = 200; private static final int DEFAULT_IDLETIME_SECONDS = 30; + private static final int CONNECT_TIMEOUT = 5000; + private static final int SOCKET_TIMEOUT = 5000; + private transient PoolingHttpClientConnectionManager connectionManager; public HTTPClientPool(final int core) { @@ -115,7 +119,13 @@ public CloseableHttpClient getHttpClient(final int maxTotal, final int idleTimeI connectionManager.setMaxTotal(maxTotal); } + RequestConfig config = RequestConfig.custom() + .setConnectTimeout(CONNECT_TIMEOUT) + .setConnectionRequestTimeout(CONNECT_TIMEOUT) + .setSocketTimeout(SOCKET_TIMEOUT).build(); + return HttpClients.custom() + .setDefaultRequestConfig(config) .setConnectionManager(connectionManager) .setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy()) .evictIdleConnections(idleTimeInSeconds, TimeUnit.SECONDS) From fc3a09a4a858b5a8ce02e0c65b5b7c7a971d7f77 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 16:42:55 +0800 Subject: [PATCH 048/333] Authentication supports version number verification --- .../main/java/org/apache/eventmesh/runtime/acl/Acl.java | 1 + .../java/org/apache/eventmesh/api/acl/AclProperties.java | 7 +++++++ .../java/org/apache/eventmesh/api/acl/AclPropertyKeys.java | 1 + 3 files changed, 9 insertions(+) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/acl/Acl.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/acl/Acl.java index c2adcce873..13ed186c93 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/acl/Acl.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/acl/Acl.java @@ -196,6 +196,7 @@ private static AclProperties buildTcpAclProperties(String remoteAddr, UserAgent aclProperties.setPwd(userAgent.getPassword()); aclProperties.setSubsystem(userAgent.getSubsystem()); aclProperties.setRequestCode(requestCode); + aclProperties.setVersion(userAgent.getVersion()); if (StringUtils.isNotBlank(topic)) { aclProperties.setTopic(topic); } diff --git a/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclProperties.java b/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclProperties.java index 2338f05860..d340f12888 100644 --- a/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclProperties.java +++ b/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclProperties.java @@ -30,6 +30,7 @@ public class AclProperties { private Integer requestCode; private String requestURI; private String token; + private String version; private Map extendedFields = new ConcurrentHashMap<>(); public String getClientIp() { @@ -104,5 +105,11 @@ public Object getExtendedField(String key) { return extendedFields.get(key); } + public String getVersion() { + return version; + } + public void setVersion(String version) { + this.version = version; + } } diff --git a/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclPropertyKeys.java b/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclPropertyKeys.java index 7bf56f0c3c..606a91b949 100644 --- a/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclPropertyKeys.java +++ b/eventmesh-security-plugin/eventmesh-security-api/src/main/java/org/apache/eventmesh/api/acl/AclPropertyKeys.java @@ -26,4 +26,5 @@ public class AclPropertyKeys { public static final String TOPIC = "topic"; public static final String REQUEST_CODE = "requestCode"; public static final String REQUEST_URI = "requestURI"; + public static final String CLIENT_VERSION = "clientVersion"; } From 5049542a03a77ca7834c119152f8f1b2807a812e Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 19:50:27 +0800 Subject: [PATCH 049/333] log optimization --- .../protocol/http/consumer/EventMeshConsumer.java | 10 +++++----- .../protocol/http/consumer/HandleMsgContext.java | 10 +++++++--- .../protocol/http/push/AsyncHTTPPushRequest.java | 12 ++++++------ 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java index 31fd31b598..664650c4e7 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java @@ -130,15 +130,14 @@ public synchronized void init() throws Exception { EventMeshAsyncConsumeContext eventMeshAsyncConsumeContext = (EventMeshAsyncConsumeContext) context; if (currentTopicConfig == null) { - log.error("no topicConfig found, consumerGroup:{} topic:{}", - consumerGroupConf.getConsumerGroup(), topic); try { sendMessageBack(event, uniqueId, bizSeqNo); - eventMeshAsyncConsumeContext.commit(EventMeshAction.CommitMessage); - return; + log.warn("no ConsumerGroupTopicConf found, sendMessageBack success, consumerGroup:{}, topic:{}, bizSeqNo={}, uniqueId={}", consumerGroupConf.getConsumerGroup(), topic, bizSeqNo, uniqueId); } catch (Exception ex) { - //ignore + log.warn("sendMessageBack fail, consumerGroup:{}, topic:{}, bizSeqNo={}, uniqueId={}", consumerGroupConf.getConsumerGroup(), topic, bizSeqNo, uniqueId, ex); } + eventMeshAsyncConsumeContext.commit(EventMeshAction.CommitMessage); + return; } SubscriptionItem subscriptionItem = @@ -157,6 +156,7 @@ public synchronized void init() throws Exception { sendMessageBack(event, uniqueId, bizSeqNo); } catch (Exception e) { //ignore + log.warn("sendMessageBack fail,topic:{}, bizSeqNo={}, uniqueId={}", topic, bizSeqNo, uniqueId, e); } eventMeshAsyncConsumeContext.commit(EventMeshAction.CommitMessage); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java index e2da611851..6afa0f7696 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java @@ -38,9 +38,14 @@ import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + @Slf4j public class HandleMsgContext { + public static final Logger MESSAGE_LOGGER = LoggerFactory.getLogger(EventMeshConstants.MESSAGE); + private String msgRandomNo; private String consumerGroup; @@ -205,9 +210,8 @@ public EventMeshHTTPServer getEventMeshHTTPServer() { public void finish() { if (Objects.nonNull(eventMeshConsumer) && Objects.nonNull(context) && Objects.nonNull(event)) { - if (log.isDebugEnabled()) { - log.debug("messageAcked|topic={}|event={}", topic, event); - } + MESSAGE_LOGGER.info("messageAcked|group={}|topic={}|bizSeq={}|uniqId={}|msgRandomNo={}|queueId={}|queueOffset={}", + consumerGroup, topic, bizSeqNo, uniqueId, msgRandomNo, event.getExtension(Constants.PROPERTY_MESSAGE_QUEUE_ID), event.getExtension(Constants.PROPERTY_MESSAGE_QUEUE_OFFSET)); eventMeshConsumer.updateOffset(topic, subscriptionItem.getMode(), Collections.singletonList(event), context); } } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java index 6ac0461ab0..feb4fca069 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java @@ -91,6 +91,8 @@ public void tryHTTPRequest() { currPushUrl = getUrl(); if (StringUtils.isBlank(currPushUrl)) { + LOGGER.warn("tryHTTPRequest fail, getUrl is null, group:{}, topic:{}, bizSeqNo={}, uniqueId={}", this.handleMsgContext.getConsumerGroup(), + this.handleMsgContext.getTopic(), this.handleMsgContext.getBizSeqNo(), this.handleMsgContext.getUniqueId()); return; } @@ -144,7 +146,8 @@ public void tryHTTPRequest() { } } catch (Exception ex) { - LOGGER.error("Failed to convert EventMeshMessage from CloudEvent", ex); + LOGGER.warn("cloudevent to HttpEventWrapper occur except, group:{}, topic:{}, bizSeqNo={}, uniqueId={}", this.handleMsgContext.getConsumerGroup(), + this.handleMsgContext.getTopic(), this.handleMsgContext.getBizSeqNo(), this.handleMsgContext.getUniqueId(), ex); return; } @@ -207,17 +210,14 @@ public void tryHTTPRequest() { try { res = EntityUtils.toString(response.getEntity(), Charset.forName(EventMeshConstants.DEFAULT_CHARSET)); } catch (IOException e) { + LOGGER.warn("handleResponse exception", e); handleMsgContext.finish(); return new Object(); } ClientRetCode result = processResponseContent(res); - if (MESSAGE_LOGGER.isInfoEnabled()) { - MESSAGE_LOGGER.info( - "message|eventMesh2client|{}|url={}|topic={}|bizSeqNo={}" - + "|uniqueId={}|cost={}", + MESSAGE_LOGGER.info("message|eventMesh2client|{}|url={}|topic={}|bizSeqNo={}|uniqueId={}|cost={}", result, currPushUrl, handleMsgContext.getTopic(), handleMsgContext.getBizSeqNo(), handleMsgContext.getUniqueId(), cost); - } switch (result) { case OK: case REMOTE_OK: From ec70e9b256edfd7ba98645fe4e18e62f10c3bb91 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 20:00:45 +0800 Subject: [PATCH 050/333] fix NPE, security upgrade --- .../java/org/apache/eventmesh/runtime/util/WebhookUtil.java | 6 +++++- tools/dependency-check/known-dependencies.txt | 2 +- tools/third-party-licenses/LICENSE | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java index fa77f1b8ad..68e9b8c025 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java @@ -60,7 +60,11 @@ public static boolean obtainDeliveryAgreement(final CloseableHttpClient httpClie builder.addHeader(REQUEST_ORIGIN_HEADER, requestOrigin); try (CloseableHttpResponse response = httpClient.execute(builder)) { - final String allowedOrigin = response.getLastHeader(ALLOWED_ORIGIN_HEADER).getValue(); + String allowedOrigin = null; + + if(response.getLastHeader(ALLOWED_ORIGIN_HEADER) != null){ + allowedOrigin = response.getLastHeader(ALLOWED_ORIGIN_HEADER).getValue(); + } return StringUtils.isEmpty(allowedOrigin) || "*".equals(allowedOrigin) || allowedOrigin.equalsIgnoreCase(requestOrigin); } catch (Exception e) { diff --git a/tools/dependency-check/known-dependencies.txt b/tools/dependency-check/known-dependencies.txt index 2711e43c7e..612dd8dfa4 100644 --- a/tools/dependency-check/known-dependencies.txt +++ b/tools/dependency-check/known-dependencies.txt @@ -216,7 +216,7 @@ simpleclient-0.8.1.jar simpleclient_common-0.8.1.jar simpleclient_httpserver-0.8.1.jar slf4j-api-1.7.30.jar -snakeyaml-1.30.jar +snakeyaml-2.0.jar snappy-java-1.1.8.1.jar system-rules-1.16.1.jar truth-0.30.jar diff --git a/tools/third-party-licenses/LICENSE b/tools/third-party-licenses/LICENSE index 9456ae5c1a..7cb8a149d1 100644 --- a/tools/third-party-licenses/LICENSE +++ b/tools/third-party-licenses/LICENSE @@ -240,7 +240,7 @@ The text of each license is also included at licenses/LICENSE-[project].txt. error_prone_annotations 2.7.1: https://github.com/google/error-prone, Apache 2.0 failureaccess 1.0.1: https://github.com/google/guava, Apache 2.0 listenablefuture 9999.0-empty-to-avoid-conflict-with-guava: https://github.com/google/guava, Apache 2.0 - fastjson 1.2.76: https://github.com/alibaba/fastjson, Apache 2.0 + fastjson 1.2.83: https://github.com/alibaba/fastjson, Apache 2.0 guava 31.0.1-jre: https://github.com/google/guava, Apache 2.0 guice 4.2.2: https://github.com/google/guice, Apache 2.0 grpc-api 1.43.2: https://github.com/grpc/grpc-java, Apache-2.0 @@ -367,7 +367,7 @@ The text of each license is also included at licenses/LICENSE-[project].txt. simpleclient 0.8.1: https://github.com/prometheus/client_java, Apache 2.0 simpleclient_common 0.8.1: https://github.com/prometheus/client_java, Apache 2.0 simpleclient_httpserver 0.8.1: https://github.com/prometheus/client_java, Apache 2.0 - snakeyaml 1.30: https://bitbucket.org/asomov/snakeyaml, Apache 2.0 + snakeyaml 2.0: https://bitbucket.org/asomov/snakeyaml, Apache 2.0 truth 0.30: https://github.com/google/truth, Apache 2.0 validation-api 1.1.0.Final: https://github.com/jakartaee/validation, Apache 2.0 zipkin 2.23.2: https://github.com/openzipkin/zipkin, Apache 2.0 From 9ad1261dcb3c44e581774bcc145ab6f924aad233 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 22:53:57 +0800 Subject: [PATCH 051/333] Optimize remote subscribe and unsubscribe interface --- .../common/config/CommonConfiguration.java | 2 +- .../resolver/HttpRequestProtocolResolver.java | 2 +- .../RemoteSubscribeEventProcessor.java | 64 +++++++++---------- .../RemoteUnSubscribeEventProcessor.java | 11 +--- .../processor/inf/AbstractEventProcessor.java | 4 +- 5 files changed, 37 insertions(+), 46 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java index 61e4d9ac61..50be034c8c 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/config/CommonConfiguration.java @@ -124,6 +124,6 @@ public void reload() { this.eventMeshProvideServerProtocols = Collections.singletonList(ConfigurationContextUtil.HTTP); } - meshGroup = String.join("-", this.eventMeshEnv, this.eventMeshCluster, this.sysID); + meshGroup = String.join("-", this.eventMeshEnv, this.eventMeshIDC, this.eventMeshCluster, this.sysID); } } diff --git a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java index 186a74e5bc..a9ddaea78e 100644 --- a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java +++ b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java @@ -58,7 +58,7 @@ public static CloudEvent buildEvent(HttpEventWrapper httpEventWrapper) throws Pr HttpProtocolConstant.CONSTANTS_DEFAULT_TYPE).toString(); String subject = sysHeaderMap.getOrDefault(HttpProtocolConstant.CONSTANTS_KEY_SUBJECT, - HttpProtocolConstant.CONSTANTS_DEFAULT_SUBJECT).toString(); + "").toString(); // with attributes builder.withId(id) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java index dc2a9bed8a..cb797bd48b 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java @@ -117,8 +117,7 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest return; } - String url = requestBodyMap.get(EventMeshConstants.URL).toString(); - String consumerGroup = requestBodyMap.get(EventMeshConstants.CONSUMER_GROUP).toString(); +// String url = requestBodyMap.get(EventMeshConstants.URL).toString(); String topic = JsonUtils.toJSONString(requestBodyMap.get(EventMeshConstants.MANAGE_TOPIC)); // SubscriptionItem @@ -146,32 +145,32 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest } // validate URL - try { - if (!IPUtils.isValidDomainOrIp(url, eventMeshHttpConfiguration.getEventMeshIpv4BlackList(), - eventMeshHttpConfiguration.getEventMeshIpv6BlackList())) { - httpLogger.error("subscriber url {} is not valid", url); - handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, - responseBodyMap, null); - return; - } - } catch (Exception e) { - httpLogger.error("subscriber url {} is not valid, error {}", url, e.getMessage()); - handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, - responseBodyMap, null); - return; - } - - CloseableHttpClient closeableHttpClient = eventMeshHTTPServer.getHttpClientPool().getClient(); - // obtain webhook delivery agreement for Abuse Protection - boolean isWebhookAllowed = WebhookUtil.obtainDeliveryAgreement(closeableHttpClient, - url, eventMeshHttpConfiguration.getEventMeshWebhookOrigin()); - - if (!isWebhookAllowed) { - httpLogger.error("subscriber url {} is not allowed by the target system", url); - handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, - responseBodyMap, null); - return; - } +// try { +// if (!IPUtils.isValidDomainOrIp(url, eventMeshHttpConfiguration.getEventMeshIpv4BlackList(), +// eventMeshHttpConfiguration.getEventMeshIpv6BlackList())) { +// httpLogger.error("subscriber url {} is not valid", url); +// handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, +// responseBodyMap, null); +// return; +// } +// } catch (Exception e) { +// httpLogger.error("subscriber url {} is not valid, error {}", url, e.getMessage()); +// handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, +// responseBodyMap, null); +// return; +// } +// +// CloseableHttpClient closeableHttpClient = eventMeshHTTPServer.getHttpClientPool().getClient(); +// // obtain webhook delivery agreement for Abuse Protection +// boolean isWebhookAllowed = WebhookUtil.obtainDeliveryAgreement(closeableHttpClient, +// url, eventMeshHttpConfiguration.getEventMeshWebhookOrigin()); +// +// if (!isWebhookAllowed) { +// httpLogger.error("subscriber url {} is not allowed by the target system", url); +// handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, +// responseBodyMap, null); +// return; +// } long startTime = System.currentTimeMillis(); try { @@ -187,11 +186,12 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest String targetMesh = requestBodyMap.get("remoteMesh") == null ? "" : requestBodyMap.get("remoteMesh").toString(); // Get mesh address from registry - String meshAddress = getTargetMesh(consumerGroup, subscriptionList); + String meshAddress = getTargetMesh(eventMeshHttpConfiguration.getMeshGroup(), subscriptionList); if (StringUtils.isNotBlank(meshAddress)) { targetMesh = meshAddress; } + CloseableHttpClient closeableHttpClient = eventMeshHTTPServer.getHttpClientPool().getClient(); String remoteResult = post(closeableHttpClient, targetMesh, builderRemoteHeaderMap(localAddress), remoteBodyMap, response -> EntityUtils.toString(response.getEntity(), Constants.DEFAULT_CHARSET)); @@ -213,10 +213,8 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest } catch (Exception e) { long endTime = System.currentTimeMillis(); - httpLogger.error( - "message|eventMesh2mq|REQ|ASYNC|send2MQCost={}ms|topic={}" - + "|bizSeqNo={}|uniqueId={}", endTime - startTime, - JsonUtils.toJSONString(subscriptionList), url, e); + httpLogger.error("subscribe Remote|cost={}ms|topic={}", endTime - startTime, + JsonUtils.toJSONString(subscriptionList), e); handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_SUBSCRIBE_ERR, responseHeaderMap, responseBodyMap, null); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteUnSubscribeEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteUnSubscribeEventProcessor.java index 31dbb19121..f601e302dd 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteUnSubscribeEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteUnSubscribeEventProcessor.java @@ -115,9 +115,7 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest return; } - String unSubscribeUrl = requestBodyMap.get(EventMeshConstants.URL).toString(); - String consumerGroup = requestBodyMap.get(EventMeshConstants.CONSUMER_GROUP).toString(); - String topic = requestBodyMap.get(EventMeshConstants.MANAGE_TOPIC).toString(); + String topic = JsonUtils.toJSONString(requestBodyMap.get(EventMeshConstants.MANAGE_TOPIC).toString()); long startTime = System.currentTimeMillis(); try { @@ -156,7 +154,7 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest return subscriptionItem; }).collect(Collectors.toList()); // Get mesh address from registry - String meshAddress = getTargetMesh(consumerGroup, subscriptionList); + String meshAddress = getTargetMesh(meshGroup, subscriptionList); if (StringUtils.isNotBlank(meshAddress)) { targetMesh = meshAddress; } @@ -182,10 +180,7 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest } } catch (Exception e) { long endTime = System.currentTimeMillis(); - httpLogger.error( - "message|eventMesh2mq|REQ|ASYNC|send2MQCost={}ms|topic={}" - + "|bizSeqNo={}|uniqueId={}", endTime - startTime, - topic, unSubscribeUrl, e); + httpLogger.error("message|eventMesh2mq|REQ|ASYNC|send2MQCost={}ms|topic={}", endTime - startTime, topic, e); handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_UNSUBSCRIBE_ERR, responseHeaderMap, responseBodyMap, null); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java index 10925a29fd..aeb053d583 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java @@ -206,9 +206,7 @@ protected boolean validateSysHeader(Map sysHeaderMap) { * @return any null then true */ protected boolean validatedRequestBodyMap(Map requestBodyMap) { - return requestBodyMap.get(EventMeshConstants.URL) == null - || requestBodyMap.get(EventMeshConstants.MANAGE_TOPIC) == null - || requestBodyMap.get(EventMeshConstants.CONSUMER_GROUP) == null; + return requestBodyMap.get(EventMeshConstants.MANAGE_TOPIC) == null; } From 16aceadc6c74bc2c7034c4d5713cdad547d8d658 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 22:56:14 +0800 Subject: [PATCH 052/333] Default parameter optimization and codec optimization --- .../eventmesh/common/protocol/tcp/codec/Codec.java | 12 ++++++++++++ .../http/processor/SendAsyncEventProcessor.java | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/codec/Codec.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/codec/Codec.java index 3e86ba7524..7ce5ecbf8a 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/codec/Codec.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/codec/Codec.java @@ -194,6 +194,18 @@ private static Object deserializeBody(String bodyJsonString, Header header) thro case RESPONSE_TO_CLIENT_ACK: case ASYNC_MESSAGE_TO_CLIENT_ACK: case BROADCAST_MESSAGE_TO_CLIENT_ACK: + case HELLO_RESPONSE: + case RECOMMEND_RESPONSE: + case SUBSCRIBE_RESPONSE: + case LISTEN_RESPONSE: + case UNSUBSCRIBE_RESPONSE: + case HEARTBEAT_RESPONSE: + case ASYNC_MESSAGE_TO_SERVER_ACK: + case BROADCAST_MESSAGE_TO_SERVER_ACK: + case CLIENT_GOODBYE_REQUEST: + case CLIENT_GOODBYE_RESPONSE: + case SERVER_GOODBYE_REQUEST: + case SERVER_GOODBYE_RESPONSE: // The message string will be deserialized by protocol plugin, if the event is cloudevents, the body is // just a string. return bodyJsonString; diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SendAsyncEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SendAsyncEventProcessor.java index 13d0c8db48..cee9aea37a 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SendAsyncEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/SendAsyncEventProcessor.java @@ -101,11 +101,11 @@ public void handler(final HandlerService.HandlerSpecific handlerSpecific, final requestWrapper.buildSysHeaderForCE(); final String bizNo = requestHeaderMap.getOrDefault(ProtocolKey.ClientInstanceKey.BIZSEQNO, - RandomStringUtils.generateNum(30)).toString(); + RandomStringUtils.generateNum(32)).toString(); final String uniqueId = requestHeaderMap.getOrDefault(ProtocolKey.ClientInstanceKey.UNIQUEID, - RandomStringUtils.generateNum(30)).toString(); + RandomStringUtils.generateNum(32)).toString(); final String ttl = requestHeaderMap.getOrDefault(Constants.EVENTMESH_MESSAGE_CONST_TTL, - 4 * 1000).toString(); + 14400000).toString(); requestWrapper.getSysHeaderMap().putIfAbsent(ProtocolKey.ClientInstanceKey.BIZSEQNO, bizNo); requestWrapper.getSysHeaderMap().putIfAbsent(ProtocolKey.ClientInstanceKey.UNIQUEID, uniqueId); From c5be10b4daca6871fab46e4fbf2658d71ef9ced7 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Tue, 11 Jul 2023 23:32:26 +0800 Subject: [PATCH 053/333] support application/protobuf --- .../protocol/http/HttpProtocolConstant.java | 9 +++-- .../resolver/HttpRequestProtocolResolver.java | 34 +++++++++++-------- .../runtime/boot/AbstractHTTPServer.java | 14 ++++++-- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/HttpProtocolConstant.java b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/HttpProtocolConstant.java index 0e70bd7d5a..f45204594e 100644 --- a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/HttpProtocolConstant.java +++ b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/HttpProtocolConstant.java @@ -21,11 +21,9 @@ public enum HttpProtocolConstant { ; public static final String PROTOCOL_NAME = "http"; - public static final String DATA_CONTENT_TYPE = "application/json"; - public static final String CONSTANTS_DEFAULT_SOURCE = "/"; public static final String CONSTANTS_DEFAULT_TYPE = "http_request"; - public static final String CONSTANTS_DEFAULT_SUBJECT = "TOPIC-HTTP-REQUEST"; + public static final String CONSTANTS_DEFAULT_SUBJECT = ""; public static final String CONSTANTS_KEY_ID = "id"; public static final String CONSTANTS_KEY_SOURCE = "source"; @@ -35,4 +33,9 @@ public enum HttpProtocolConstant { public static final String CONSTANTS_KEY_BODY = "body"; public static final String CONSTANTS_KEY_PATH = "path"; public static final String CONSTANTS_KEY_METHOD = "method"; + + public static final String DATA_CONTENT_TYPE = "Content-Type"; + + public static final String APPLICATION_JSON = "application/json"; + public static final String PROTOBUF = "application/x-protobuf"; } diff --git a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java index a9ddaea78e..eaf3570f45 100644 --- a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java +++ b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java @@ -17,7 +17,6 @@ package org.apache.eventmesh.protocol.http.resolver; -import org.apache.eventmesh.common.Constants; import org.apache.eventmesh.common.protocol.http.HttpEventWrapper; import org.apache.eventmesh.common.utils.JsonUtils; import org.apache.eventmesh.protocol.api.exception.ProtocolHandleException; @@ -30,7 +29,6 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; -import java.util.Objects; import java.util.UUID; import io.cloudevents.CloudEvent; @@ -58,14 +56,15 @@ public static CloudEvent buildEvent(HttpEventWrapper httpEventWrapper) throws Pr HttpProtocolConstant.CONSTANTS_DEFAULT_TYPE).toString(); String subject = sysHeaderMap.getOrDefault(HttpProtocolConstant.CONSTANTS_KEY_SUBJECT, - "").toString(); + HttpProtocolConstant.CONSTANTS_DEFAULT_SUBJECT).toString(); + String dataContentType = requestHeaderMap.getOrDefault(HttpProtocolConstant.DATA_CONTENT_TYPE, HttpProtocolConstant.APPLICATION_JSON).toString(); // with attributes builder.withId(id) .withType(type) .withSource(URI.create(HttpProtocolConstant.CONSTANTS_KEY_SOURCE + ":" + source)) .withSubject(subject) - .withDataContentType(HttpProtocolConstant.DATA_CONTENT_TYPE); + .withDataContentType(dataContentType); // with extensions for (Map.Entry extension : sysHeaderMap.entrySet()) { @@ -81,19 +80,24 @@ public static CloudEvent buildEvent(HttpEventWrapper httpEventWrapper) throws Pr byte[] requestBody = httpEventWrapper.getBody(); - Map requestBodyMap = JsonUtils.parseTypeReferenceObject(new String(requestBody, Constants.DEFAULT_CHARSET), - new TypeReference>() { + if (StringUtils.equals(dataContentType, HttpProtocolConstant.APPLICATION_JSON)) { + Map requestBodyMap = JsonUtils.parseTypeReferenceObject(new String(requestBody), new TypeReference>() { }); - String requestURI = httpEventWrapper.getRequestURI(); - - Map data = new HashMap<>(); - data.put(HttpProtocolConstant.CONSTANTS_KEY_HEADERS, requestHeaderMap); - data.put(HttpProtocolConstant.CONSTANTS_KEY_BODY, requestBodyMap); - data.put(HttpProtocolConstant.CONSTANTS_KEY_PATH, requestURI); - data.put(HttpProtocolConstant.CONSTANTS_KEY_METHOD, httpEventWrapper.getHttpMethod()); - // with data - return builder.withData(Objects.requireNonNull(JsonUtils.toJSONString(data)).getBytes(StandardCharsets.UTF_8)).build(); + String requestURI = httpEventWrapper.getRequestURI(); + + Map data = new HashMap<>(); + data.put(HttpProtocolConstant.CONSTANTS_KEY_HEADERS, requestHeaderMap); + data.put(HttpProtocolConstant.CONSTANTS_KEY_BODY, requestBodyMap); + data.put(HttpProtocolConstant.CONSTANTS_KEY_PATH, requestURI); + data.put(HttpProtocolConstant.CONSTANTS_KEY_METHOD, httpEventWrapper.getHttpMethod()); + // with data + builder = builder.withData(JsonUtils.toJSONString(data).getBytes(StandardCharsets.UTF_8)); + } else if (StringUtils.equals(dataContentType, HttpProtocolConstant.PROTOBUF)) { + // with data + builder = builder.withData(requestBody); + } + return builder.build(); } catch (Exception e) { throw new ProtocolHandleException(e.getMessage(), e); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java index 42b1f6c4d9..b11421bb5e 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java @@ -620,6 +620,7 @@ private HttpEventWrapper parseHttpRequest(final HttpRequest httpRequest) throws } final long bodyDecodeStart = System.currentTimeMillis(); + byte[] requestBody = null; final FullHttpRequest fullHttpRequest = (FullHttpRequest) httpRequest; final Map bodyMap = new HashMap<>(); @@ -636,8 +637,16 @@ private HttpEventWrapper parseHttpRequest(final HttpRequest httpRequest) throws bodyMap.putAll(Objects.requireNonNull(JsonUtils.parseTypeReferenceObject(new String(body, Constants.DEFAULT_CHARSET), new TypeReference>() { }))); + requestBody = JsonUtils.toJSONString(bodyMap).getBytes(StandardCharsets.UTF_8); } - } else { + } else if (StringUtils.equals(httpRequest.headers().get("Content-Type"), "application/x-protobuf")) { + int length = fullHttpRequest.content().readableBytes(); + if (length > 0) { + byte[] body = new byte[length]; + fullHttpRequest.content().readBytes(body); + requestBody = body; + } + }else { final HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(DEFAULT_HTTP_DATA_FACTORY, httpRequest); for (final InterfaceHttpData parm : decoder.getBodyHttpDatas()) { @@ -647,13 +656,14 @@ private HttpEventWrapper parseHttpRequest(final HttpRequest httpRequest) throws } } decoder.destroy(); + requestBody = JsonUtils.toJSONString(bodyMap).getBytes(StandardCharsets.UTF_8); } } else { throw new MethodNotSupportedException("UnSupported Method " + fullHttpRequest.method()); } - httpEventWrapper.setBody(Objects.requireNonNull(JsonUtils.toJSONString(bodyMap)).getBytes(StandardCharsets.UTF_8)); + httpEventWrapper.setBody(requestBody); metrics.getSummaryMetrics().recordDecodeTimeCost(System.currentTimeMillis() - bodyDecodeStart); From 9471624cc9a3a30391dfa3e0edbfbd0e18fc39d9 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Wed, 12 Jul 2023 09:54:40 +0800 Subject: [PATCH 054/333] fix checkstyle --- .../metrics/api/model/HttpSummaryMetrics.java | 12 ++-- .../resolver/HttpRequestProtocolResolver.java | 7 ++- .../http/consumer/EventMeshConsumer.java | 6 +- .../http/consumer/HandleMsgContext.java | 10 ++-- .../RemoteSubscribeEventProcessor.java | 55 +++++++++---------- .../http/push/AsyncHTTPPushRequest.java | 3 +- .../eventmesh/runtime/util/WebhookUtil.java | 2 +- 7 files changed, 49 insertions(+), 46 deletions(-) diff --git a/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java b/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java index adaf9ff5e2..5a9a092f7f 100644 --- a/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java +++ b/eventmesh-metrics-plugin/eventmesh-metrics-api/src/main/java/org/apache/eventmesh/metrics/api/model/HttpSummaryMetrics.java @@ -142,7 +142,7 @@ public void recordHTTPDiscard() { } public void snapshotHTTPTPS() { - try{ + try { lock.lock(); Integer tps = httpRequestPerSecond.intValue(); httpRequestTPSSnapshots.add(tps); @@ -150,27 +150,27 @@ public void snapshotHTTPTPS() { if (httpRequestTPSSnapshots.size() > STATIC_PERIOD / 1000) { httpRequestTPSSnapshots.removeFirst(); } - }finally { + } finally { lock.unlock(); } } public float maxHTTPTPS() { - try{ + try { lock.lock(); float tps = Collections.max(httpRequestTPSSnapshots); return tps; - }finally { + } finally { lock.unlock(); } } public float avgHTTPTPS() { - try{ + try { lock.lock(); float tps = avg(httpRequestTPSSnapshots); return tps; - }finally { + } finally { lock.unlock(); } } diff --git a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java index eaf3570f45..ac723cf858 100644 --- a/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java +++ b/eventmesh-protocol-plugin/eventmesh-protocol-http/src/main/java/org/apache/eventmesh/protocol/http/resolver/HttpRequestProtocolResolver.java @@ -58,7 +58,8 @@ public static CloudEvent buildEvent(HttpEventWrapper httpEventWrapper) throws Pr String subject = sysHeaderMap.getOrDefault(HttpProtocolConstant.CONSTANTS_KEY_SUBJECT, HttpProtocolConstant.CONSTANTS_DEFAULT_SUBJECT).toString(); - String dataContentType = requestHeaderMap.getOrDefault(HttpProtocolConstant.DATA_CONTENT_TYPE, HttpProtocolConstant.APPLICATION_JSON).toString(); + String dataContentType = requestHeaderMap.getOrDefault(HttpProtocolConstant.DATA_CONTENT_TYPE, + HttpProtocolConstant.APPLICATION_JSON).toString(); // with attributes builder.withId(id) .withType(type) @@ -81,8 +82,8 @@ public static CloudEvent buildEvent(HttpEventWrapper httpEventWrapper) throws Pr byte[] requestBody = httpEventWrapper.getBody(); if (StringUtils.equals(dataContentType, HttpProtocolConstant.APPLICATION_JSON)) { - Map requestBodyMap = JsonUtils.parseTypeReferenceObject(new String(requestBody), new TypeReference>() { - }); + Map requestBodyMap = JsonUtils.parseTypeReferenceObject(new String(requestBody), + new TypeReference>() {}); String requestURI = httpEventWrapper.getRequestURI(); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java index 664650c4e7..6a43e88ec3 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/EventMeshConsumer.java @@ -132,9 +132,11 @@ public synchronized void init() throws Exception { if (currentTopicConfig == null) { try { sendMessageBack(event, uniqueId, bizSeqNo); - log.warn("no ConsumerGroupTopicConf found, sendMessageBack success, consumerGroup:{}, topic:{}, bizSeqNo={}, uniqueId={}", consumerGroupConf.getConsumerGroup(), topic, bizSeqNo, uniqueId); + log.warn("no ConsumerGroupTopicConf found, sendMessageBack success, consumerGroup:{}, topic:{}, bizSeqNo={}, uniqueId={}", + consumerGroupConf.getConsumerGroup(), topic, bizSeqNo, uniqueId); } catch (Exception ex) { - log.warn("sendMessageBack fail, consumerGroup:{}, topic:{}, bizSeqNo={}, uniqueId={}", consumerGroupConf.getConsumerGroup(), topic, bizSeqNo, uniqueId, ex); + log.warn("sendMessageBack fail, consumerGroup:{}, topic:{}, bizSeqNo={}, uniqueId={}", + consumerGroupConf.getConsumerGroup(), topic, bizSeqNo, uniqueId, ex); } eventMeshAsyncConsumeContext.commit(EventMeshAction.CommitMessage); return; diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java index 6afa0f7696..e6af880a90 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/consumer/HandleMsgContext.java @@ -33,14 +33,13 @@ import java.util.Map; import java.util.Objects; -import io.cloudevents.CloudEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import io.cloudevents.CloudEvent; import lombok.extern.slf4j.Slf4j; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - @Slf4j public class HandleMsgContext { @@ -211,7 +210,8 @@ public EventMeshHTTPServer getEventMeshHTTPServer() { public void finish() { if (Objects.nonNull(eventMeshConsumer) && Objects.nonNull(context) && Objects.nonNull(event)) { MESSAGE_LOGGER.info("messageAcked|group={}|topic={}|bizSeq={}|uniqId={}|msgRandomNo={}|queueId={}|queueOffset={}", - consumerGroup, topic, bizSeqNo, uniqueId, msgRandomNo, event.getExtension(Constants.PROPERTY_MESSAGE_QUEUE_ID), event.getExtension(Constants.PROPERTY_MESSAGE_QUEUE_OFFSET)); + consumerGroup, topic, bizSeqNo, uniqueId, msgRandomNo, event.getExtension(Constants.PROPERTY_MESSAGE_QUEUE_ID), + event.getExtension(Constants.PROPERTY_MESSAGE_QUEUE_OFFSET)); eventMeshConsumer.updateOffset(topic, subscriptionItem.getMode(), Collections.singletonList(event), context); } } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java index cb797bd48b..7181038326 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/RemoteSubscribeEventProcessor.java @@ -33,7 +33,6 @@ import org.apache.eventmesh.runtime.core.protocol.http.async.AsyncContext; import org.apache.eventmesh.runtime.core.protocol.http.processor.inf.AbstractEventProcessor; import org.apache.eventmesh.runtime.util.RemotingHelper; -import org.apache.eventmesh.runtime.util.WebhookUtil; import org.apache.commons.lang3.StringUtils; import org.apache.http.impl.client.CloseableHttpClient; @@ -117,7 +116,7 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest return; } -// String url = requestBodyMap.get(EventMeshConstants.URL).toString(); + //String url = requestBodyMap.get(EventMeshConstants.URL).toString(); String topic = JsonUtils.toJSONString(requestBodyMap.get(EventMeshConstants.MANAGE_TOPIC)); // SubscriptionItem @@ -145,32 +144,32 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest } // validate URL -// try { -// if (!IPUtils.isValidDomainOrIp(url, eventMeshHttpConfiguration.getEventMeshIpv4BlackList(), -// eventMeshHttpConfiguration.getEventMeshIpv6BlackList())) { -// httpLogger.error("subscriber url {} is not valid", url); -// handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, -// responseBodyMap, null); -// return; -// } -// } catch (Exception e) { -// httpLogger.error("subscriber url {} is not valid, error {}", url, e.getMessage()); -// handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, -// responseBodyMap, null); -// return; -// } -// -// CloseableHttpClient closeableHttpClient = eventMeshHTTPServer.getHttpClientPool().getClient(); -// // obtain webhook delivery agreement for Abuse Protection -// boolean isWebhookAllowed = WebhookUtil.obtainDeliveryAgreement(closeableHttpClient, -// url, eventMeshHttpConfiguration.getEventMeshWebhookOrigin()); -// -// if (!isWebhookAllowed) { -// httpLogger.error("subscriber url {} is not allowed by the target system", url); -// handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, -// responseBodyMap, null); -// return; -// } + // try { + // if (!IPUtils.isValidDomainOrIp(url, eventMeshHttpConfiguration.getEventMeshIpv4BlackList(), + // eventMeshHttpConfiguration.getEventMeshIpv6BlackList())) { + // httpLogger.error("subscriber url {} is not valid", url); + // handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, + // responseBodyMap, null); + // return; + // } + // } catch (Exception e) { + // httpLogger.error("subscriber url {} is not valid, error {}", url, e.getMessage()); + // handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, + // responseBodyMap, null); + // return; + // } + // + // CloseableHttpClient closeableHttpClient = eventMeshHTTPServer.getHttpClientPool().getClient(); + // // obtain webhook delivery agreement for Abuse Protection + // boolean isWebhookAllowed = WebhookUtil.obtainDeliveryAgreement(closeableHttpClient, + // url, eventMeshHttpConfiguration.getEventMeshWebhookOrigin()); + // + // if (!isWebhookAllowed) { + // httpLogger.error("subscriber url {} is not allowed by the target system", url); + // handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, + // responseBodyMap, null); + // return; + // } long startTime = System.currentTimeMillis(); try { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java index feb4fca069..2417cea174 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/push/AsyncHTTPPushRequest.java @@ -146,7 +146,8 @@ public void tryHTTPRequest() { } } catch (Exception ex) { - LOGGER.warn("cloudevent to HttpEventWrapper occur except, group:{}, topic:{}, bizSeqNo={}, uniqueId={}", this.handleMsgContext.getConsumerGroup(), + LOGGER.warn("cloudevent to HttpEventWrapper occur except, group:{}, topic:{}, bizSeqNo={}, uniqueId={}", + this.handleMsgContext.getConsumerGroup(), this.handleMsgContext.getTopic(), this.handleMsgContext.getBizSeqNo(), this.handleMsgContext.getUniqueId(), ex); return; } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java index 68e9b8c025..8308fdad58 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/WebhookUtil.java @@ -62,7 +62,7 @@ public static boolean obtainDeliveryAgreement(final CloseableHttpClient httpClie try (CloseableHttpResponse response = httpClient.execute(builder)) { String allowedOrigin = null; - if(response.getLastHeader(ALLOWED_ORIGIN_HEADER) != null){ + if (response.getLastHeader(ALLOWED_ORIGIN_HEADER) != null) { allowedOrigin = response.getLastHeader(ALLOWED_ORIGIN_HEADER).getValue(); } return StringUtils.isEmpty(allowedOrigin) From e4c97755983abdfbd852afa7b120a3f4da609d58 Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Wed, 12 Jul 2023 10:03:29 +0800 Subject: [PATCH 055/333] Add response status code setting for http request --- .../common/protocol/http/HttpCommand.java | 14 +++++++++++++ .../protocol/http/HttpEventWrapper.java | 8 ++++++- .../runtime/boot/AbstractHTTPServer.java | 21 ++++++++++++++++--- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpCommand.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpCommand.java index 76cda7a70f..fa2057ae4c 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpCommand.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpCommand.java @@ -176,6 +176,20 @@ public DefaultFullHttpResponse httpResponse() throws Exception { return response; } + public DefaultFullHttpResponse httpResponse(HttpResponseStatus httpResponseStatus) throws Exception { + if (cmdType == CmdType.REQ) { + return null; + } + DefaultFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, httpResponseStatus, + Unpooled.wrappedBuffer(Objects.requireNonNull(JsonUtils.toJSONString(this.getBody())).getBytes(Constants.DEFAULT_CHARSET))); + HttpHeaders headers = response.headers(); + headers.add(HttpHeaderNames.CONTENT_TYPE, "text/plain; charset=" + Constants.DEFAULT_CHARSET); + headers.add(HttpHeaderNames.CONTENT_LENGTH, response.content().readableBytes()); + headers.add(HttpHeaderNames.CONNECTION, HttpHeaderValues.KEEP_ALIVE); + Optional.of(this.getHeader().toMap()).ifPresent(customerHeader -> customerHeader.forEach(headers::add)); + return response; + } + public enum CmdType { REQ, RES diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java index 2779bb73d8..3b40d8c163 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java @@ -66,6 +66,8 @@ public class HttpEventWrapper implements ProtocolTransportObject { //Command response time public long resTime; + private HttpResponseStatus httpResponseStatus = HttpResponseStatus.OK; + public HttpEventWrapper() { this(null, null, null); } @@ -180,7 +182,7 @@ public void setBody(byte[] newBody) { } public DefaultFullHttpResponse httpResponse() throws Exception { - DefaultFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, + DefaultFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, httpResponseStatus, Unpooled.wrappedBuffer(this.body)); HttpHeaders headers = response.headers(); headers.add(HttpHeaderNames.CONTENT_TYPE, "text/plain; charset=" + Constants.DEFAULT_CHARSET); @@ -225,4 +227,8 @@ public void buildSysHeaderForCE() { sysHeaderMap.put(ProtocolKey.CloudEventsKey.SUBJECT, topic); } + public void setHttpResponseStatus(HttpResponseStatus httpResponseStatus) { + this.httpResponseStatus = httpResponseStatus; + } + } \ No newline at end of file diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java index b11421bb5e..5e67282225 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/AbstractHTTPServer.java @@ -414,7 +414,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception || !RequestCode.contains(Integer.valueOf(requestCode))) { responseCommand = requestCommand.createHttpCommandResponse(EventMeshRetCode.EVENTMESH_REQUESTCODE_INVALID); - sendResponse(ctx, responseCommand.httpResponse()); + sendResponse(ctx, responseCommand.httpResponse(HttpResponseStatus.BAD_REQUEST)); span = TraceUtils.prepareServerSpan(headerMap, EventMeshTraceConstants.TRACE_UPSTREAM_EVENTMESH_SERVER_SPAN, false); @@ -428,7 +428,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception requestCommand.setBody(Body.buildBody(requestCode, bodyMap)); } catch (Exception e) { responseCommand = requestCommand.createHttpCommandResponse(EventMeshRetCode.EVENTMESH_RUNTIME_ERR); - sendResponse(ctx, responseCommand.httpResponse()); + sendResponse(ctx, responseCommand.httpResponse(HttpResponseStatus.INTERNAL_SERVER_ERROR)); span = TraceUtils.prepareServerSpan(headerMap, EventMeshTraceConstants.TRACE_UPSTREAM_EVENTMESH_SERVER_SPAN, false); @@ -448,6 +448,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception } catch (Exception ex) { log.error("AbstractHTTPServer.HTTPHandler.channelRead error", ex); + sendError(ctx, HttpResponseStatus.INTERNAL_SERVER_ERROR); } finally { ReferenceCountUtil.release(httpRequest); } @@ -467,6 +468,17 @@ public void processHttpRequest(final ChannelHandlerContext ctx, final Pair choosed = eventProcessorTable.get(processorKey); try { + if (choosed == null) { + log.warn("eventProcessorTable not contains EventProcessor, processorKey:{}", processorKey); + sendError(ctx, HttpResponseStatus.BAD_REQUEST); + return; + } + if (choosed.getObject2() == null) { + log.warn("eventProcessorTable not contains ThreadPoolExecutor, processorKey:{}", processorKey); + sendError(ctx, HttpResponseStatus.INTERNAL_SERVER_ERROR); + return; + } + choosed.getObject2().submit(() -> { try { final EventProcessor processor = choosed.getObject1(); @@ -474,6 +486,7 @@ public void processHttpRequest(final ChannelHandlerContext ctx, final HttpEventWrapper responseWrapper = requestWrapper.createHttpResponse(EventMeshRetCode.EVENTMESH_REJECT_BY_PROCESSOR_ERROR); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); asyncContext.onComplete(responseWrapper); if (asyncContext.isComplete()) { @@ -500,10 +513,12 @@ public void processHttpRequest(final ChannelHandlerContext ctx, sendResponse(ctx, asyncContext.getResponse().httpResponse()); } catch (Exception e) { log.error("process error", e); + sendError(ctx, HttpResponseStatus.INTERNAL_SERVER_ERROR); } }); } catch (RejectedExecutionException re) { final HttpEventWrapper responseWrapper = requestWrapper.createHttpResponse(EventMeshRetCode.OVERLOAD); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); asyncContext.onComplete(responseWrapper); metrics.getSummaryMetrics().recordHTTPDiscard(); metrics.getSummaryMetrics().recordHTTPReqResTimeCost( @@ -646,7 +661,7 @@ private HttpEventWrapper parseHttpRequest(final HttpRequest httpRequest) throws fullHttpRequest.content().readBytes(body); requestBody = body; } - }else { + } else { final HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(DEFAULT_HTTP_DATA_FACTORY, httpRequest); for (final InterfaceHttpData parm : decoder.getBodyHttpDatas()) { From d95a2db031278289e7f24eef9983b2de0bed302e Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Thu, 13 Jul 2023 09:35:02 +0800 Subject: [PATCH 056/333] fix license check problem --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index a30f89c3b5..cc3250c192 100644 --- a/build.gradle +++ b/build.gradle @@ -512,7 +512,7 @@ subprojects { dependency "com.github.seancfoley:ipaddress:5.3.3" dependency "com.google.code.gson:gson:2.8.2" - dependency "org.yaml:snakeyaml:1.30" + dependency "org.yaml:snakeyaml:2.0" dependency "org.javassist:javassist:3.24.0-GA" dependency "com.alibaba.nacos:nacos-client:2.2.1" From 81690eccd255cea367cb5574c2e07cfc69b044ca Mon Sep 17 00:00:00 2001 From: lrhkobe Date: Thu, 13 Jul 2023 12:24:42 +0800 Subject: [PATCH 057/333] fix checkstyle problem --- build.gradle | 2 +- tools/dependency-check/known-dependencies.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index cc3250c192..a30f89c3b5 100644 --- a/build.gradle +++ b/build.gradle @@ -512,7 +512,7 @@ subprojects { dependency "com.github.seancfoley:ipaddress:5.3.3" dependency "com.google.code.gson:gson:2.8.2" - dependency "org.yaml:snakeyaml:2.0" + dependency "org.yaml:snakeyaml:1.30" dependency "org.javassist:javassist:3.24.0-GA" dependency "com.alibaba.nacos:nacos-client:2.2.1" diff --git a/tools/dependency-check/known-dependencies.txt b/tools/dependency-check/known-dependencies.txt index 612dd8dfa4..2711e43c7e 100644 --- a/tools/dependency-check/known-dependencies.txt +++ b/tools/dependency-check/known-dependencies.txt @@ -216,7 +216,7 @@ simpleclient-0.8.1.jar simpleclient_common-0.8.1.jar simpleclient_httpserver-0.8.1.jar slf4j-api-1.7.30.jar -snakeyaml-2.0.jar +snakeyaml-1.30.jar snappy-java-1.1.8.1.jar system-rules-1.16.1.jar truth-0.30.jar From 3f6576ea36e7e06b1f3c4c029872591f74c1f792 Mon Sep 17 00:00:00 2001 From: VishalMCF <70262922+VishalMCF@users.noreply.github.com> Date: Fri, 14 Jul 2023 07:30:15 +0530 Subject: [PATCH 058/333] [ISSUE #4105] Code Optimization in EventMeshTcpRetryer (#4173) * resolved the tasks mentioned in issue 4105 * changed declaration from strict to raw type * resolved checkstyle iussue --- .../tcp/client/session/retry/EventMeshTcpRetryer.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 a28ae09c4b..cc57f8854a 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 @@ -37,9 +37,9 @@ public class EventMeshTcpRetryer { private EventMeshTCPServer eventMeshTCPServer; - private DelayQueue retrys = new DelayQueue(); + private final DelayQueue retrys = new DelayQueue<>(); - private ThreadPoolExecutor pool = new ThreadPoolExecutor(3, + private final ThreadPoolExecutor pool = new ThreadPoolExecutor(3, 3, 60000, TimeUnit.MILLISECONDS, new ArrayBlockingQueue(1000), @@ -62,7 +62,7 @@ public void setEventMeshTCPServer(EventMeshTCPServer eventMeshTCPServer) { public void pushRetry(RetryContext retryContext) { if (retrys.size() >= eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshTcpMsgRetryQueueSize()) { - log.error("pushRetry fail,retrys is too much,allow max retryQueueSize:{}, retryTimes:{}, seq:{}, bizSeq:{}", + log.error("pushRetry fail, retrys is too much,allow max retryQueueSize:{}, retryTimes:{}, seq:{}, bizSeq:{}", eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshTcpMsgRetryQueueSize(), retryContext.retryTimes, retryContext.seq, EventMeshUtil.getMessageBizSeq(retryContext.event)); return; @@ -102,6 +102,9 @@ public void init() { }); } } catch (Exception e) { + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } log.error("retry-dispatcher error!", e); } }, "retry-dispatcher"); @@ -124,6 +127,5 @@ public int getRetrySize() { } public void printRetryThreadPoolState() { - //ThreadPoolHelper.printState(pool); } } From 06ae1b80e5e4fe79b569422328277839f7ec84d4 Mon Sep 17 00:00:00 2001 From: ruhshan Date: Fri, 14 Jul 2023 08:00:58 +0600 Subject: [PATCH 059/333] [ISSUE #3904] Make fields final that should be final (#4176) --- .../main/java/org/apache/eventmesh/common/Constants.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/Constants.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/Constants.java index cc76f55f8b..3b4f2e2738 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/Constants.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/Constants.java @@ -126,11 +126,11 @@ public class Constants { public static final String OPERATION_TIMEOUT = "OPERATION_TIMEOUT"; - public static String CLOUD_EVENTS_PROTOCOL_NAME = "cloudevents"; + public static final String CLOUD_EVENTS_PROTOCOL_NAME = "cloudevents"; - public static String EM_MESSAGE_PROTOCOL_NAME = "eventmeshmessage"; + public static final String EM_MESSAGE_PROTOCOL_NAME = "eventmeshmessage"; - public static String OPEN_MESSAGE_PROTOCOL_NAME = "openmessage"; + public static final String OPEN_MESSAGE_PROTOCOL_NAME = "openmessage"; // delimiter define public static final String COMMA = ","; From c82454bfb7bde2141c20160b0eff1d56d6ae3374 Mon Sep 17 00:00:00 2001 From: Pil0tXia <41445332+Pil0tXia@users.noreply.github.com> Date: Fri, 14 Jul 2023 10:30:58 +0800 Subject: [PATCH 060/333] [ISSUE #4208] Add JavaDoc for org.apache.eventmesh.runtime.admin APIs of dashboard (#4210) * doc: Add JavaDoc for ClientManageController * doc: Add JavaDoc for HttpHandlerManager * doc: Add JavaDoc for AbstractHttpHandler * doc: Add JavaDoc for ConfigurationHandler * doc: Add JavaDoc for MetricsHandler * doc: Add JavaDoc for RegistryHandler * doc: Add JavaDoc for TopicHandler * doc: Add JavaDoc for EventHandler * doc: Add JavaDoc for TCPClientHandler * doc: Add JavaDoc for HTTPClientHandler * doc: Add JavaDoc for GrpcClientHandler --- .../controller/ClientManageController.java | 22 ++++++- .../admin/controller/HttpHandlerManager.java | 21 +++++- .../admin/handler/AbstractHttpHandler.java | 6 +- .../admin/handler/ConfigurationHandler.java | 44 ++++++++++++- .../runtime/admin/handler/EventHandler.java | 66 +++++++++++++++++-- .../admin/handler/GrpcClientHandler.java | 59 +++++++++++++++-- .../admin/handler/HTTPClientHandler.java | 58 ++++++++++++++-- .../runtime/admin/handler/MetricsHandler.java | 45 ++++++++++++- .../admin/handler/RegistryHandler.java | 44 ++++++++++++- .../admin/handler/TCPClientHandler.java | 61 +++++++++++++++-- .../runtime/admin/handler/TopicHandler.java | 60 +++++++++++++++-- 11 files changed, 452 insertions(+), 34 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java index 1614fddfa8..d9db785107 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java @@ -58,6 +58,13 @@ import lombok.Setter; import lombok.extern.slf4j.Slf4j; +/** + * This class is responsible for managing the client connections + * and initializing the client handlers. + *

+ * It starts the AdminController for managing the event store or MQ. + */ + @SuppressWarnings("restriction") @Slf4j public class ClientManageController { @@ -73,6 +80,14 @@ public class ClientManageController { @Setter private AdminWebHookConfigOperationManager adminWebHookConfigOperationManage; + /** + * Constructs a new ClientManageController with the given server instance. + * + * @param eventMeshTCPServer the TCP server instance of EventMesh + * @param eventMeshHTTPServer the HTTP server instance of EventMesh + * @param eventMeshGrpcServer the gRPC server instance of EventMesh + * @param eventMeshRegistry the registry adaptor of EventMesh + */ public ClientManageController(EventMeshTCPServer eventMeshTCPServer, EventMeshHTTPServer eventMeshHTTPServer, EventMeshGrpcServer eventMeshGrpcServer, @@ -81,10 +96,13 @@ public ClientManageController(EventMeshTCPServer eventMeshTCPServer, this.eventMeshHTTPServer = eventMeshHTTPServer; this.eventMeshGrpcServer = eventMeshGrpcServer; this.eventMeshRegistry = eventMeshRegistry; - } - + /** + * Invoke this method to start this controller on the specified port. + * + * @throws IOException if an I/O error occurs while starting the server + */ public void start() throws IOException { int port = eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshServerAdminPort(); HttpServer server = HttpServer.create(new InetSocketAddress(port), 0); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/HttpHandlerManager.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/HttpHandlerManager.java index 032b03581f..47557608f1 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/HttpHandlerManager.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/HttpHandlerManager.java @@ -26,16 +26,35 @@ import com.sun.net.httpserver.HttpServer; /** - * httpHandlerManager + * This class manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} + * for an {@linkplain com.sun.net.httpserver.HttpServer HttpServer}. */ + public class HttpHandlerManager { private final List httpHandlers = new ArrayList<>(); + /** + * Registers an HTTP handler. + * + * @param httpHandler The {@link HttpHandler} to be registered. + * A handler which is invoked to process HTTP exchanges. + * Each HTTP exchange is handled by one of these handlers. + */ public void register(HttpHandler httpHandler) { this.httpHandlers.add(httpHandler); } + /** + * Registers multiple HTTP handlers to a given HttpServer. + *

+ * Each HTTP handler is annotated with the {@link EventHttpHandler} annotation, + * which specifies the path where the handler should be registered. + * + * @param server A HttpServer object that is bound to an IP address and port number + * and listens for incoming TCP connections from clients on this address. + * The registered HTTP handlers will be associated with this server. + */ public void registerHttpHandler(HttpServer server) { httpHandlers.forEach(httpHandler -> { EventHttpHandler eventHttpHandler = httpHandler.getClass().getAnnotation(EventHttpHandler.class); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/AbstractHttpHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/AbstractHttpHandler.java index cfcb85d03c..e13ce6d771 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/AbstractHttpHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/AbstractHttpHandler.java @@ -24,8 +24,12 @@ import lombok.Data; /** - * AbstractHttpHandler + * An abstract class that implements the {@link HttpHandler} interface + * and provides basic functionality for HTTP request handling. + *

+ * Subclasses should extend this class to implement specific HTTP request handling logic. */ + @Data public abstract class AbstractHttpHandler implements HttpHandler { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java index 3232273ece..a98647803a 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/ConfigurationHandler.java @@ -41,8 +41,15 @@ import lombok.extern.slf4j.Slf4j; /** - * The config handler + * This class handles the {@code /configuration} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /}. + *

+ * This handler is responsible for retrieving the current configuration information of the EventMesh node, + * including service name, service environment, and listening ports for various protocols. + * + * @see AbstractHttpHandler */ + @Slf4j @EventHttpHandler(path = "/configuration") public class ConfigurationHandler extends AbstractHttpHandler { @@ -51,6 +58,15 @@ public class ConfigurationHandler extends AbstractHttpHandler { private final EventMeshHTTPConfiguration eventMeshHTTPConfiguration; private final EventMeshGrpcConfiguration eventMeshGrpcConfiguration; + /** + * Constructs a new instance with the provided configurations and HTTP handler manager. + * + * @param eventMeshTCPConfiguration the TCP configuration for EventMesh + * @param eventMeshHTTPConfiguration the HTTP configuration for EventMesh + * @param eventMeshGrpcConfiguration the gRPC configuration for EventMesh + * @param httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} + * for an {@link com.sun.net.httpserver.HttpServer HttpServer}. + */ public ConfigurationHandler( EventMeshTCPConfiguration eventMeshTCPConfiguration, EventMeshHTTPConfiguration eventMeshHTTPConfiguration, @@ -64,7 +80,13 @@ public ConfigurationHandler( } /** - * OPTIONS /configuration + * Handles the OPTIONS request first for {@code /configuration}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -77,7 +99,12 @@ void preflight(HttpExchange httpExchange) throws IOException { } /** - * GET /config Return a response that contains the EventMesh configuration + * Handles the GET request for {@code /configuration}. + *

+ * This method retrieves the EventMesh configuration information and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void get(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.CONTENT_TYPE, EventMeshConstants.APPLICATION_JSON); @@ -123,6 +150,17 @@ void get(HttpExchange httpExchange) throws IOException { } } + /** + * Handles the HTTP requests for {@code /configuration}. + *

+ * It delegates the handling to {@code preflight()} or {@code get()} methods + * based on the request method type (OPTIONS or GET). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()} + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/EventHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/EventHandler.java index 9d88a79523..66fd824ab6 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/EventHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/EventHandler.java @@ -47,14 +47,34 @@ import lombok.extern.slf4j.Slf4j; /** - * The event handler + * This class handles the {@code /event} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /event}. + *

+ * It is responsible for managing operations on events, + * including retrieving the event list and creating events. + *

+ * The GET method supports querying events by {@code topicName}, + * and uses {@code offset} and {@code length} parameters for pagination. + *

+ * An instance of {@link MQAdminWrapper} is used to interact with the messaging system. + * + * @see AbstractHttpHandler + * @see MQAdminWrapper */ + @Slf4j @EventHttpHandler(path = "/event") public class EventHandler extends AbstractHttpHandler { private final MQAdminWrapper admin; + /** + * Constructs a new instance with the specified connector plugin type and HTTP handler manager. + * + * @param connectorPluginType The name of event storage connector plugin. + * @param httpHandlerManager httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} + * for an {@link com.sun.net.httpserver.HttpServer HttpServer}. + */ public EventHandler( String connectorPluginType, HttpHandlerManager httpHandlerManager @@ -69,7 +89,13 @@ public EventHandler( } /** - * OPTIONS /event + * Handles the OPTIONS request first for {@code /event}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -81,6 +107,17 @@ void preflight(HttpExchange httpExchange) throws IOException { out.close(); } + /** + * Converts a query string to a map of key-value pairs. + *

+ * This method takes a query string and parses it to create a map of key-value pairs, + * where each key and value are extracted from the query string separated by '='. + *

+ * If the query string is null, an empty map is returned. + * + * @param query the query string to convert to a map + * @return a map containing the key-value pairs from the query string + */ private Map queryToMap(String query) { if (query == null) { return new HashMap<>(); @@ -98,7 +135,12 @@ private Map queryToMap(String query) { } /** - * GET /event Return the list of event + * Handles the GET request for {@code /event}. + *

+ * This method retrieves the list of events from the {@link MQAdminWrapper} and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void get(HttpExchange httpExchange) { httpExchange.getResponseHeaders().add(EventMeshConstants.CONTENT_TYPE, EventMeshConstants.APPLICATION_JSON); @@ -147,7 +189,12 @@ void get(HttpExchange httpExchange) { } /** - * POST /event Create an event + * Handles the POST request for {@code /event}. + *

+ * This method creates an event based on the request data, then returns {@code 200 OK}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void post(HttpExchange httpExchange) { httpExchange.getResponseHeaders().add(EventMeshConstants.CONTENT_TYPE, EventMeshConstants.APPLICATION_JSON); @@ -179,6 +226,17 @@ void post(HttpExchange httpExchange) { } } + /** + * Handles the HTTP requests for {@code /event}. + *

+ * It delegates the handling to {@code preflight()}, {@code get()} or {@code post()} methods + * based on the request method type (OPTIONS, GET or POST). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/GrpcClientHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/GrpcClientHandler.java index 1c73b098df..6d6dac03dd 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/GrpcClientHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/GrpcClientHandler.java @@ -47,14 +47,29 @@ import lombok.extern.slf4j.Slf4j; /** - * The client handler + * This class handles the {@code /client/grpc} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /grpc}. + *

+ * It is responsible for managing operations on gRPC clients, + * including retrieving the information list of connected gRPC clients + * and deleting gRPC clients by disconnecting their connections based on the provided host and port. + * + * @see AbstractHttpHandler */ + @Slf4j @EventHttpHandler(path = "/client/grpc") public class GrpcClientHandler extends AbstractHttpHandler { private final EventMeshGrpcServer eventMeshGrpcServer; + /** + * Constructs a new instance with the provided server instance and HTTP handler manager. + * + * @param eventMeshGrpcServer the gRPC server instance of EventMesh + * @param httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} for an + * {@link com.sun.net.httpserver.HttpServer HttpServer}. + */ public GrpcClientHandler( EventMeshGrpcServer eventMeshGrpcServer, HttpHandlerManager httpHandlerManager ) { @@ -63,7 +78,13 @@ public GrpcClientHandler( } /** - * OPTIONS /client + * Handles the OPTIONS request first for {@code /client/grpc}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -76,24 +97,34 @@ void preflight(HttpExchange httpExchange) throws IOException { } /** - * DELETE /client/grpc + * Handles the DELETE request for {@code /client/grpc}. + *

+ * This method deletes a connected gRPC client by disconnecting their connections + * based on the provided host and port, then returns {@code 200 OK}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void delete(HttpExchange httpExchange) throws IOException { try (OutputStream out = httpExchange.getResponseBody()) { + // Parse the request body string into a DeleteHTTPClientRequest object String request = HttpExchangeUtils.streamToString(httpExchange.getRequestBody()); DeleteGrpcClientRequest deleteGrpcClientRequest = JsonUtils.parseObject(request, DeleteGrpcClientRequest.class); String url = Objects.requireNonNull(deleteGrpcClientRequest).getUrl(); ConsumerManager consumerManager = eventMeshGrpcServer.getConsumerManager(); Map> clientTable = consumerManager.getClientTable(); + // Find the client that matches the url to be deleted for (List clientList : clientTable.values()) { for (ConsumerGroupClient client : clientList) { if (Objects.equals(client.getUrl(), url)) { + // Call the deregisterClient method to close the gRPC client stream and remove it consumerManager.deregisterClient(client); } } } + // Set the response headers and send a 200 status code empty response httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); httpExchange.sendResponseHeaders(200, 0); } catch (Exception e) { @@ -111,10 +142,16 @@ void delete(HttpExchange httpExchange) throws IOException { } /** - * GET /client/grpc Return a response that contains the list of clients + * Handles the GET request for {@code /client/grpc}. + *

+ * This method retrieves the list of connected gRPC clients and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void list(HttpExchange httpExchange) throws IOException { OutputStream out = httpExchange.getResponseBody(); + // Set the response headers httpExchange.getResponseHeaders().add(EventMeshConstants.CONTENT_TYPE, EventMeshConstants.APPLICATION_JSON); httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -125,6 +162,7 @@ void list(HttpExchange httpExchange) throws IOException { ConsumerManager consumerManager = eventMeshGrpcServer.getConsumerManager(); Map> clientTable = consumerManager.getClientTable(); for (List clientList : clientTable.values()) { + // Convert each Client object to GetClientResponse and add to getClientResponseList for (ConsumerGroupClient client : clientList) { GetClientResponse getClientResponse = new GetClientResponse( Optional.ofNullable(client.env).orElse(""), @@ -143,6 +181,7 @@ void list(HttpExchange httpExchange) throws IOException { } } + // Sort the getClientResponseList by host and port getClientResponseList.sort((lhs, rhs) -> { if (lhs.getHost().equals(rhs.getHost())) { return lhs.getHost().compareTo(rhs.getHost()); @@ -150,6 +189,7 @@ void list(HttpExchange httpExchange) throws IOException { return Integer.compare(rhs.getPort(), lhs.getPort()); }); + // Convert getClientResponseList to JSON and send the response String result = JsonUtils.toJSONString(getClientResponseList); httpExchange.sendResponseHeaders(200, Objects.requireNonNull(result).getBytes(Constants.DEFAULT_CHARSET).length); out.write(result.getBytes(Constants.DEFAULT_CHARSET)); @@ -175,6 +215,17 @@ void list(HttpExchange httpExchange) throws IOException { } } + /** + * Handles the HTTP requests for {@code /client/grpc}. + *

+ * It delegates the handling to {@code preflight()}, {@code list()} or {@code delete()} methods + * based on the request method type (OPTIONS, GET or DELETE). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/HTTPClientHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/HTTPClientHandler.java index 9a57f5c3d6..41a6a980b0 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/HTTPClientHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/HTTPClientHandler.java @@ -45,14 +45,29 @@ import lombok.extern.slf4j.Slf4j; /** - * The client handler + * This class handles the {@code /client/http} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /http}. + *

+ * It is responsible for managing operations on HTTP clients, + * including retrieving the information list of connected HTTP clients + * and deleting HTTP clients by disconnecting their connections based on the provided host and port. + * + * @see AbstractHttpHandler */ + @Slf4j @EventHttpHandler(path = "/client/http") public class HTTPClientHandler extends AbstractHttpHandler { private final EventMeshHTTPServer eventMeshHTTPServer; + /** + * Constructs a new instance with the provided server instance and HTTP handler manager. + * + * @param eventMeshHTTPServer the HTTP server instance of EventMesh + * @param httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} for an + * {@link com.sun.net.httpserver.HttpServer HttpServer}. + */ public HTTPClientHandler( EventMeshHTTPServer eventMeshHTTPServer, HttpHandlerManager httpHandlerManager ) { @@ -61,7 +76,13 @@ public HTTPClientHandler( } /** - * OPTIONS /client + * Handles the OPTIONS request first for {@code /client/http}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -74,18 +95,27 @@ void preflight(HttpExchange httpExchange) throws IOException { } /** - * DELETE /client/http + * Handles the DELETE request for {@code /client/http}. + *

+ * This method deletes a connected HTTP client by disconnecting their connections + * based on the provided host and port, then returns {@code 200 OK}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void delete(HttpExchange httpExchange) throws IOException { try (OutputStream out = httpExchange.getResponseBody()) { + // Parse the request body string into a DeleteHTTPClientRequest object String request = HttpExchangeUtils.streamToString(httpExchange.getRequestBody()); DeleteHTTPClientRequest deleteHTTPClientRequest = JsonUtils.parseObject(request, DeleteHTTPClientRequest.class); String url = Objects.requireNonNull(deleteHTTPClientRequest).getUrl(); for (List clientList : eventMeshHTTPServer.getSubscriptionManager().getLocalClientInfoMapping().values()) { + // Find the client that matches the url to be deleted clientList.removeIf(client -> Objects.equals(client.getUrl(), url)); } + // Set the response headers and send a 200 status code empty response httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); httpExchange.sendResponseHeaders(200, 0); } catch (Exception e) { @@ -103,10 +133,16 @@ void delete(HttpExchange httpExchange) throws IOException { } /** - * GET /client/http Return a response that contains the list of clients + * Handles the GET request for {@code /client/http}. + *

+ * This method retrieves the list of connected HTTP clients and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void list(HttpExchange httpExchange) throws IOException { OutputStream out = httpExchange.getResponseBody(); + // Set the response headers httpExchange.getResponseHeaders().add(EventMeshConstants.CONTENT_TYPE, EventMeshConstants.APPLICATION_JSON); httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -115,6 +151,7 @@ void list(HttpExchange httpExchange) throws IOException { List getClientResponseList = new ArrayList<>(); for (List clientList : eventMeshHTTPServer.getSubscriptionManager().getLocalClientInfoMapping().values()) { + // Convert each Client object to GetClientResponse and add to getClientResponseList for (Client client : clientList) { GetClientResponse getClientResponse = new GetClientResponse( Optional.ofNullable(client.getEnv()).orElse(""), @@ -134,6 +171,7 @@ void list(HttpExchange httpExchange) throws IOException { } } + // Sort the getClientResponseList by host and port getClientResponseList.sort((lhs, rhs) -> { if (lhs.getHost().equals(rhs.getHost())) { return lhs.getHost().compareTo(rhs.getHost()); @@ -141,6 +179,7 @@ void list(HttpExchange httpExchange) throws IOException { return Integer.compare(rhs.getPort(), lhs.getPort()); }); + // Convert getClientResponseList to JSON and send the response String result = JsonUtils.toJSONString(getClientResponseList); httpExchange.sendResponseHeaders(200, Objects.requireNonNull(result).getBytes(Constants.DEFAULT_CHARSET).length); out.write(result.getBytes(Constants.DEFAULT_CHARSET)); @@ -166,6 +205,17 @@ void list(HttpExchange httpExchange) throws IOException { } } + /** + * Handles the HTTP requests for {@code /client/http}. + *

+ * It delegates the handling to {@code preflight()}, {@code list()} or {@code delete()} methods + * based on the request method type (OPTIONS, GET or DELETE). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/MetricsHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/MetricsHandler.java index 2fc89ed9b3..e93eeb4b29 100755 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/MetricsHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/MetricsHandler.java @@ -41,6 +41,16 @@ import lombok.extern.slf4j.Slf4j; +/** + * This class handles the {@code /metrics} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /metrics}. + *

+ * This handler is responsible for retrieving summary information of metrics, + * including HTTP and TCP metrics. + * + * @see AbstractHttpHandler + */ + @Slf4j @EventHttpHandler(path = "/metrics") public class MetricsHandler extends AbstractHttpHandler { @@ -48,6 +58,14 @@ public class MetricsHandler extends AbstractHttpHandler { private final HttpSummaryMetrics httpSummaryMetrics; private final TcpSummaryMetrics tcpSummaryMetrics; + /** + * Constructs a new instance with the provided EventMesh server instance and HTTP handler manager. + * + * @param eventMeshHTTPServer the HTTP server instance of EventMesh + * @param eventMeshTcpServer the TCP server instance of EventMesh + * @param httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} + * for an {@link com.sun.net.httpserver.HttpServer HttpServer}. + */ public MetricsHandler(EventMeshHTTPServer eventMeshHTTPServer, EventMeshTCPServer eventMeshTcpServer, HttpHandlerManager httpHandlerManager) { @@ -57,7 +75,13 @@ public MetricsHandler(EventMeshHTTPServer eventMeshHTTPServer, } /** - * OPTIONS /metrics + * Handles the OPTIONS request first for {@code /metrics}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -70,7 +94,12 @@ void preflight(HttpExchange httpExchange) throws IOException { } /** - * GET /metrics Return a response that contains a summary of metrics + * Handles the GET request for {@code /metrics}. + *

+ * This method retrieves the EventMesh metrics summary and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void get(HttpExchange httpExchange) throws IOException { OutputStream out = httpExchange.getResponseBody(); @@ -149,7 +178,17 @@ void get(HttpExchange httpExchange) throws IOException { } } - + /** + * Handles the HTTP requests for {@code /metrics}. + *

+ * It delegates the handling to {@code preflight()} or {@code get()} methods + * based on the request method type (OPTIONS or GET). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()} + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/RegistryHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/RegistryHandler.java index cd85b1dbaa..e3bd4c2f94 100755 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/RegistryHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/RegistryHandler.java @@ -42,12 +42,30 @@ import lombok.extern.slf4j.Slf4j; +/** + * This class handles the {@code /registry} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /registry}. + *

+ * This handler is responsible for retrieving a list of EventMesh clusters from the + * {@link Registry} object, encapsulate them into a list of {@link GetRegistryResponse} objects, + * and sort them by {@code EventMeshClusterName}. + * + * @see AbstractHttpHandler + */ + @Slf4j @EventHttpHandler(path = "/registry") public class RegistryHandler extends AbstractHttpHandler { private final Registry eventMeshRegistry; + /** + * Constructs a new instance with the specified {@link Registry} and {@link HttpHandlerManager}. + * + * @param eventMeshRegistry The {@link Registry} instance used for retrieving EventMesh cluster information. + * @param httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} + * for an {@linkplain com.sun.net.httpserver.HttpServer HttpServer}. + */ public RegistryHandler(Registry eventMeshRegistry, HttpHandlerManager httpHandlerManager) { super(httpHandlerManager); @@ -55,7 +73,13 @@ public RegistryHandler(Registry eventMeshRegistry, } /** - * OPTION /registry + * Handles the OPTIONS request first for {@code /registry}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -67,7 +91,12 @@ void preflight(HttpExchange httpExchange) throws IOException { } /** - * GET /registry Return a response that contains the list of EventMesh clusters + * Handles the GET request for {@code /registry}. + *

+ * This method retrieves a list of EventMesh clusters and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void get(HttpExchange httpExchange) throws IOException { OutputStream out = httpExchange.getResponseBody(); @@ -119,6 +148,17 @@ void get(HttpExchange httpExchange) throws IOException { } } + /** + * Handles the HTTP requests for {@code /registry}. + *

+ * It delegates the handling to {@code preflight()} or {@code get()} methods + * based on the request method type (OPTIONS or GET). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()} + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TCPClientHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TCPClientHandler.java index ae0a2d677c..d85d359aef 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TCPClientHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TCPClientHandler.java @@ -51,14 +51,29 @@ import lombok.extern.slf4j.Slf4j; /** - * The client handler + * This class handles the {@code /client/tcp} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /tcp}. + *

+ * It is responsible for managing operations on TCP clients, + * including retrieving the information list of connected TCP clients + * and deleting TCP clients by disconnecting their connections based on the provided host and port. + * + * @see AbstractHttpHandler */ + @Slf4j @EventHttpHandler(path = "/client/tcp") public class TCPClientHandler extends AbstractHttpHandler { private final EventMeshTCPServer eventMeshTCPServer; + /** + * Constructs a new instance with the provided server instance and HTTP handler manager. + * + * @param eventMeshTCPServer the TCP server instance of EventMesh + * @param httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} + * for an {@link com.sun.net.httpserver.HttpServer HttpServer}. + */ public TCPClientHandler( EventMeshTCPServer eventMeshTCPServer, HttpHandlerManager httpHandlerManager ) { @@ -67,7 +82,13 @@ public TCPClientHandler( } /** - * OPTIONS /client + * Handles the OPTIONS request first for {@code /client/tcp}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -80,11 +101,18 @@ void preflight(HttpExchange httpExchange) throws IOException { } /** - * DELETE /client/tcp + * Handles the DELETE request for {@code /client/tcp}. + *

+ * This method deletes a connected TCP client by disconnecting their connections + * based on the provided host and port, then returns {@code 200 OK}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void delete(HttpExchange httpExchange) throws IOException { try (OutputStream out = httpExchange.getResponseBody()) { + // Parse the request body string into a DeleteTCPClientRequest object String request = HttpExchangeUtils.streamToString(httpExchange.getRequestBody()); DeleteTCPClientRequest deleteTCPClientRequest = JsonUtils.parseObject(request, DeleteTCPClientRequest.class); String host = Objects.requireNonNull(deleteTCPClientRequest).getHost(); @@ -94,7 +122,9 @@ void delete(HttpExchange httpExchange) throws IOException { ConcurrentHashMap sessionMap = clientSessionGroupMapping.getSessionMap(); if (!sessionMap.isEmpty()) { for (Map.Entry entry : sessionMap.entrySet()) { + // Find the Session object that matches the host and port to be deleted if (entry.getKey().getHostString().equals(host) && entry.getKey().getPort() == port) { + // Call the serverGoodby2Client method in EventMeshTcp2Client to disconnect the client's connection EventMeshTcp2Client.serverGoodby2Client( eventMeshTCPServer, entry.getValue(), @@ -104,6 +134,7 @@ void delete(HttpExchange httpExchange) throws IOException { } } + // Set the response headers and send a 200 status code empty response httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); httpExchange.sendResponseHeaders(200, 0); } catch (Exception e) { @@ -121,17 +152,24 @@ void delete(HttpExchange httpExchange) throws IOException { } /** - * GET /client/tcp Return a response that contains the list of clients + * Handles the GET request for {@code /client/tcp}. + *

+ * This method retrieves the list of connected TCP clients and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void list(HttpExchange httpExchange) throws IOException { try (OutputStream out = httpExchange.getResponseBody()) { + // Set the response headers httpExchange.getResponseHeaders().add(EventMeshConstants.CONTENT_TYPE, EventMeshConstants.APPLICATION_JSON); httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); - // Get the list of TCP clients + // Get the list of connected TCP clients ClientSessionGroupMapping clientSessionGroupMapping = eventMeshTCPServer.getClientSessionGroupMapping(); Map sessionMap = clientSessionGroupMapping.getSessionMap(); List getClientResponseList = new ArrayList<>(); + // Convert each Session object to GetClientResponse and add to getClientResponseList for (Session session : sessionMap.values()) { UserAgent userAgent = session.getClient(); GetClientResponse getClientResponse = new GetClientResponse( @@ -150,6 +188,7 @@ void list(HttpExchange httpExchange) throws IOException { getClientResponseList.add(getClientResponse); } + // Sort the getClientResponseList by host and port getClientResponseList.sort((lhs, rhs) -> { if (lhs.getHost().equals(rhs.getHost())) { return lhs.getHost().compareTo(rhs.getHost()); @@ -157,6 +196,7 @@ void list(HttpExchange httpExchange) throws IOException { return Integer.compare(rhs.getPort(), lhs.getPort()); }); + // Convert getClientResponseList to JSON and send the response String result = JsonUtils.toJSONString(getClientResponseList); httpExchange.sendResponseHeaders(200, Objects.requireNonNull(result).getBytes(Constants.DEFAULT_CHARSET).length); out.write(result.getBytes(Constants.DEFAULT_CHARSET)); @@ -174,6 +214,17 @@ void list(HttpExchange httpExchange) throws IOException { } } + /** + * Handles the HTTP requests for {@code /client/tcp}. + *

+ * It delegates the handling to {@code preflight()}, {@code list()} or {@code delete()} methods + * based on the request method type (OPTIONS, GET or DELETE). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TopicHandler.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TopicHandler.java index aa636b1b0e..920f9b732b 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TopicHandler.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/handler/TopicHandler.java @@ -43,14 +43,32 @@ import lombok.extern.slf4j.Slf4j; /** - * The topic handler + * This class handles the {@code /topic} endpoint, + * corresponding to the {@code eventmesh-dashboard} path {@code /topic}, + * including the "Create Topic" and "Remove" buttons. + *

+ * It provides functionality for managing topics, including retrieving the list of topics (GET), + * creating a new topic (POST), and deleting an existing topic (DELETE). + *

+ * An instance of {@link MQAdminWrapper} is used to interact with the messaging system. + * + * @see AbstractHttpHandler + * @see MQAdminWrapper */ + @Slf4j @EventHttpHandler(path = "/topic") public class TopicHandler extends AbstractHttpHandler { private final MQAdminWrapper admin; + /** + * Constructs a new instance with the specified connector plugin type and HTTP handler manager. + * + * @param connectorPluginType The name of event storage connector plugin. + * @param httpHandlerManager httpHandlerManager Manages the registration of {@linkplain com.sun.net.httpserver.HttpHandler HttpHandler} + * for an {@link com.sun.net.httpserver.HttpServer HttpServer}. + */ public TopicHandler( String connectorPluginType, HttpHandlerManager httpHandlerManager @@ -65,7 +83,13 @@ public TopicHandler( } /** - * OPTIONS /topic + * Handles the OPTIONS request first for {@code /topic}. + *

+ * This method adds CORS (Cross-Origin Resource Sharing) response headers to + * the {@link HttpExchange} object and sends a 200 status code. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void preflight(HttpExchange httpExchange) throws IOException { httpExchange.getResponseHeaders().add(EventMeshConstants.HANDLER_ORIGIN, "*"); @@ -78,7 +102,12 @@ void preflight(HttpExchange httpExchange) throws IOException { } /** - * GET /topic Return a response that contains the list of topics + * Handles the GET request for {@code /topic}. + *

+ * This method retrieves the list of topics from the {@link MQAdminWrapper} and returns it as a JSON response. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void get(HttpExchange httpExchange) throws IOException { @@ -104,7 +133,12 @@ void get(HttpExchange httpExchange) throws IOException { } /** - * POST /topic Create a topic if it doesn't exist + * Handles the POST request for {@code /topic}. + *

+ * This method creates a topic if it doesn't exist based on the request data, then returns {@code 200 OK}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void post(HttpExchange httpExchange) throws IOException { @@ -131,7 +165,12 @@ void post(HttpExchange httpExchange) throws IOException { } /** - * DELETE /topic Delete a topic if it exists + * Handles the DELETE request for {@code /topic}. + *

+ * This method deletes a topic if it exists based on the request data, then returns {@code 200 OK}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request */ void delete(HttpExchange httpExchange) throws IOException { @@ -157,6 +196,17 @@ void delete(HttpExchange httpExchange) throws IOException { } } + /** + * Handles the HTTP requests for {@code /topic}. + *

+ * It delegates the handling to {@code preflight()}, {@code get()}, {@code post()} or {@code delete()} methods + * based on the request method type (OPTIONS, GET, POST or DELETE). + *

+ * This method is an implementation of {@linkplain com.sun.net.httpserver.HttpHandler#handle(HttpExchange) HttpHandler.handle()}. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs while handling the request + */ @Override public void handle(HttpExchange httpExchange) throws IOException { switch (HttpMethod.valueOf(httpExchange.getRequestMethod())) { From d8b99af93a49a9db596c45b7ad72830ce0e73bc9 Mon Sep 17 00:00:00 2001 From: Pil0tXia <41445332+Pil0tXia@users.noreply.github.com> Date: Fri, 14 Jul 2023 10:32:06 +0800 Subject: [PATCH 061/333] [ISSUE #4182] Add JavaDoc and Comments for eventmesh-admin-rocketmq Module (#4183) * doc: Write JavaDoc and comments for AdminController * doc: Write JavaDoc and comments for TopicsHandler * doc: Write JavaDoc and comments for TopicCreateRequest * doc: Write JavaDoc and comments for TopicResponse * doc: Write JavaDoc and comments for RequestMapping * doc: Write JavaDoc and comments for UrlMappingPattern * doc: Update JavaDoc of ClientManageController#start * chore: remove 1 old doc to solve the conflict --- .../rocketmq/controller/AdminController.java | 16 ++++++++ .../admin/rocketmq/handler/TopicsHandler.java | 38 +++++++++++++++++- .../rocketmq/request/TopicCreateRequest.java | 23 +++++++++++ .../rocketmq/response/TopicResponse.java | 9 +++++ .../admin/rocketmq/util/RequestMapping.java | 40 +++++++++++++++++++ .../rocketmq/util/UrlMappingPattern.java | 18 +++++++++ .../controller/ClientManageController.java | 7 +++- 7 files changed, 148 insertions(+), 3 deletions(-) diff --git a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/controller/AdminController.java b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/controller/AdminController.java index 573a0c3661..4398f72389 100644 --- a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/controller/AdminController.java +++ b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/controller/AdminController.java @@ -28,14 +28,30 @@ import lombok.extern.slf4j.Slf4j; +/** + * This class is responsible for managing the admin module. + *

+ * It provides a method to run the admin module with the specified {@link HttpServer} + * and handles requests related to topics management. + */ + @Slf4j public class AdminController { public AdminController() { } + /** + * Invoke this method to run the admin module. + * + * @param server A HttpServer is bound to an IP address and port number + * and listens for incoming TCP connections from clients on this address. + * @throws IOException + * @see HttpServer + */ public void run(HttpServer server) throws IOException { + // Creates a mapping from API URI path to the exchange handler on this HttpServer. server.createContext(TOPIC_MANAGE_PATH, new TopicsHandler()); log.info("EventMesh-Admin Controller server context created successfully"); diff --git a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/handler/TopicsHandler.java b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/handler/TopicsHandler.java index 836f293ef4..4a7914186b 100644 --- a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/handler/TopicsHandler.java +++ b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/handler/TopicsHandler.java @@ -39,33 +39,65 @@ import lombok.extern.slf4j.Slf4j; +/** + * This class is responsible for handling HTTP requests related to topics. + *

+ * It implements the {@link HttpHandler} interface to process incoming requests, + * which is used by the {@linkplain com.sun.net.httpserver.HttpServer HttpServer}. + *

+ * It uses the {@link RequestMapping} class to match the request URL and the HTTP method. + *

+ * It uses the {@link TopicCreateRequest} class to parse the request body + * and the {@link TopicResponse} class to create the response. + * + * @see HttpHandler + */ + @Slf4j public class TopicsHandler implements HttpHandler { + /** + * Handles the HTTP request for creating topics. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs + * @see HttpHandler#handle(HttpExchange) + */ @Override public void handle(HttpExchange httpExchange) throws IOException { - // create a new topic + // If the request matches, then create a new topic. if (RequestMapping.postMapping(TOPIC_MANAGE_PATH, httpExchange)) { createTopicHandler(httpExchange); return; } + // Otherwise, it prepares an error response and sends it back to the client. OutputStream out = httpExchange.getResponseBody(); httpExchange.sendResponseHeaders(500, 0); String result = String.format("Please check your request url: %s", httpExchange.getRequestURI()); log.error(result); + // Write the response data. out.write(result.getBytes(Constants.DEFAULT_CHARSET)); } + /** + * Handles the creation of a new topic. + * + * @param httpExchange the exchange containing the request from the client and used to send the response + * @throws IOException if an I/O error occurs + */ public void createTopicHandler(HttpExchange httpExchange) throws IOException { String result; try (OutputStream out = httpExchange.getResponseBody()) { + // Parses the request body into a TopicCreateRequest object. String params = NetUtils.parsePostBody(httpExchange); TopicCreateRequest topicCreateRequest = JsonUtils.parseObject(params, TopicCreateRequest.class); + // Gets the topic name from the request body. String topic = topicCreateRequest.getTopic(); + // If the topic name is empty, then returns an error message. if (StringUtils.isBlank(topic)) { result = "Create topic failed. Parameter topic not found."; log.error(result); @@ -74,7 +106,7 @@ public void createTopicHandler(HttpExchange httpExchange) throws IOException { } //TBD: A new rocketmq service will be implemented for creating topics - TopicResponse topicResponse = null; + TopicResponse topicResponse = null; // Temporary variable for topic response if (topicResponse != null) { log.info("create a new topic: {}", topic); httpExchange.getResponseHeaders().add(CONTENT_TYPE, APPLICATION_JSON); @@ -83,12 +115,14 @@ public void createTopicHandler(HttpExchange httpExchange) throws IOException { log.info(result); out.write(result.getBytes(Constants.DEFAULT_CHARSET)); } else { + // If the topic creation fails, then returns an error message. httpExchange.sendResponseHeaders(500, 0); result = TOPIC_ERROR; log.error(result); out.write(result.getBytes(Constants.DEFAULT_CHARSET)); } } catch (Exception e) { + // If an exception occurs, then returns an error message. httpExchange.getResponseHeaders().add(CONTENT_TYPE, APPLICATION_JSON); httpExchange.sendResponseHeaders(500, 0); result = TOPIC_ERROR; diff --git a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/request/TopicCreateRequest.java b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/request/TopicCreateRequest.java index 81a99b1cb3..925b43889a 100644 --- a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/request/TopicCreateRequest.java +++ b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/request/TopicCreateRequest.java @@ -22,12 +22,35 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +/** + * A data transfer object (DTO) that represents a request to create a new topic. + *

+ * This class provides a convenient way to encapsulate the topic information when creating a new topic. + *

+ * Empty or null values will not be included in the serialized JSON. + *

+ * Any unknown properties will be ignored when deserializing JSON into this class. + *

+ * Example usage: + *

+ * String params = NetUtils.parsePostBody(httpExchange);
+ * TopicCreateRequest topicCreateRequest = JsonUtils.parseObject(params, TopicCreateRequest.class);
+ * String topic = topicCreateRequest.getTopic();
+ * topicCreateRequest.setTopic("UpdatedTopic");
+ * 
+ */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonIgnoreProperties(ignoreUnknown = true) public class TopicCreateRequest { private String topic; + /** + * Constructs a new instance of {@link TopicCreateRequest}. + * + * @param topic the topic for the request + */ @JsonCreator public TopicCreateRequest(@JsonProperty("topic") String topic) { this.topic = topic; diff --git a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/response/TopicResponse.java b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/response/TopicResponse.java index 9ccdc2bb85..c9b1590a77 100644 --- a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/response/TopicResponse.java +++ b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/response/TopicResponse.java @@ -20,6 +20,15 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +/** + * A data transfer object (DTO) that represents a response containing a topic and its creation time. + *

+ * It includes the values returned upon the creation of a new topic, an update to an existing topic, + * or the retrieval of a topic's details. + *

+ * It is used to encapsulate the topic information being sent to the client from the server. + */ + public class TopicResponse { private String topic; diff --git a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java index 2158cb2b1c..914e00c836 100644 --- a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java +++ b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/RequestMapping.java @@ -23,25 +23,65 @@ import lombok.experimental.UtilityClass; +/** + * This class provides utility methods for handling HTTP request mappings. + */ + @UtilityClass public class RequestMapping { + /** + * Performs a POST mapping for a specific URL. + * + * @param value the URL pattern to match + * @param httpExchange the exchange containing the request from the client and used to send the response + * @return {@code true} if the URL pattern matches and the HTTP method is POST, {@code false} otherwise + */ public boolean postMapping(String value, HttpExchange httpExchange) { return isUrlMatch(value, httpExchange, HttpMethod.POST.name()); } + /** + * Performs a GET mapping for a specific URL. + * + * @param value the URL pattern to match + * @param httpExchange the exchange containing the request from the client and used to send the response + * @return {@code true} if the URL pattern matches and the HTTP method is GET, {@code false} otherwise + */ public boolean getMapping(String value, HttpExchange httpExchange) { return isUrlMatch(value, httpExchange, HttpMethod.GET.name()); } + /** + * Performs a PUT mapping for a specific URL. + * + * @param value the URL pattern to match + * @param httpExchange the exchange containing the request from the client and used to send the response + * @return {@code true} if the URL pattern matches and the HTTP method is PUT, {@code false} otherwise + */ public boolean putMapping(String value, HttpExchange httpExchange) { return isUrlMatch(value, httpExchange, HttpMethod.PUT.name()); } + /** + * Performs a DELETE mapping for a specific URL. + * + * @param value the URL pattern to match + * @param httpExchange the exchange containing the request from the client and used to send the response + * @return {@code true} if the URL pattern matches and the HTTP method is DELETE, {@code false} otherwise + */ public boolean deleteMapping(String value, HttpExchange httpExchange) { return isUrlMatch(value, httpExchange, HttpMethod.DELETE.name()); } + /** + * Checks if the URL pattern matches the request URI and the HTTP method is the specified method type. + * + * @param value the URL pattern to match + * @param httpExchange the exchange containing the request from the client and used to send the response + * @param methodType the HTTP method type to check against + * @return {@code true} if the URL pattern matches and the HTTP method is the specified method type, {@code false} otherwise + */ private boolean isUrlMatch(String value, HttpExchange httpExchange, String methodType) { if (methodType.equalsIgnoreCase(httpExchange.getRequestMethod())) { String requestUri = httpExchange.getRequestURI().getPath(); diff --git a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java index 994f471c86..254a3c8ca3 100644 --- a/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java +++ b/eventmesh-admin/eventmesh-admin-rocketmq/src/main/java/org/apache/eventmesh/admin/rocketmq/util/UrlMappingPattern.java @@ -25,6 +25,11 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +/** + * Represents a URL mapping pattern for routing purposes. + * The pattern can include variable path parameters or query strings. + */ + public class UrlMappingPattern { private static final String URL_PARAMETER_REGEX = "\\{(\\w*?)\\}"; @@ -55,6 +60,13 @@ public String getMappingPattern() { return urlMappingPattern.replaceFirst(URL_FORMAT_REGEX, ""); } + /** + * Extracts path parameters from the given URL and returns a {@link Map} of parameter names to values. + * + * @param url the URL from which to extract path parameters + * @return a {@link Map} containing path parameter names and their corresponding values, + * or null if the URL does not match the defined URL mapping pattern + */ public Map extractPathParameterValues(String url) { Matcher matcher = compiledUrlMappingPattern.matcher(url); if (matcher.matches()) { @@ -81,6 +93,12 @@ private void acquireParamNames() { } } + /** + * Extracts parameters from the provided {@link Matcher} object and returns a {@link Map} of parameter names to values. + * + * @param matcher the Matcher object used to match and capture parameter values + * @return a {@link Map} containing parameter names and their corresponding values + */ private Map extractParameters(Matcher matcher) { Map values = new HashMap<>((int) (matcher.groupCount() / 0.75f + 1)); for (int i = 0; i < matcher.groupCount(); i++) { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java index d9db785107..4d314bc0f3 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/admin/controller/ClientManageController.java @@ -104,15 +104,20 @@ public ClientManageController(EventMeshTCPServer eventMeshTCPServer, * @throws IOException if an I/O error occurs while starting the server */ public void start() throws IOException { + // Get the server's admin port. int port = eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshServerAdminPort(); + // Create an HTTP server and bind it to the specified port. HttpServer server = HttpServer.create(new InetSocketAddress(port), 0); HttpHandlerManager httpHandlerManager = new HttpHandlerManager(); - //todo Optimized for automatic injection + //TODO: Optimized for automatic injection + + // Initialize the client handler and register it with the HTTP handler manager. initClientHandler(eventMeshTCPServer, eventMeshHTTPServer, eventMeshGrpcServer, eventMeshRegistry, httpHandlerManager); + // Register the handlers from the HTTP handler manager with the HTTP server. httpHandlerManager.registerHttpHandler(server); AdminController adminController = new AdminController(); adminController.run(server); From f2bef69bfdcb867ae57113663dcca16df57a2998 Mon Sep 17 00:00:00 2001 From: ruhshan Date: Fri, 14 Jul 2023 08:32:43 +0600 Subject: [PATCH 062/333] [ISSUE #3836] Add proper access modifers for HttpEventWrapper (#4177) * Make headerMap and sysHeaderMap transient * Make public fields private in HttpEventWrapper --- .../common/protocol/http/HttpEventWrapper.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java index 3b40d8c163..4dff89c677 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java @@ -48,23 +48,23 @@ public class HttpEventWrapper implements ProtocolTransportObject { public static final long serialVersionUID = -8547334421415366981L; - private Map headerMap = new HashMap<>(); + private transient Map headerMap = new HashMap<>(); - private Map sysHeaderMap = new HashMap<>(); + private transient Map sysHeaderMap = new HashMap<>(); private byte[] body; private String requestURI; - public String httpMethod; + private String httpMethod; - public String httpVersion; + private String httpVersion; //Command request time - public long reqTime; + private long reqTime; //Command response time - public long resTime; + private long resTime; private HttpResponseStatus httpResponseStatus = HttpResponseStatus.OK; From d9b2d443fb4fba43adc1a5a1ed8203cd20ecdaa7 Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Fri, 14 Jul 2023 11:14:28 +0800 Subject: [PATCH 063/333] add license for eventmesh-sdk-go --- .../LICENSE-github.com-cespare-xxhash-v2.txt | 22 ++ .../go/LICENSE-github.com-cespare-xxhash.txt | 22 ++ ...CENSE-github.com-cloudevents-sdk-go-v2.txt | 201 +++++++++++++++++ .../go/LICENSE-github.com-google-uuid.txt | 27 +++ .../LICENSE-github.com-json-iterator-go.txt | 21 ++ .../go/LICENSE-github.com-panjf2000-ants.txt | 21 ++ .../go/LICENSE-github.com-sony-sonyflake.txt | 21 ++ .../LICENSE-github.com-stretchr-testify.txt | 21 ++ .../go/LICENSE-go.uber.org-atomic.txt | 19 ++ .../licenses/go/LICENSE-go.uber.org-zap.txt | 19 ++ .../go/LICENSE-google.golang.org-grpc.txt | 202 ++++++++++++++++++ .../go/LICENSE-google.golang.org-protobuf.txt | 202 ++++++++++++++++++ 12 files changed, 798 insertions(+) create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt create mode 100644 tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt new file mode 100644 index 0000000000..10222e14e2 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash-v2.txt @@ -0,0 +1,22 @@ +Copyright (c) 2016 Caleb Spare + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt new file mode 100644 index 0000000000..10222e14e2 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cespare-xxhash.txt @@ -0,0 +1,22 @@ +Copyright (c) 2016 Caleb Spare + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt new file mode 100644 index 0000000000..f49a4e16e6 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-cloudevents-sdk-go-v2.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt new file mode 100644 index 0000000000..0c2c410a76 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-google-uuid.txt @@ -0,0 +1,27 @@ +Copyright (c) 2009,2014 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt new file mode 100644 index 0000000000..c7684dea88 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-json-iterator-go.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 json-iterator + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt new file mode 100644 index 0000000000..e257a9ebd6 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-panjf2000-ants.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Andy Pan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt new file mode 100644 index 0000000000..049a827f3f --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-sony-sonyflake.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright 2015 Sony Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt b/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt new file mode 100644 index 0000000000..0be77a0bef --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-github.com-stretchr-testify.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt new file mode 100644 index 0000000000..721b703b60 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-atomic.txt @@ -0,0 +1,19 @@ +Copyright (c) 2016 Uber Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt new file mode 100644 index 0000000000..2cf1638263 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-go.uber.org-zap.txt @@ -0,0 +1,19 @@ +Copyright (c) 2016-2017 Uber Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt new file mode 100644 index 0000000000..7a4a3ea242 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-grpc.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. \ No newline at end of file diff --git a/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt new file mode 100644 index 0000000000..7a4a3ea242 --- /dev/null +++ b/tools/third-party-licenses/licenses/go/LICENSE-google.golang.org-protobuf.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. \ No newline at end of file From 89464125c3a34c9598d4107a3014c256abdb189e Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Fri, 14 Jul 2023 11:17:23 +0800 Subject: [PATCH 064/333] modify settings.gradle --- settings.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 0b6a386e98..405d64d264 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,7 +26,6 @@ include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' include 'eventmesh-connectors:eventmesh-connector-rocketmq' include 'eventmesh-connectors:eventmesh-connector-openfunction' -include 'eventmesh-connectors:eventmesh-connector-rocketmq' include 'eventmesh-storage-plugin:eventmesh-storage-api' include 'eventmesh-storage-plugin:eventmesh-storage-standalone' include 'eventmesh-storage-plugin:eventmesh-storage-kafka' From d9f1087e3102751f15d5ae37c640ea1193900214 Mon Sep 17 00:00:00 2001 From: Kartik Tayal <47282169+kartiktayal@users.noreply.github.com> Date: Fri, 14 Jul 2023 11:55:07 +0530 Subject: [PATCH 065/333] [ISSUE #4197] Use switch instead of if else Fix #4197 Signed-off-by: Kartik Tayal --- .../grpc/push/WebhookPushRequest.java | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/push/WebhookPushRequest.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/push/WebhookPushRequest.java index 662774fc4b..42ef037d81 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/push/WebhookPushRequest.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/push/WebhookPushRequest.java @@ -201,10 +201,17 @@ private ResponseHandler handleResponse(String selectedPushUrl) { "message|eventMesh2client|{}|url={}|topic={}|bizSeqNo={}" + "|uniqueId={}|cost={}", result, selectedPushUrl, EventMeshCloudEventUtils.getSubject(eventMeshCloudEvent), EventMeshCloudEventUtils.getSeqNum(eventMeshCloudEvent), EventMeshCloudEventUtils.getUniqueId(eventMeshCloudEvent), cost); - if (result == ClientRetCode.OK || result == ClientRetCode.FAIL) { - complete(); - } else if (result == ClientRetCode.RETRY || result == ClientRetCode.NOLISTEN) { - delayRetry(); + switch (result) { + case OK: + case FAIL: + complete(); + break; + case RETRY: + case NOLISTEN: + delayRetry(); + break; + default: + //do nothing } } return new Object(); @@ -237,27 +244,23 @@ private List getUrl() { List localIdcUrl = MapUtils.getObject(urls, eventMeshGrpcConfiguration.getEventMeshIDC(), null); if (CollectionUtils.isNotEmpty(localIdcUrl)) { - if (subscriptionMode == SubscriptionMode.CLUSTERING) { - return Collections.singletonList(localIdcUrl.get((startIdx + retryTimes) % localIdcUrl.size())); - } else if (subscriptionMode == SubscriptionMode.BROADCASTING) { - return localIdcUrl; - } else { - MESSAGE_LOGGER.error("Invalid Subscription Mode, no message returning back to subscriber."); - return Collections.emptyList(); - } + return getStringList(localIdcUrl); + } else if (CollectionUtils.isNotEmpty(totalUrls)) { + return getStringList(totalUrls); } + MESSAGE_LOGGER.error("No event emitters from subscriber, no message returning."); + return Collections.emptyList(); + } - if (CollectionUtils.isNotEmpty(totalUrls)) { - if (subscriptionMode == SubscriptionMode.CLUSTERING) { - return Collections.singletonList(totalUrls.get((startIdx + retryTimes) % totalUrls.size())); - } else if (subscriptionMode == SubscriptionMode.BROADCASTING) { - return totalUrls; - } else { + private List getStringList(List stringList) { + switch (subscriptionMode) { + case CLUSTERING: + return Collections.singletonList(stringList.get((startIdx + retryTimes) % stringList.size())); + case BROADCASTING: + return stringList; + default: MESSAGE_LOGGER.error("Invalid Subscription Mode, no message returning back to subscriber."); return Collections.emptyList(); - } } - MESSAGE_LOGGER.error("No event emitters from subscriber, no message returning."); - return Collections.emptyList(); } } From 2516df402a242a02f40f23f529c19bef58fd474d Mon Sep 17 00:00:00 2001 From: Pil0tXia <41445332+Pil0tXia@users.noreply.github.com> Date: Fri, 14 Jul 2023 14:25:35 +0800 Subject: [PATCH 066/333] [ISSUE #4215] Correct typos and Remove redundant keyword for AdminWebHookConfigOperationManager (#4216) * Optimize: Correct oldAccesssible typos to oldAccessible and add comments * Optimize: Remove redundant transient keyword --- .../admin/AdminWebHookConfigOperationManager.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/eventmesh-webhook/eventmesh-webhook-admin/src/main/java/org/apache/eventmesh/webhook/admin/AdminWebHookConfigOperationManager.java b/eventmesh-webhook/eventmesh-webhook-admin/src/main/java/org/apache/eventmesh/webhook/admin/AdminWebHookConfigOperationManager.java index 5b4ad167b1..5c28999476 100644 --- a/eventmesh-webhook/eventmesh-webhook-admin/src/main/java/org/apache/eventmesh/webhook/admin/AdminWebHookConfigOperationManager.java +++ b/eventmesh-webhook/eventmesh-webhook-admin/src/main/java/org/apache/eventmesh/webhook/admin/AdminWebHookConfigOperationManager.java @@ -36,7 +36,7 @@ @Slf4j public class AdminWebHookConfigOperationManager { - private static final transient Map> WEBHOOK_CONFIG_OPERATION_MAP + private static final Map> WEBHOOK_CONFIG_OPERATION_MAP = new HashMap<>(); static { @@ -67,16 +67,19 @@ public void init() throws InvocationTargetException, InstantiationException, Ill final Constructor constructor = WEBHOOK_CONFIG_OPERATION_MAP.get(operationMode).getDeclaredConstructor(Properties.class); - final boolean oldAccesssible = constructor.isAccessible(); + // Save the original accessibility of constructor + final boolean oldAccessible = constructor.isAccessible(); try { constructor.setAccessible(true); final Properties operationProperties = adminConfiguration.getOperationProperties(); if (log.isInfoEnabled()) { log.info("operationMode is {} properties is {} ", operationMode, operationProperties); } + // Affects which implementation of the WebHookConfigOperation interface is used. this.webHookConfigOperation = constructor.newInstance(operationProperties); } finally { - constructor.setAccessible(oldAccesssible); + // Restore the original accessibility of constructor + constructor.setAccessible(oldAccessible); } } From 27f0caa70a813f784b4d3f125c9287ad26ff578b Mon Sep 17 00:00:00 2001 From: mxsm Date: Fri, 14 Jul 2023 14:25:52 +0800 Subject: [PATCH 067/333] [ISSUE#4213]Resolve the compilation warning for the lombok annotation @Data (#4214) --- .../config/OpenFunctionServerConfig.java | 2 + .../sink/config/OpenFunctionSinkConfig.java | 2 + .../config/OpenFunctionSourceConfig.java | 2 + .../rocketmq/config/RocketMQServerConfig.java | 2 + .../sink/config/RocketMQSinkConfig.java | 2 + .../source/config/RocketMQSourceConfig.java | 2 + .../openconnect/api/config/SinkConfig.java | 2 + .../openconnect/api/config/SourceConfig.java | 2 + .../trace/api/AbstractTraceService.java | 43 ++++++++++--------- .../trace/jaeger/JaegerTraceService.java | 6 ++- .../trace/pinpoint/PinpointTraceService.java | 6 ++- .../trace/zipkin/ZipkinTraceService.java | 6 ++- 12 files changed, 51 insertions(+), 26 deletions(-) diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java index 293dd13614..2cf28000f5 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/config/OpenFunctionServerConfig.java @@ -20,8 +20,10 @@ import org.apache.eventmesh.openconnect.api.config.Config; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class OpenFunctionServerConfig extends Config { private int serverPort; diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java index a1ee99f687..6e4fbe3dc4 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/sink/config/OpenFunctionSinkConfig.java @@ -20,8 +20,10 @@ import org.apache.eventmesh.openconnect.api.config.SinkConfig; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class OpenFunctionSinkConfig extends SinkConfig { public SinkConnectorConfig sinkConnectorConfig; diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java index 6baf076c1a..f3f5b52756 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/source/config/OpenFunctionSourceConfig.java @@ -20,8 +20,10 @@ import org.apache.eventmesh.openconnect.api.config.SourceConfig; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class OpenFunctionSourceConfig extends SourceConfig { public SourceConnectorConfig sourceConnectorConfig; diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java index be90ee2087..4dc574cda2 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/config/RocketMQServerConfig.java @@ -20,8 +20,10 @@ import org.apache.eventmesh.openconnect.api.config.Config; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class RocketMQServerConfig extends Config { private boolean sourceEnable; diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java index b59dd523da..bc4191c9bf 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/config/RocketMQSinkConfig.java @@ -20,8 +20,10 @@ import org.apache.eventmesh.openconnect.api.config.SinkConfig; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class RocketMQSinkConfig extends SinkConfig { public SinkConnectorConfig connectorConfig; diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java index 33d9b9d00d..43a74fabd4 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/source/config/RocketMQSourceConfig.java @@ -20,8 +20,10 @@ import org.apache.eventmesh.openconnect.api.config.SourceConfig; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public class RocketMQSourceConfig extends SourceConfig { public SourceConnectorConfig connectorConfig; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SinkConfig.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SinkConfig.java index 7a7e997a57..527d02e04d 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SinkConfig.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SinkConfig.java @@ -18,8 +18,10 @@ package org.apache.eventmesh.openconnect.api.config; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public abstract class SinkConfig extends Config { private PubSubConfig pubSubConfig; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java index d18ac4c6d4..ab7c731b99 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java @@ -18,8 +18,10 @@ package org.apache.eventmesh.openconnect.api.config; import lombok.Data; +import lombok.EqualsAndHashCode; @Data +@EqualsAndHashCode(callSuper = true) public abstract class SourceConfig extends Config { private PubSubConfig pubSubConfig; diff --git a/eventmesh-trace-plugin/eventmesh-trace-api/src/main/java/org/apache/eventmesh/trace/api/AbstractTraceService.java b/eventmesh-trace-plugin/eventmesh-trace-api/src/main/java/org/apache/eventmesh/trace/api/AbstractTraceService.java index 89928a5781..b5f837c0cd 100644 --- a/eventmesh-trace-plugin/eventmesh-trace-api/src/main/java/org/apache/eventmesh/trace/api/AbstractTraceService.java +++ b/eventmesh-trace-plugin/eventmesh-trace-api/src/main/java/org/apache/eventmesh/trace/api/AbstractTraceService.java @@ -44,12 +44,14 @@ import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder; import io.opentelemetry.sdk.trace.SpanProcessor; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; /** * The abstract base class for EventMeshTraceService's implementations */ -@Data +@Getter +@Setter public abstract class AbstractTraceService implements EventMeshTraceService { protected transient SdkTracerProvider sdkTracerProvider; @@ -89,26 +91,26 @@ public void inject(Context context, Map map) { @Override public Span createSpan(final String spanName, - final SpanKind spanKind, - final long startTimestamp, - final TimeUnit timeUnit, - final Context context, - final boolean isSpanFinishInOtherThread) throws TraceException { + final SpanKind spanKind, + final long startTimestamp, + final TimeUnit timeUnit, + final Context context, + final boolean isSpanFinishInOtherThread) throws TraceException { return tracer.spanBuilder(spanName) - .setParent(context) - .setSpanKind(spanKind) - .setStartTimestamp(startTimestamp, timeUnit) - .startSpan(); + .setParent(context) + .setSpanKind(spanKind) + .setStartTimestamp(startTimestamp, timeUnit) + .startSpan(); } @Override public Span createSpan(String spanName, SpanKind spanKind, Context context, - boolean isSpanFinishInOtherThread) throws TraceException { + boolean isSpanFinishInOtherThread) throws TraceException { return tracer.spanBuilder(spanName) - .setParent(context) - .setSpanKind(spanKind) - .setStartTimestamp(System.currentTimeMillis(), TimeUnit.MILLISECONDS) - .startSpan(); + .setParent(context) + .setSpanKind(spanKind) + .setStartTimestamp(System.currentTimeMillis(), TimeUnit.MILLISECONDS) + .startSpan(); } @Override @@ -124,21 +126,22 @@ public void shutdown() throws TraceException { /** * Init the common fields + * * @param spanProcessor * @param serviceNameResource */ protected void initVars(SpanProcessor spanProcessor, Resource serviceNameResource) { SdkTracerProviderBuilder builder = SdkTracerProvider.builder() - .addSpanProcessor(spanProcessor); + .addSpanProcessor(spanProcessor); if (serviceNameResource != null) { builder.setResource(Resource.getDefault().merge(serviceNameResource)); } sdkTracerProvider = builder.build(); final OpenTelemetry openTelemetry = OpenTelemetrySdk.builder() - .setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance())) - .setTracerProvider(sdkTracerProvider) - .build(); + .setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance())) + .setTracerProvider(sdkTracerProvider) + .build(); tracer = openTelemetry.getTracer(EventMeshTraceConstants.SERVICE_NAME); textMapPropagator = openTelemetry.getPropagators().getTextMapPropagator(); diff --git a/eventmesh-trace-plugin/eventmesh-trace-jaeger/src/main/java/org/apache/eventmesh/trace/jaeger/JaegerTraceService.java b/eventmesh-trace-plugin/eventmesh-trace-jaeger/src/main/java/org/apache/eventmesh/trace/jaeger/JaegerTraceService.java index 0f48aed529..76bbc12fc3 100644 --- a/eventmesh-trace-plugin/eventmesh-trace-jaeger/src/main/java/org/apache/eventmesh/trace/jaeger/JaegerTraceService.java +++ b/eventmesh-trace-plugin/eventmesh-trace-jaeger/src/main/java/org/apache/eventmesh/trace/jaeger/JaegerTraceService.java @@ -34,16 +34,18 @@ import io.opentelemetry.sdk.trace.SpanProcessor; import io.opentelemetry.sdk.trace.export.BatchSpanProcessor; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; @Config(field = "jaegerConfiguration") @Config(field = "exporterConfiguration") -@Data public class JaegerTraceService extends AbstractTraceService { /** * Unified configuration class corresponding to jaeger.properties */ + @Getter + @Setter private transient JaegerConfiguration jaegerConfiguration; @Override diff --git a/eventmesh-trace-plugin/eventmesh-trace-pinpoint/src/main/java/org/apache/eventmesh/trace/pinpoint/PinpointTraceService.java b/eventmesh-trace-plugin/eventmesh-trace-pinpoint/src/main/java/org/apache/eventmesh/trace/pinpoint/PinpointTraceService.java index f3907e180c..2316cbc0e5 100644 --- a/eventmesh-trace-plugin/eventmesh-trace-pinpoint/src/main/java/org/apache/eventmesh/trace/pinpoint/PinpointTraceService.java +++ b/eventmesh-trace-plugin/eventmesh-trace-pinpoint/src/main/java/org/apache/eventmesh/trace/pinpoint/PinpointTraceService.java @@ -28,19 +28,21 @@ import io.opentelemetry.sdk.trace.SpanProcessor; import io.opentelemetry.sdk.trace.export.BatchSpanProcessor; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; /** * https://github.com/pinpoint-apm/pinpoint */ @Config(field = "pinpointConfiguration") @Config(field = "exporterConfiguration") -@Data public class PinpointTraceService extends AbstractTraceService { /** * Unified configuration class corresponding to pinpoint.properties */ + @Getter + @Setter private transient PinpointConfiguration pinpointConfiguration; @Override diff --git a/eventmesh-trace-plugin/eventmesh-trace-zipkin/src/main/java/org/apache/eventmesh/trace/zipkin/ZipkinTraceService.java b/eventmesh-trace-plugin/eventmesh-trace-zipkin/src/main/java/org/apache/eventmesh/trace/zipkin/ZipkinTraceService.java index 600563c929..75a4d5b461 100644 --- a/eventmesh-trace-plugin/eventmesh-trace-zipkin/src/main/java/org/apache/eventmesh/trace/zipkin/ZipkinTraceService.java +++ b/eventmesh-trace-plugin/eventmesh-trace-zipkin/src/main/java/org/apache/eventmesh/trace/zipkin/ZipkinTraceService.java @@ -34,7 +34,8 @@ import io.opentelemetry.sdk.trace.SpanProcessor; import io.opentelemetry.sdk.trace.export.BatchSpanProcessor; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; /** @@ -42,7 +43,8 @@ */ @Config(field = "zipkinConfiguration") @Config(field = "exporterConfiguration") -@Data +@Getter +@Setter public class ZipkinTraceService extends AbstractTraceService { /** From e287e76fd12624e7c4053a08499dd3371dab2562 Mon Sep 17 00:00:00 2001 From: lrhkobe <34571087+lrhkobe@users.noreply.github.com> Date: Mon, 17 Jul 2023 16:17:35 +0800 Subject: [PATCH 068/333] [ISSUE #4222]support metadata management in http protocol (#4231) * support metadata management in http protocol * fix checkstyle:file format problem * fix checkstyle problem --- .../http/common/EventMeshRetCode.java | 3 +- .../protocol/http/common/RequestURI.java | 10 +- .../runtime/boot/EventMeshHTTPServer.java | 12 ++ .../http/processor/CreateTopicProcessor.java | 156 +++++++++++++++ .../http/processor/DeleteTopicProcessor.java | 179 ++++++++++++++++++ .../processor/QuerySubscriptionProcessor.java | 118 ++++++++++++ 6 files changed, 475 insertions(+), 3 deletions(-) create mode 100644 eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java create mode 100644 eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java create mode 100644 eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/EventMeshRetCode.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/EventMeshRetCode.java index bc551a2b46..d5b46475ca 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/EventMeshRetCode.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/EventMeshRetCode.java @@ -41,7 +41,8 @@ public enum EventMeshRetCode { EVENTMESH_UNSUBSCRIBE_ERR(20, "eventMesh unsubscribe err"), EVENTMESH_HEARTBEAT_ERR(21, "eventMesh heartbeat err"), EVENTMESH_ACL_ERR(22, "eventMesh acl err"), - EVENTMESH_HTTP_MES_SEND_OVER_LIMIT_ERR(23, "eventMesh http msg send over the limit, "); + EVENTMESH_HTTP_MES_SEND_OVER_LIMIT_ERR(23, "eventMesh http msg send over the limit, "), + EVENTMESH_OPERATE_FAIL(100, "operate fail, "); private final Integer retCode; diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/RequestURI.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/RequestURI.java index da5ebf58b3..6aa7ab47cd 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/RequestURI.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/common/RequestURI.java @@ -29,9 +29,15 @@ public enum RequestURI { SUBSCRIBE_REMOTE("/eventmesh/subscribe/remote", "SUBSCRIBE REMOTE"), - UNSUBSCRIBE_LOCAL("/eventmesh/unsubscribe/local", "SUBSCRIBE LOCAL"), + UNSUBSCRIBE_LOCAL("/eventmesh/unsubscribe/local", "UNSUBSCRIBE LOCAL"), - UNSUBSCRIBE_REMOTE("/eventmesh/unsubscribe/remote", "SUBSCRIBE REMOTE"); + UNSUBSCRIBE_REMOTE("/eventmesh/unsubscribe/remote", "UNSUBSCRIBE REMOTE"), + + CRATE_TOPIC("/eventmesh/topic/create", "CRATE TOPIC"), + + DELETE_TOPIC("/eventmesh/topic/delete", "DELETE TOPIC"), + + SUBSCRIPTION_QUERY("/eventmesh/subscrition/query", "SUBSCRIPTION QUERY"); private final String requestURI; diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java index 5036f6660d..9d407b3cf1 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java @@ -34,10 +34,13 @@ import org.apache.eventmesh.runtime.core.protocol.http.processor.AdminMetricsProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.BatchSendMessageProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.BatchSendMessageV2Processor; +import org.apache.eventmesh.runtime.core.protocol.http.processor.CreateTopicProcessor; +import org.apache.eventmesh.runtime.core.protocol.http.processor.DeleteTopicProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.HandlerService; import org.apache.eventmesh.runtime.core.protocol.http.processor.HeartBeatProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.LocalSubscribeEventProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.LocalUnSubscribeEventProcessor; +import org.apache.eventmesh.runtime.core.protocol.http.processor.QuerySubscriptionProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.RemoteSubscribeEventProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.RemoteUnSubscribeEventProcessor; import org.apache.eventmesh.runtime.core.protocol.http.processor.ReplyMessageProcessor; @@ -363,6 +366,15 @@ public void registerHTTPRequestProcessor() { final ReplyMessageProcessor replyMessageProcessor = new ReplyMessageProcessor(this); registerProcessor(RequestCode.REPLY_MESSAGE.getRequestCode(), replyMessageProcessor, replyMsgExecutor); + CreateTopicProcessor createTopicProcessor = new CreateTopicProcessor(this); + this.getHandlerService().register(createTopicProcessor, clientManageExecutor); + + DeleteTopicProcessor deleteTopicProcessor = new DeleteTopicProcessor(this); + this.getHandlerService().register(deleteTopicProcessor, clientManageExecutor); + + QuerySubscriptionProcessor querySubscriptionProcessor = new QuerySubscriptionProcessor(this); + this.getHandlerService().register(querySubscriptionProcessor, clientManageExecutor); + } private void initWebhook() throws Exception { diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java new file mode 100644 index 0000000000..35adc3f306 --- /dev/null +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java @@ -0,0 +1,156 @@ +/* + * 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.core.protocol.http.processor; + +import org.apache.eventmesh.common.protocol.http.HttpEventWrapper; +import org.apache.eventmesh.common.protocol.http.common.EventMeshRetCode; +import org.apache.eventmesh.common.protocol.http.common.ProtocolKey; +import org.apache.eventmesh.common.protocol.http.common.RequestURI; +import org.apache.eventmesh.common.utils.IPUtils; +import org.apache.eventmesh.common.utils.JsonUtils; +import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer; +import org.apache.eventmesh.runtime.constants.EventMeshConstants; +import org.apache.eventmesh.runtime.core.protocol.http.async.AsyncContext; +import org.apache.eventmesh.runtime.core.protocol.http.async.CompleteHandler; +import org.apache.eventmesh.runtime.core.protocol.http.consumer.HttpClientGroupMapping; +import org.apache.eventmesh.runtime.util.EventMeshUtil; +import org.apache.eventmesh.runtime.util.RemotingHelper; + +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.HttpRequest; +import io.netty.handler.codec.http.HttpResponseStatus; + +import com.fasterxml.jackson.core.type.TypeReference; + +public class CreateTopicProcessor implements AsyncHttpProcessor { + + public Logger httpLogger = LoggerFactory.getLogger("http"); + + private final transient EventMeshHTTPServer eventMeshHTTPServer; + + public CreateTopicProcessor(EventMeshHTTPServer eventMeshHTTPServer) { + this.eventMeshHTTPServer = eventMeshHTTPServer; + } + + @Override + public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest httpRequest) + throws Exception { + final AsyncContext asyncContext = handlerSpecific.getAsyncContext(); + final ChannelHandlerContext ctx = handlerSpecific.getCtx(); + final HttpEventWrapper requestWrapper = asyncContext.getRequest(); + + HttpEventWrapper responseWrapper; + + httpLogger.info("uri={}|{}|client2eventMesh|from={}|to={}", requestWrapper.getRequestURI(), + EventMeshConstants.PROTOCOL_HTTP, RemotingHelper.parseChannelRemoteAddr(ctx.channel()), IPUtils.getLocalAddress() + ); + + // user request header + Map userRequestHeaderMap = requestWrapper.getHeaderMap(); + String requestIp = RemotingHelper.parseChannelRemoteAddr(ctx.channel()); + userRequestHeaderMap.put(ProtocolKey.ClientInstanceKey.IP, requestIp); + + + Map responseHeaderMap = new HashMap<>(); + responseHeaderMap.put(ProtocolKey.REQUEST_URI, requestWrapper.getRequestURI()); + responseHeaderMap + .put(ProtocolKey.EventMeshInstanceKey.EVENTMESHCLUSTER, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshCluster()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHIP, IPUtils.getLocalAddress()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHENV, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshEnv()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHIDC, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshIDC()); + + //validate body + byte[] requestBody = requestWrapper.getBody(); + + Map requestBodyMap = JsonUtils.parseTypeReferenceObject(new String(requestBody), + new TypeReference>() {}); + + + if (requestBodyMap.get("topic") == null || StringUtils.isBlank(requestBodyMap.get("topic").toString())) { + Map responseBodyMap = new HashMap<>(); + responseBodyMap.put("retCode", EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR.getRetCode()); + responseBodyMap.put("retMsg", EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR.getErrMsg() + "topic is null"); + httpLogger.warn("create topic fail, topic is null"); + responseWrapper = requestWrapper.createHttpResponse(responseHeaderMap, responseBodyMap); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.BAD_REQUEST); + handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, + responseBodyMap, null); + return; + } + + String topic = requestBodyMap.get("topic").toString(); + + long startTime = System.currentTimeMillis(); + try { + // pub topic in local cache + String[] topicArr = topic.split(";"); + for (String item : topicArr) { + item = StringUtils.deleteWhitespace(item); + if (!HttpClientGroupMapping.getInstance().getLocalTopicSet().contains(item)) { + HttpClientGroupMapping.getInstance().getLocalTopicSet().add(item); + httpLogger.info("create topic success, topic:{}", item); + } + } + + final CompleteHandler handler = httpEventWrapper -> { + try { + if (httpLogger.isDebugEnabled()) { + httpLogger.debug("{}", httpEventWrapper); + } + eventMeshHTTPServer.sendResponse(ctx, httpEventWrapper.httpResponse()); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordHTTPReqResTimeCost( + System.currentTimeMillis() - requestWrapper.getReqTime()); + } catch (Exception ex) { + // ignore + httpLogger.warn("create topic, sendResponse fail,", ex); + } + }; + + responseWrapper = requestWrapper.createHttpResponse(EventMeshRetCode.SUCCESS); + asyncContext.onComplete(responseWrapper, handler); + + } catch (Exception e) { + Map responseBodyMap = new HashMap<>(); + responseBodyMap.put("retCode", EventMeshRetCode.EVENTMESH_RUNTIME_ERR.getRetCode()); + responseBodyMap.put("retMsg", EventMeshRetCode.EVENTMESH_RUNTIME_ERR.getErrMsg() + EventMeshUtil.stackTrace(e, 2)); + responseWrapper = asyncContext.getRequest().createHttpResponse( + responseHeaderMap, responseBodyMap); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); + handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_RUNTIME_ERR, responseHeaderMap, + responseBodyMap, null); + long endTime = System.currentTimeMillis(); + httpLogger.warn( + "create topic fail, eventMesh2client|cost={}ms|topic={}", endTime - startTime, topic, e); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordSendMsgFailed(); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordSendMsgCost(endTime - startTime); + } + } + + @Override + public String[] paths() { + return new String[]{RequestURI.CRATE_TOPIC.getRequestURI()}; + } +} diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java new file mode 100644 index 0000000000..5b6dbd13d5 --- /dev/null +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java @@ -0,0 +1,179 @@ +/* + * 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.core.protocol.http.processor; + +import org.apache.eventmesh.common.protocol.http.HttpEventWrapper; +import org.apache.eventmesh.common.protocol.http.common.EventMeshRetCode; +import org.apache.eventmesh.common.protocol.http.common.ProtocolKey; +import org.apache.eventmesh.common.protocol.http.common.RequestURI; +import org.apache.eventmesh.common.utils.IPUtils; +import org.apache.eventmesh.common.utils.JsonUtils; +import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer; +import org.apache.eventmesh.runtime.constants.EventMeshConstants; +import org.apache.eventmesh.runtime.core.protocol.http.async.AsyncContext; +import org.apache.eventmesh.runtime.core.protocol.http.async.CompleteHandler; +import org.apache.eventmesh.runtime.core.protocol.http.consumer.HttpClientGroupMapping; +import org.apache.eventmesh.runtime.util.EventMeshUtil; +import org.apache.eventmesh.runtime.util.RemotingHelper; + +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.HttpRequest; +import io.netty.handler.codec.http.HttpResponseStatus; + +import com.fasterxml.jackson.core.type.TypeReference; + +public class DeleteTopicProcessor implements AsyncHttpProcessor { + + public Logger httpLogger = LoggerFactory.getLogger("http"); + + private final transient EventMeshHTTPServer eventMeshHTTPServer; + + public DeleteTopicProcessor(EventMeshHTTPServer eventMeshHTTPServer) { + this.eventMeshHTTPServer = eventMeshHTTPServer; + } + + @Override + public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest httpRequest) + throws Exception { + final AsyncContext asyncContext = handlerSpecific.getAsyncContext(); + final ChannelHandlerContext ctx = handlerSpecific.getCtx(); + final HttpEventWrapper requestWrapper = asyncContext.getRequest(); + + HttpEventWrapper responseWrapper; + + httpLogger.info("uri={}|{}|client2eventMesh|from={}|to={}", requestWrapper.getRequestURI(), + EventMeshConstants.PROTOCOL_HTTP, RemotingHelper.parseChannelRemoteAddr(ctx.channel()), IPUtils.getLocalAddress() + ); + + // user request header + Map userRequestHeaderMap = requestWrapper.getHeaderMap(); + String requestIp = RemotingHelper.parseChannelRemoteAddr(ctx.channel()); + userRequestHeaderMap.put(ProtocolKey.ClientInstanceKey.IP, requestIp); + + + Map responseHeaderMap = new HashMap<>(); + responseHeaderMap.put(ProtocolKey.REQUEST_URI, requestWrapper.getRequestURI()); + responseHeaderMap + .put(ProtocolKey.EventMeshInstanceKey.EVENTMESHCLUSTER, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshCluster()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHIP, IPUtils.getLocalAddress()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHENV, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshEnv()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHIDC, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshIDC()); + + //validate body + byte[] requestBody = requestWrapper.getBody(); + + Map requestBodyMap = JsonUtils.parseTypeReferenceObject(new String(requestBody), + new TypeReference>() {}); + + if (requestBodyMap.get("topic") == null || StringUtils.isBlank(requestBodyMap.get("topic").toString())) { + Map responseBodyMap = new HashMap<>(); + responseBodyMap.put("retCode", EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR.getRetCode()); + responseBodyMap.put("retMsg", EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR.getErrMsg() + "topic is null"); + httpLogger.warn("delete topic fail, topic is null"); + responseWrapper = requestWrapper.createHttpResponse(responseHeaderMap, responseBodyMap); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.BAD_REQUEST); + handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, responseHeaderMap, + responseBodyMap, null); + return; + } + + String topic = requestBodyMap.get("topic").toString(); + + long startTime = System.currentTimeMillis(); + try { + // pub topic in local cache + String[] topicArr = topic.split(";"); + + //validate topic is exist in eventmesh + List faildTopic = new ArrayList<>(); + for (String deleteTopic : topicArr) { + if (!HttpClientGroupMapping.getInstance().getLocalTopicSet().contains(deleteTopic)) { + faildTopic.add(deleteTopic); + } + } + if (faildTopic.size() > 0) { + + Map responseBodyMap = new HashMap<>(); + StringBuilder sb = new StringBuilder(); + sb.append(faildTopic.toString()).append(" not exist in eventmesh"); + httpLogger.warn("delete topic fail, {}", sb.toString()); + responseBodyMap.put("retCode", EventMeshRetCode.EVENTMESH_OPERATE_FAIL.getRetCode()); + responseBodyMap.put("retMsg", EventMeshRetCode.EVENTMESH_OPERATE_FAIL.getErrMsg() + sb.toString()); + responseWrapper = requestWrapper.createHttpResponse(responseHeaderMap, responseBodyMap); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.BAD_REQUEST); + handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_OPERATE_FAIL, responseHeaderMap, + responseBodyMap, null); + return; + } + for (String item : topicArr) { + boolean flag = HttpClientGroupMapping.getInstance().getLocalTopicSet().remove(StringUtils.deleteWhitespace(item)); + if (flag) { + httpLogger.info("remove topic success, topic:{}", item); + } + } + + final CompleteHandler handler = httpEventWrapper -> { + try { + if (httpLogger.isDebugEnabled()) { + httpLogger.debug("{}", httpEventWrapper); + } + eventMeshHTTPServer.sendResponse(ctx, httpEventWrapper.httpResponse()); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordHTTPReqResTimeCost( + System.currentTimeMillis() - requestWrapper.getReqTime()); + } catch (Exception ex) { + // ignore + httpLogger.warn("delete topic, sendResponse fail,", ex); + } + }; + + responseWrapper = requestWrapper.createHttpResponse(EventMeshRetCode.SUCCESS); + asyncContext.onComplete(responseWrapper, handler); + + } catch (Exception e) { + Map responseBodyMap = new HashMap<>(); + responseBodyMap.put("retCode", EventMeshRetCode.EVENTMESH_RUNTIME_ERR.getRetCode()); + responseBodyMap.put("retMsg", EventMeshRetCode.EVENTMESH_RUNTIME_ERR.getErrMsg() + EventMeshUtil.stackTrace(e, 2)); + responseWrapper = asyncContext.getRequest().createHttpResponse( + responseHeaderMap, responseBodyMap); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); + handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_RUNTIME_ERR, responseHeaderMap, + responseBodyMap, null); + long endTime = System.currentTimeMillis(); + httpLogger.warn( + "delete topic fail, eventMesh2client|cost={}ms|topic={}", endTime - startTime, topic, e); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordSendMsgFailed(); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordSendMsgCost(endTime - startTime); + } + } + + @Override + public String[] paths() { + return new String[]{RequestURI.DELETE_TOPIC.getRequestURI()}; + } +} diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java new file mode 100644 index 0000000000..8d06c2a8d2 --- /dev/null +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java @@ -0,0 +1,118 @@ +/* + * 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.core.protocol.http.processor; + +import org.apache.eventmesh.common.protocol.http.HttpEventWrapper; +import org.apache.eventmesh.common.protocol.http.common.EventMeshRetCode; +import org.apache.eventmesh.common.protocol.http.common.ProtocolKey; +import org.apache.eventmesh.common.protocol.http.common.RequestURI; +import org.apache.eventmesh.common.utils.IPUtils; +import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer; +import org.apache.eventmesh.runtime.constants.EventMeshConstants; +import org.apache.eventmesh.runtime.core.protocol.http.async.AsyncContext; +import org.apache.eventmesh.runtime.core.protocol.http.async.CompleteHandler; +import org.apache.eventmesh.runtime.core.protocol.http.consumer.HttpClientGroupMapping; +import org.apache.eventmesh.runtime.util.EventMeshUtil; +import org.apache.eventmesh.runtime.util.RemotingHelper; + +import java.util.HashMap; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.HttpRequest; +import io.netty.handler.codec.http.HttpResponseStatus; + +public class QuerySubscriptionProcessor implements AsyncHttpProcessor { + + public Logger httpLogger = LoggerFactory.getLogger("http"); + + private final transient EventMeshHTTPServer eventMeshHTTPServer; + + public QuerySubscriptionProcessor(EventMeshHTTPServer eventMeshHTTPServer) { + this.eventMeshHTTPServer = eventMeshHTTPServer; + } + + @Override + public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest httpRequest) + throws Exception { + final AsyncContext asyncContext = handlerSpecific.getAsyncContext(); + final ChannelHandlerContext ctx = handlerSpecific.getCtx(); + final HttpEventWrapper requestWrapper = asyncContext.getRequest(); + + HttpEventWrapper responseWrapper; + + httpLogger.info("uri={}|{}|client2eventMesh|from={}|to={}", requestWrapper.getRequestURI(), + EventMeshConstants.PROTOCOL_HTTP, RemotingHelper.parseChannelRemoteAddr(ctx.channel()), IPUtils.getLocalAddress() + ); + + Map responseHeaderMap = new HashMap<>(); + responseHeaderMap.put(ProtocolKey.REQUEST_URI, requestWrapper.getRequestURI()); + responseHeaderMap + .put(ProtocolKey.EventMeshInstanceKey.EVENTMESHCLUSTER, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshCluster()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHIP, IPUtils.getLocalAddress()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHENV, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshEnv()); + responseHeaderMap.put(ProtocolKey.EventMeshInstanceKey.EVENTMESHIDC, eventMeshHTTPServer.getEventMeshHttpConfiguration().getEventMeshIDC()); + + long startTime = System.currentTimeMillis(); + try { + // pub topic in local cache + + final CompleteHandler handler = httpEventWrapper -> { + try { + if (httpLogger.isDebugEnabled()) { + httpLogger.debug("{}", httpEventWrapper); + } + eventMeshHTTPServer.sendResponse(ctx, httpEventWrapper.httpResponse()); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordHTTPReqResTimeCost( + System.currentTimeMillis() - requestWrapper.getReqTime()); + } catch (Exception ex) { + httpLogger.warn("query subscription, sendResponse fail", ex); + } + }; + + Map responseBodyMap = new HashMap<>(); + + responseBodyMap.put("subsrciption", HttpClientGroupMapping.getInstance().querySubscription()); + responseBodyMap.put("localTopicSet", HttpClientGroupMapping.getInstance().getLocalTopicSet()); + + responseWrapper = requestWrapper.createHttpResponse(responseHeaderMap, responseBodyMap); + asyncContext.onComplete(responseWrapper, handler); + } catch (Exception e) { + Map responseBodyMap = new HashMap<>(); + responseBodyMap.put("retCode", EventMeshRetCode.EVENTMESH_RUNTIME_ERR.getRetCode()); + responseBodyMap.put("retMsg", EventMeshRetCode.EVENTMESH_RUNTIME_ERR.getErrMsg() + EventMeshUtil.stackTrace(e, 2)); + responseWrapper = asyncContext.getRequest().createHttpResponse( + responseHeaderMap, responseBodyMap); + responseWrapper.setHttpResponseStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); + handlerSpecific.sendErrorResponse(EventMeshRetCode.EVENTMESH_RUNTIME_ERR, responseHeaderMap, + responseBodyMap, null); + long endTime = System.currentTimeMillis(); + httpLogger.warn("query subscription fail,eventMesh2client|cost={}ms", endTime - startTime, e); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordSendMsgFailed(); + eventMeshHTTPServer.getMetrics().getSummaryMetrics().recordSendMsgCost(endTime - startTime); + } + } + + @Override + public String[] paths() { + return new String[]{RequestURI.SUBSCRIPTION_QUERY.getRequestURI()}; + } +} From 7a20f921c936fdab015fc6110f0801c2e164f73f Mon Sep 17 00:00:00 2001 From: Harshitha Sudhakar <111514477+harshithasudhakar@users.noreply.github.com> Date: Tue, 18 Jul 2023 06:55:02 +0530 Subject: [PATCH 069/333] [ISSUE #4084]Method prints the stack trace to the console[EventMeshMessageProducer] (#4212) * Update EventMeshMessageProducer.java Removed stack trace at line 120 * Update EventMeshMessageProducer.java Removed the `if` statement * Update EventMeshMessageProducer.java Fixed indentation at 119 --- .../client/grpc/producer/EventMeshMessageProducer.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/producer/EventMeshMessageProducer.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/producer/EventMeshMessageProducer.java index 261f2b9269..6ae647277b 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/producer/EventMeshMessageProducer.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/grpc/producer/EventMeshMessageProducer.java @@ -116,10 +116,7 @@ public EventMeshMessage requestReply(EventMeshMessage message, long timeout) { } return EventMeshCloudEventBuilder.buildMessageFromEventMeshCloudEvent(reply, PROTOCOL_TYPE); } catch (Exception e) { - e.printStackTrace(); - if (log.isErrorEnabled()) { - log.error("Error in RequestReply message {}", message, e); - } + log.error("Error in RequestReply message {}", message, e); } return null; } From 651fe9b33346c23efc4d75102ee69dd1b4eb4ebe Mon Sep 17 00:00:00 2001 From: Alonexc <91315508+Alonexc@users.noreply.github.com> Date: Tue, 18 Jul 2023 09:25:20 +0800 Subject: [PATCH 070/333] [ISSUE 4209] Fix event.getExtension(ProtocolKey.ClientInstanceKey.TOKEN) get null (#4225) * Create .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * Update .lift.toml * delete lift * add token field --- .../apache/eventmesh/common/protocol/http/HttpEventWrapper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java index 4dff89c677..579d22adf1 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/http/HttpEventWrapper.java @@ -207,6 +207,7 @@ public void buildSysHeaderForClient() { headerMap.getOrDefault(ProtocolKey.ClientInstanceKey.CONSUMERGROUP, "em-http-consumer")); sysHeaderMap.put(ProtocolKey.PROTOCOL_TYPE, "http"); sysHeaderMap.put(ProtocolKey.PROTOCOL_DESC, "http"); + sysHeaderMap.put(ProtocolKey.ClientInstanceKey.TOKEN, headerMap.getOrDefault(ProtocolKey.ClientInstanceKey.TOKEN, "token")); } public void buildSysHeaderForCE() { From ebe4d64f922bac246b49aff3b999c2164e446af4 Mon Sep 17 00:00:00 2001 From: Sumit Dethe <91131672+sumitdethe27@users.noreply.github.com> Date: Tue, 18 Jul 2023 06:55:57 +0530 Subject: [PATCH 071/333] [ISSUE #3511] Swaped 2 arguments so they are in the correct order: expected value, actual value: Assert.assertEquals(expected, actual).[ConfigurationHolderTest] --- .../config/ConfigurationHolderTest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/eventmesh-storage-plugin/eventmesh-storage-rabbitmq/src/test/java/org/apache/eventmesh/storage/rabbitmq/config/ConfigurationHolderTest.java b/eventmesh-storage-plugin/eventmesh-storage-rabbitmq/src/test/java/org/apache/eventmesh/storage/rabbitmq/config/ConfigurationHolderTest.java index a2cf6c97d7..8d7eb5897a 100644 --- a/eventmesh-storage-plugin/eventmesh-storage-rabbitmq/src/test/java/org/apache/eventmesh/storage/rabbitmq/config/ConfigurationHolderTest.java +++ b/eventmesh-storage-plugin/eventmesh-storage-rabbitmq/src/test/java/org/apache/eventmesh/storage/rabbitmq/config/ConfigurationHolderTest.java @@ -47,16 +47,16 @@ public void getConfigWhenRabbitmqProducerInit() { } private void assertConfig(ConfigurationHolder config) { - Assert.assertEquals(config.getHost(), "127.0.0.1"); - Assert.assertEquals(config.getPort(), 5672); - Assert.assertEquals(config.getUsername(), "username-success!!!"); - Assert.assertEquals(config.getPasswd(), "passwd-success!!!"); - Assert.assertEquals(config.getVirtualHost(), "virtualHost-success!!!"); - - Assert.assertEquals(config.getExchangeType(), BuiltinExchangeType.TOPIC); - Assert.assertEquals(config.getExchangeName(), "exchangeName-success!!!"); - Assert.assertEquals(config.getRoutingKey(), "routingKey-success!!!"); - Assert.assertEquals(config.getQueueName(), "queueName-success!!!"); + Assert.assertEquals("127.0.0.1", config.getHost()); + Assert.assertEquals(5672, config.getPort()); + Assert.assertEquals("username-success!!!", config.getUsername()); + Assert.assertEquals("passwd-success!!!", config.getPasswd()); + Assert.assertEquals("virtualHost-success!!!", config.getVirtualHost()); + + Assert.assertEquals(BuiltinExchangeType.TOPIC, config.getExchangeType()); + Assert.assertEquals("exchangeName-success!!!", config.getExchangeName()); + Assert.assertEquals("routingKey-success!!!", config.getRoutingKey()); + Assert.assertEquals("queueName-success!!!", config.getQueueName()); Assert.assertTrue(config.isAutoAck()); } } From cc43deef549d8b4869b8c544474200594aa2691d Mon Sep 17 00:00:00 2001 From: Pil0tXia <41445332+Pil0tXia@users.noreply.github.com> Date: Tue, 18 Jul 2023 09:26:29 +0800 Subject: [PATCH 072/333] [ISSUE #4227] Use switch...case... instead of if...else... for HookConfigOperationManager (#4228) * Optimize: Use switch...case... and remove redundantly throwed exception. * fix checkstyle --- .../storage/HookConfigOperationManager.java | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/eventmesh-webhook/eventmesh-webhook-receive/src/main/java/org/apache/eventmesh/webhook/receive/storage/HookConfigOperationManager.java b/eventmesh-webhook/eventmesh-webhook-receive/src/main/java/org/apache/eventmesh/webhook/receive/storage/HookConfigOperationManager.java index bb1641596e..2190f31745 100644 --- a/eventmesh-webhook/eventmesh-webhook-receive/src/main/java/org/apache/eventmesh/webhook/receive/storage/HookConfigOperationManager.java +++ b/eventmesh-webhook/eventmesh-webhook-receive/src/main/java/org/apache/eventmesh/webhook/receive/storage/HookConfigOperationManager.java @@ -29,7 +29,6 @@ import org.apache.eventmesh.webhook.api.utils.ClassUtils; import org.apache.eventmesh.webhook.receive.config.ReceiveConfiguration; -import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -60,15 +59,19 @@ public HookConfigOperationManager() { * * @param receiveConfiguration receiveConfiguration */ - public HookConfigOperationManager(final ReceiveConfiguration receiveConfiguration) - throws FileNotFoundException, NacosException { + public HookConfigOperationManager(final ReceiveConfiguration receiveConfiguration) throws NacosException { this.operationMode = receiveConfiguration.getOperationMode(); - if (OPERATION_MODE_FILE.equals(operationMode)) { - new WebhookFileListener(receiveConfiguration.getFilePath(), cacheWebHookConfig); - } else if (OPERATION_MODE_NACOS.equals(operationMode)) { - nacosModeInit(receiveConfiguration.getOperationProperties()); + switch (operationMode) { + case OPERATION_MODE_FILE: + new WebhookFileListener(receiveConfiguration.getFilePath(), cacheWebHookConfig); + break; + case OPERATION_MODE_NACOS: + nacosModeInit(receiveConfiguration.getOperationProperties()); + break; + default: + break; } } @@ -78,17 +81,22 @@ private void nacosModeInit(final Properties config) throws NacosException { @Override public WebHookConfig queryWebHookConfigById(final WebHookConfig webHookConfig) { - if (OPERATION_MODE_FILE.equals(operationMode)) { - return cacheWebHookConfig.get(ClassUtils.convertResourcePathToClassName(webHookConfig.getCallbackPath())); - } else if (OPERATION_MODE_NACOS.equals(operationMode)) { - try { - final String content = nacosConfigService.getConfig(webHookConfig.getManufacturerEventName() - + DATA_ID_EXTENSION, - GROUP_PREFIX + webHookConfig.getManufacturerName(), TIMEOUT_MS); - return JsonUtils.parseObject(content, WebHookConfig.class); - } catch (NacosException e) { - log.error("queryWebHookConfigById failed", e); - } + switch (operationMode) { + case OPERATION_MODE_FILE: + return cacheWebHookConfig.get(ClassUtils.convertResourcePathToClassName(webHookConfig.getCallbackPath())); + case OPERATION_MODE_NACOS: + try { + final String content = nacosConfigService.getConfig( + webHookConfig.getManufacturerEventName() + DATA_ID_EXTENSION, + GROUP_PREFIX + webHookConfig.getManufacturerName(), + TIMEOUT_MS); + return JsonUtils.parseObject(content, WebHookConfig.class); + } catch (NacosException e) { + log.error("queryWebHookConfigById failed", e); + } + break; + default: + break; } return null; } From a62333b4db6a86aa0e3252f7a930e26e02576298 Mon Sep 17 00:00:00 2001 From: Harshitha Sudhakar <111514477+harshithasudhakar@users.noreply.github.com> Date: Thu, 20 Jul 2023 06:51:08 +0530 Subject: [PATCH 073/333] [ISSUE #4022]contains() is a legacy method that is equivalent to containsValue() (#4249) * Update TcpClient.java * Update HeatBeatScheduler.java --- .../eventmesh/registry/consul/service/HeatBeatScheduler.java | 2 +- .../java/org/apache/eventmesh/client/tcp/common/TcpClient.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/HeatBeatScheduler.java b/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/HeatBeatScheduler.java index a62db12fd2..d08a0f3752 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/HeatBeatScheduler.java +++ b/eventmesh-registry-plugin/eventmesh-registry-consul/src/main/java/org/apache/eventmesh/registry/consul/service/HeatBeatScheduler.java @@ -91,7 +91,7 @@ public void run() { consulClient.agentCheckPass(checkId, aclToken); return; } - if (heartBeatMap.contains(instance)) { + if (heartBeatMap.containsValue(instance)) { consulClient.agentCheckPass(checkId); } } finally { diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java index d904d55fbd..9cc206a7a4 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java @@ -187,7 +187,7 @@ protected void send(Package msg) throws Exception { protected Package io(Package msg, long timeout) throws Exception { Object key = RequestContext.key(msg); RequestContext context = RequestContext.context(key, msg); - if (!contexts.contains(context)) { + if (!contexts.containsValue(context)) { contexts.put(key, context); } else { if (log.isInfoEnabled()) { From 09094b8fe45a4a81d42ac1dabf7baa7950c8d9f2 Mon Sep 17 00:00:00 2001 From: Harshitha Sudhakar <111514477+harshithasudhakar@users.noreply.github.com> Date: Thu, 20 Jul 2023 07:09:39 +0530 Subject: [PATCH 074/333] [ISSUE #4018] Code optimization.[ProducerManager] Added `final` in lines 31,33. Removed the redundant `null` initialization at lines 48 and 69. --- .../core/protocol/http/producer/ProducerManager.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/producer/ProducerManager.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/producer/ProducerManager.java index 2e21ec2c24..b10e7136e0 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/producer/ProducerManager.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/producer/ProducerManager.java @@ -28,9 +28,9 @@ @Slf4j public class ProducerManager { - private EventMeshHTTPServer eventMeshHTTPServer; + private final EventMeshHTTPServer eventMeshHTTPServer; - private ConcurrentHashMap producerTable = new ConcurrentHashMap(); + private final ConcurrentHashMap producerTable = new ConcurrentHashMap(); public ProducerManager(EventMeshHTTPServer eventMeshHTTPServer) { this.eventMeshHTTPServer = eventMeshHTTPServer; @@ -45,7 +45,7 @@ public void start() throws Exception { } public EventMeshProducer getEventMeshProducer(String producerGroup) throws Exception { - EventMeshProducer eventMeshProducer = null; + EventMeshProducer eventMeshProducer; if (!producerTable.containsKey(producerGroup)) { synchronized (producerTable) { if (!producerTable.containsKey(producerGroup)) { @@ -66,7 +66,7 @@ public EventMeshProducer getEventMeshProducer(String producerGroup) throws Excep } public EventMeshProducer getEventMeshProducer(String producerGroup, String token) throws Exception { - EventMeshProducer eventMeshProducer = null; + EventMeshProducer eventMeshProducer; if (!producerTable.containsKey(producerGroup)) { synchronized (producerTable) { if (!producerTable.containsKey(producerGroup)) { From 50065fbe1e0a6975e003c7ecb88876206d8f8fe3 Mon Sep 17 00:00:00 2001 From: Vincent Low <68309124+VL-037@users.noreply.github.com> Date: Thu, 20 Jul 2023 08:40:13 +0700 Subject: [PATCH 075/333] [ISSUE #4200]Do some code optimization.[ServiceUtils] --- .../runtime/core/protocol/grpc/service/ServiceUtils.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java index 128d058e95..1f6e6637c4 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/ServiceUtils.java @@ -42,6 +42,7 @@ import java.time.ZoneId; import java.time.ZoneOffset; import java.util.List; +import java.util.Objects; import com.fasterxml.jackson.core.type.TypeReference; import com.google.protobuf.Any; @@ -86,13 +87,13 @@ public static boolean validateCloudEventData(CloudEvent cloudEvent) { } final String dataContentType = EventMeshCloudEventUtils.getDataContentType(cloudEvent); if (ProtoSupport.isTextContent(dataContentType)) { - return flag & (StringUtils.isNotEmpty(cloudEvent.getTextData())); + return flag && (StringUtils.isNotEmpty(cloudEvent.getTextData())); } if (ProtoSupport.isProtoContent(dataContentType)) { - return flag & (cloudEvent.getProtoData() != Any.getDefaultInstance()); + return flag && (cloudEvent.getProtoData() != Any.getDefaultInstance()); } - return flag & (cloudEvent.getBinaryData() != ByteString.EMPTY); + return flag && (cloudEvent.getBinaryData() != ByteString.EMPTY); } public static boolean validateCloudEventBatchData(CloudEventBatch cloudEventBatch) { @@ -144,6 +145,7 @@ public static boolean validateHeartBeat(CloudEvent heartbeat) { List heartbeatItems = JsonUtils.parseTypeReferenceObject(heartbeat.getTextData(), new TypeReference>() { }); + Objects.requireNonNull(heartbeatItems, "heartbeatItems can't be null"); for (HeartbeatItem item : heartbeatItems) { if (StringUtils.isEmpty(item.getTopic())) { return false; From d14a60498a0a6d3cd6c4f703375eaba4aad8f9ff Mon Sep 17 00:00:00 2001 From: mxsm Date: Thu, 20 Jul 2023 10:04:13 +0800 Subject: [PATCH 076/333] [ISSUE #4241]Optimize BatchSendMessageProcessor log print and calculation of escape time (#4242) --- .../processor/BatchSendMessageProcessor.java | 86 ++++++++----------- 1 file changed, 36 insertions(+), 50 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/BatchSendMessageProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/BatchSendMessageProcessor.java index 22a05f37fb..e5360867dd 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/BatchSendMessageProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/BatchSendMessageProcessor.java @@ -63,12 +63,14 @@ import io.cloudevents.core.builder.CloudEventBuilder; import io.netty.channel.ChannelHandlerContext; +import com.google.common.base.Stopwatch; + public class BatchSendMessageProcessor implements HttpRequestProcessor { private final Logger cmdLogger = LoggerFactory.getLogger(EventMeshConstants.CMD); private final Logger aclLogger = LoggerFactory.getLogger(EventMeshConstants.ACL); - + private final Logger batchMessageLogger = LoggerFactory.getLogger("batchMessage"); private final EventMeshHTTPServer eventMeshHTTPServer; @@ -83,23 +85,17 @@ public BatchSendMessageProcessor(final EventMeshHTTPServer eventMeshHTTPServer) @Override public void processRequest(ChannelHandlerContext ctx, AsyncContext asyncContext) throws Exception { - HttpCommand responseEventMeshCommand; String localAddress = IPUtils.getLocalAddress(); HttpCommand request = asyncContext.getRequest(); - cmdLogger.info("cmd={}|{}|client2eventMesh|from={}|to={}", RequestCode.get( - Integer.valueOf(request.getRequestCode())), - EventMeshConstants.PROTOCOL_HTTP, - RemotingHelper.parseChannelRemoteAddr(ctx.channel()), localAddress); + cmdLogger.info("cmd={}|{}|client2eventMesh|from={}|to={}", RequestCode.get(Integer.valueOf(request.getRequestCode())), + EventMeshConstants.PROTOCOL_HTTP, RemotingHelper.parseChannelRemoteAddr(ctx.channel()), localAddress); - SendMessageBatchRequestHeader sendMessageBatchRequestHeader = - (SendMessageBatchRequestHeader) request.getHeader(); + SendMessageBatchRequestHeader sendMessageBatchRequestHeader = (SendMessageBatchRequestHeader) request.getHeader(); EventMeshHTTPConfiguration httpConfiguration = eventMeshHTTPServer.getEventMeshHttpConfiguration(); - SendMessageBatchResponseHeader sendMessageBatchResponseHeader = - SendMessageBatchResponseHeader.buildHeader(Integer.valueOf(request.getRequestCode()), - httpConfiguration.getEventMeshCluster(), - localAddress, httpConfiguration.getEventMeshEnv(), - httpConfiguration.getEventMeshIDC()); + SendMessageBatchResponseHeader sendMessageBatchResponseHeader = SendMessageBatchResponseHeader.buildHeader( + Integer.valueOf(request.getRequestCode()), httpConfiguration.getEventMeshCluster(), localAddress, httpConfiguration.getEventMeshEnv(), + httpConfiguration.getEventMeshIDC()); String protocolType = sendMessageBatchRequestHeader.getProtocolType(); ProtocolAdaptor httpCommandProtocolAdaptor = ProtocolPluginFactory.getProtocolAdaptor(protocolType); @@ -107,7 +103,7 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext if (CollectionUtils.isEmpty(eventList)) { completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, null, SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, null, SendMessageBatchResponseBody.class); return; } @@ -116,12 +112,9 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext int eventSize = eventList.size(); if (eventSize > httpConfiguration.getEventMeshEventBatchSize()) { - batchMessageLogger.error("Event batch size exceeds the limit: {}", - httpConfiguration.getEventMeshEventBatchSize()); - completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, - "Event batch size exceeds the limit: " + httpConfiguration.getEventMeshEventBatchSize(), - SendMessageBatchResponseBody.class); + batchMessageLogger.error("Event batch size exceeds the limit: {}", httpConfiguration.getEventMeshEventBatchSize()); + completeResponse(request, asyncContext, sendMessageBatchResponseHeader, EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, + "Event batch size exceeds the limit: " + httpConfiguration.getEventMeshEventBatchSize(), SendMessageBatchResponseBody.class); return; } @@ -130,18 +123,15 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext if (!ObjectUtils.allNotNull(event.getSource(), event.getSpecVersion()) || StringUtils.isAnyBlank(event.getId(), event.getType(), event.getSubject())) { completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_PROTOCOL_HEADER_ERR, null, SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_PROTOCOL_HEADER_ERR, null, SendMessageBatchResponseBody.class); return; } String content = event.getData() == null ? "" : new String(event.getData().toBytes(), Constants.DEFAULT_CHARSET); if (content.length() > httpConfiguration.getEventMeshEventSize()) { - batchMessageLogger.error("Event size exceeds the limit: {}", - httpConfiguration.getEventMeshEventSize()); - completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_PROTOCOL_HEADER_ERR, - "Event size exceeds the limit: " + httpConfiguration.getEventMeshEventSize(), - SendMessageBatchResponseBody.class); + batchMessageLogger.error("Event size exceeds the limit: {}", httpConfiguration.getEventMeshEventSize()); + completeResponse(request, asyncContext, sendMessageBatchResponseHeader, EventMeshRetCode.EVENTMESH_PROTOCOL_HEADER_ERR, + "Event size exceeds the limit: " + httpConfiguration.getEventMeshEventSize(), SendMessageBatchResponseBody.class); return; } @@ -150,10 +140,9 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext String sys = getExtension(event, ProtocolKey.ClientInstanceKey.SYS); //validate event-extension - if (StringUtils.isAnyBlank(idc, pid, sys) - || !StringUtils.isNumeric(pid)) { + if (StringUtils.isAnyBlank(idc, pid, sys) || !StringUtils.isNumeric(pid)) { completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_PROTOCOL_HEADER_ERR, null, SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_PROTOCOL_HEADER_ERR, null, SendMessageBatchResponseBody.class); return; } @@ -162,10 +151,9 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext eventSize = Integer.parseInt(getExtension(event, SendMessageBatchRequestBody.SIZE)); CloudEventData eventData = event.getData(); - if (eventData == null || StringUtils.isAnyBlank(batchId, producerGroup) - || eventSize != eventList.size()) { + if (eventData == null || StringUtils.isAnyBlank(batchId, producerGroup) || eventSize != eventList.size()) { completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, null, SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, null, SendMessageBatchResponseBody.class); return; } @@ -176,7 +164,7 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext .tryAcquire(eventSize, EventMeshConstants.DEFAULT_FASTFAIL_TIMEOUT_IN_MILLISECONDS, TimeUnit.MILLISECONDS)) { summaryMetrics.recordSendBatchMsgDiscard(eventSize); completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_BATCH_SPEED_OVER_LIMIT_ERR, null, SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_BATCH_SPEED_OVER_LIMIT_ERR, null, SendMessageBatchResponseBody.class); return; } @@ -186,16 +174,15 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext if (!batchEventMeshProducer.isStarted()) { completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_BATCH_PRODUCER_STOPED_ERR, null, SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_BATCH_PRODUCER_STOPED_ERR, null, SendMessageBatchResponseBody.class); return; } - final long batchStartTime = System.currentTimeMillis(); - + final Stopwatch stopwatch = Stopwatch.createStarted(); String remoteAddr = RemotingHelper.parseChannelRemoteAddr(ctx.channel()); int requestCode = Integer.parseInt(request.getRequestCode()); - Map> topicBatchMessageMappings = new ConcurrentHashMap>(); + Map> topicBatchMessageMappings = new ConcurrentHashMap<>(); for (CloudEvent cloudEvent : eventList) { if (StringUtils.isBlank(cloudEvent.getSubject()) || cloudEvent.getData() == null) { @@ -212,7 +199,7 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext this.acl.doAclCheckInHttpSend(remoteAddr, user, pass, subsystem, cloudEvent.getSubject(), requestCode); } catch (Exception e) { completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_ACL_ERR, e.getMessage(), SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_ACL_ERR, e.getMessage(), SendMessageBatchResponseBody.class); aclLogger.warn("CLIENT HAS NO PERMISSION,BatchSendMessageProcessor send failed", e); return; } @@ -247,7 +234,7 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext if (CollectionUtils.isEmpty(eventList)) { completeResponse(request, asyncContext, sendMessageBatchResponseHeader, - EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, null, SendMessageBatchResponseBody.class); + EventMeshRetCode.EVENTMESH_PROTOCOL_BODY_ERR, null, SendMessageBatchResponseBody.class); return; } @@ -259,8 +246,7 @@ public void processRequest(ChannelHandlerContext ctx, AsyncContext // TODO: Implementation in API. Consider whether to put it in the plug-in. CloudEvent event = null; // TODO: Detect the maximum length of messages for different producers. - final SendMessageContext sendMessageContext = new SendMessageContext(batchId, event, batchEventMeshProducer, - eventMeshHTTPServer); + final SendMessageContext sendMessageContext = new SendMessageContext(batchId, event, batchEventMeshProducer, eventMeshHTTPServer); sendMessageContext.setEventList(eventlist); batchEventMeshProducer.send(sendMessageContext, new SendCallback() { @Override @@ -277,8 +263,7 @@ public void onException(OnExceptionContext context) { } } else { for (CloudEvent event : eventList) { - final SendMessageContext sendMessageContext = new SendMessageContext(batchId, event, batchEventMeshProducer, - eventMeshHTTPServer); + final SendMessageContext sendMessageContext = new SendMessageContext(batchId, event, batchEventMeshProducer, eventMeshHTTPServer); batchEventMeshProducer.send(sendMessageContext, new SendCallback() { @Override public void onSuccess(SendResult sendResult) { @@ -295,13 +280,14 @@ public void onException(OnExceptionContext context) { } } - long batchEndTime = System.currentTimeMillis(); - summaryMetrics.recordBatchSendMsgCost(batchEndTime - batchStartTime); - batchMessageLogger.debug("batchMessage|eventMesh2mq|REQ|ASYNC|batchId={}|send2MQCost={}ms|msgNum={}|topics={}", - batchId, batchEndTime - batchStartTime, eventSize, topicBatchMessageMappings.keySet()); - + long elapsed = stopwatch.elapsed(TimeUnit.MILLISECONDS); + summaryMetrics.recordBatchSendMsgCost(elapsed); + if (batchMessageLogger.isDebugEnabled()) { + batchMessageLogger.debug("batchMessage|eventMesh2mq|REQ|ASYNC|batchId={}|send2MQCost={}ms|msgNum={}|topics={}", + batchId, elapsed, eventSize, topicBatchMessageMappings.keySet()); + } completeResponse(request, asyncContext, sendMessageBatchResponseHeader, EventMeshRetCode.SUCCESS, null, - SendMessageBatchResponseBody.class); + SendMessageBatchResponseBody.class); return; } } From 8ad08ba1e8d7b773d77b27f83a9ea4cbabb920bb Mon Sep 17 00:00:00 2001 From: codingprh Date: Thu, 20 Jul 2023 10:28:06 +0800 Subject: [PATCH 077/333] [ISSUE #4194]Dereference of 'heartbeatItems' may produce NPE. (#4235) * fix: Dereference of 'heartbeatItems' may produce NPE. * style: code checkstyle. --------- Co-authored-by: noah.pan --- .../core/protocol/grpc/processor/HeartbeatProcessor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java index 805f16f354..b661fc673d 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/processor/HeartbeatProcessor.java @@ -34,6 +34,7 @@ import java.util.Date; import java.util.List; +import java.util.Objects; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -92,6 +93,7 @@ public void process(CloudEvent heartbeat, EventEmitter emitter) thro List heartbeatItems = JsonUtils.parseTypeReferenceObject(heartbeat.getTextData(), new TypeReference>() { }); + Objects.requireNonNull(heartbeatItems, "heartbeatItems can't be null"); for (HeartbeatItem item : heartbeatItems) { ConsumerGroupClient hbClient = ConsumerGroupClient.builder() .env(env) From 1ba925bdd48a57b91a77a66b5a89e501209f48fd Mon Sep 17 00:00:00 2001 From: yiqf Date: Thu, 20 Jul 2023 10:31:23 +0800 Subject: [PATCH 078/333] [ISSUE #4236] TCP reconnection failed --- .../client/tcp/impl/cloudevent/CloudEventTCPPubClient.java | 2 ++ .../client/tcp/impl/cloudevent/CloudEventTCPSubClient.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPPubClient.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPPubClient.java index ed98bbce4d..35f2186b34 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPPubClient.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPPubClient.java @@ -37,6 +37,7 @@ import io.cloudevents.core.format.EventFormat; import io.cloudevents.core.provider.EventFormatProvider; import io.cloudevents.jackson.JsonFormat; +import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; import com.google.common.base.Preconditions; @@ -138,6 +139,7 @@ public void close() { } } + @Sharable private class CloudEventTCPPubHandler extends AbstractEventMeshTCPPubHandler { public CloudEventTCPPubHandler(ConcurrentHashMap contexts) { diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java index dbebc6dcc6..3e9adb3b56 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java @@ -44,6 +44,7 @@ import io.cloudevents.core.format.EventFormat; import io.cloudevents.core.provider.EventFormatProvider; import io.cloudevents.jackson.JsonFormat; +import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; import com.google.common.base.Preconditions; @@ -141,6 +142,7 @@ public void close() { } } + @Sharable private class CloudEventTCPSubHandler extends AbstractEventMeshTCPSubHandler { public CloudEventTCPSubHandler( From 14bf5c239b016bab788be42bf04af0691d4931fc Mon Sep 17 00:00:00 2001 From: codingprh Date: Thu, 20 Jul 2023 15:52:05 +0800 Subject: [PATCH 079/333] [ISSUE #4199] Catch Exception instead of Throwable (#4234) * fix: Catch Exception instead of Throwable * style: code checkstyle. --------- Co-authored-by: noah.pan --- .../core/protocol/grpc/service/EventEmitter.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/EventEmitter.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/EventEmitter.java index c1eec14a5c..c4b21106b8 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/EventEmitter.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/service/EventEmitter.java @@ -19,7 +19,6 @@ import io.grpc.stub.StreamObserver; - import lombok.extern.slf4j.Slf4j; @Slf4j @@ -34,24 +33,24 @@ public EventEmitter(StreamObserver emitter) { public synchronized void onNext(T event) { try { emitter.onNext(event); - } catch (Throwable t) { - log.warn("StreamObserver Error onNext. {}", t.getMessage()); + } catch (Exception e) { + log.warn("StreamObserver Error onNext. {}", e.getMessage()); } } public synchronized void onCompleted() { try { emitter.onCompleted(); - } catch (Throwable t) { - log.warn("StreamObserver Error onCompleted. {}", t.getMessage()); + } catch (Exception e) { + log.warn("StreamObserver Error onCompleted. {}", e.getMessage()); } } public synchronized void onError(Throwable t) { try { emitter.onError(t); - } catch (Throwable t1) { - log.warn("StreamObserver Error onError. {}", t1.getMessage()); + } catch (Exception e) { + log.warn("StreamObserver Error onError. {}", e.getMessage()); } } From 4b994b0308a74de2290103b2ecf95dcd85d41f11 Mon Sep 17 00:00:00 2001 From: Vincent Low <68309124+VL-037@users.noreply.github.com> Date: Thu, 20 Jul 2023 14:58:39 +0700 Subject: [PATCH 080/333] [ISSUE #4021] Replace LinkedList by ArrayList (#4233) * replace LinkedList by ArrayList * update import order --- .../apache/eventmesh/common/protocol/tcp/Subscription.java | 4 ++-- .../apache/eventmesh/runtime/boot/EventMeshGrpcServer.java | 4 ++-- .../runtime/core/protocol/grpc/consumer/ConsumerManager.java | 3 +-- .../client/tcp/impl/cloudevent/CloudEventTCPSubClient.java | 4 ++-- .../impl/eventmeshmessage/EventMeshMessageTCPSubClient.java | 4 ++-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/Subscription.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/Subscription.java index 943988f323..f1a6dbcdd1 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/Subscription.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/tcp/Subscription.java @@ -19,12 +19,12 @@ import org.apache.eventmesh.common.protocol.SubscriptionItem; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; public class Subscription { - private List topicList = new LinkedList<>(); + private List topicList = new ArrayList<>(); public Subscription() { } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java index 5461192148..4a5cdb2ae3 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshGrpcServer.java @@ -41,8 +41,8 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; +import java.util.ArrayList; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Optional; import java.util.concurrent.BlockingQueue; @@ -276,7 +276,7 @@ private void initThreadPool() { } private void initHttpClientPool() { - httpClientPool = new LinkedList<>(); + httpClientPool = new ArrayList<>(); int clientPool = RandomUtils.nextInt(MIN_LIMIT, MAX_LIMIT); for (int i = 0; i < clientPool; i++) { CloseableHttpClient client = HttpClients.createDefault(); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java index 1260a6bc6c..cbe61e22da 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/grpc/consumer/ConsumerManager.java @@ -32,7 +32,6 @@ import java.util.Date; import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -210,7 +209,7 @@ private void startClientCheck() { log.debug("grpc client info check"); } - final List clientList = new LinkedList<>(); + final List clientList = new ArrayList<>(); clientTable.values().forEach(clients -> { clientList.addAll(clients); }); diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java index dbebc6dcc6..373c12e9b7 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java @@ -35,8 +35,8 @@ import org.apache.commons.collections4.CollectionUtils; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -56,7 +56,7 @@ @Slf4j class CloudEventTCPSubClient extends TcpClient implements EventMeshTCPSubClient { - private final List subscriptionItems = Collections.synchronizedList(new LinkedList<>()); + private final List subscriptionItems = Collections.synchronizedList(new ArrayList<>()); private ReceiveMsgHook callback; public CloudEventTCPSubClient(EventMeshTCPClientConfig eventMeshTcpClientConfig) { diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/eventmeshmessage/EventMeshMessageTCPSubClient.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/eventmeshmessage/EventMeshMessageTCPSubClient.java index dc159e1e13..cb589eb49f 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/eventmeshmessage/EventMeshMessageTCPSubClient.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/eventmeshmessage/EventMeshMessageTCPSubClient.java @@ -36,8 +36,8 @@ import org.apache.commons.collections4.CollectionUtils; +import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @@ -48,7 +48,7 @@ @Slf4j class EventMeshMessageTCPSubClient extends TcpClient implements EventMeshTCPSubClient { - private final List subscriptionItems = Collections.synchronizedList(new LinkedList<>()); + private final List subscriptionItems = Collections.synchronizedList(new ArrayList<>()); private ReceiveMsgHook callback; public EventMeshMessageTCPSubClient(EventMeshTCPClientConfig eventMeshTcpClientConfig) { From 4119ada632d58c2fb56e6064c2b5249ce83e2045 Mon Sep 17 00:00:00 2001 From: Fabian Bao Date: Thu, 20 Jul 2023 16:00:54 +0800 Subject: [PATCH 081/333] [ISSUE #4202] Do some code optimization.[util] (#4230) * Do some code optimization.[util] * Do some code optimization.[util] --- .../eventmesh/runtime/util/HttpResponseUtils.java | 12 +++++++----- .../eventmesh/runtime/util/ValueComparator.java | 2 ++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/HttpResponseUtils.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/HttpResponseUtils.java index 95cf010195..0b3812f8a8 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/HttpResponseUtils.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/HttpResponseUtils.java @@ -29,6 +29,7 @@ import io.netty.handler.codec.http.HttpResponse; import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.handler.codec.http.HttpVersion; +import io.netty.util.AsciiString; public class HttpResponseUtils { @@ -52,16 +53,17 @@ private static ByteBuf crateByteBuf(ChannelHandlerContext ctx, String body) { } public static HttpResponse setResponseJsonBody(String body, ChannelHandlerContext ctx) { - HttpHeaders responseHeaders = new DefaultHttpHeaders(); - responseHeaders.add(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON); - return new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, crateByteBuf(ctx, body), - responseHeaders, responseHeaders); + return getHttpResponse(body, ctx, HttpHeaderValues.APPLICATION_JSON); } public static HttpResponse setResponseTextBody(String body, ChannelHandlerContext ctx) { + return getHttpResponse(body, ctx, HttpHeaderValues.TEXT_HTML); + } + + public static HttpResponse getHttpResponse(String body, ChannelHandlerContext ctx, AsciiString headerValue) { HttpHeaders responseHeaders = new DefaultHttpHeaders(); - responseHeaders.add(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.TEXT_HTML); + responseHeaders.add(HttpHeaderNames.CONTENT_TYPE, headerValue); return new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, crateByteBuf(ctx, body), responseHeaders, responseHeaders); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/ValueComparator.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/ValueComparator.java index a84dfbd4bb..8622e6503c 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/ValueComparator.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/util/ValueComparator.java @@ -23,6 +23,8 @@ public class ValueComparator implements Comparator>, Serializable { + private static final long serialVersionUID = -8734777387846774249L; + @Override public int compare(Map.Entry x, Map.Entry y) { if (x.getValue().intValue() != y.getValue().intValue()) { From 6c94d9deb1b24af946fa3ae3e92beaead72f5ffc Mon Sep 17 00:00:00 2001 From: Jett <54354665+epiao55@users.noreply.github.com> Date: Fri, 21 Jul 2023 10:02:52 +0800 Subject: [PATCH 082/333] [ISSUE #4011] add kafkaConnector module (#4180) * [ISSUE apache#4011] add kafkaConnector module * [ISSUE apache#4011] add kafkaConnector module * [ISSUE apache#4011] fix codestyle * Fixes #4011. add default config for kafka sink and source --- .../eventmesh-connector-kafka/build.gradle | 24 ++++ .../gradle.properties | 18 +++ .../kafka/config/KafkaServerConfig.java | 31 +++++ .../kafka/server/KafkaConnectServer.java | 46 +++++++ .../kafka/sink/config/KafkaSinkConfig.java | 29 +++++ .../sink/config/SinkConnectorConfig.java | 39 ++++++ .../sink/connector/KafkaSinkConnector.java | 116 +++++++++++++++++ .../source/config/KafkaSourceConfig.java | 28 +++++ .../source/config/SourceConnectorConfig.java | 37 ++++++ .../connector/KafkaSourceConnector.java | 119 ++++++++++++++++++ .../src/main/resources/server-config.yml | 19 +++ .../src/main/resources/sink-config.yml | 33 +++++ .../src/main/resources/source-config.yml | 32 +++++ settings.gradle | 1 + 14 files changed, 572 insertions(+) create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/build.gradle create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/gradle.properties create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/config/KafkaServerConfig.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/server/KafkaConnectServer.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/KafkaSinkConfig.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/SinkConnectorConfig.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/connector/KafkaSinkConnector.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/KafkaSourceConfig.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/SourceConnectorConfig.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/connector/KafkaSourceConnector.java create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/server-config.yml create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/sink-config.yml create mode 100644 eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/source-config.yml diff --git a/eventmesh-connectors/eventmesh-connector-kafka/build.gradle b/eventmesh-connectors/eventmesh-connector-kafka/build.gradle new file mode 100644 index 0000000000..98176995bd --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/build.gradle @@ -0,0 +1,24 @@ +/* + * 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. + */ + +dependencies { + implementation project(":eventmesh-openconnect:eventmesh-openconnect-java") + implementation 'io.cloudevents:cloudevents-kafka:2.4.2' + implementation 'org.apache.kafka:kafka-clients:3.0.0' + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' +} \ No newline at end of file diff --git a/eventmesh-connectors/eventmesh-connector-kafka/gradle.properties b/eventmesh-connectors/eventmesh-connector-kafka/gradle.properties new file mode 100644 index 0000000000..4486939e8d --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/gradle.properties @@ -0,0 +1,18 @@ +# +# 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. +# +pluginType=connector +pluginName=kafka \ No newline at end of file diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/config/KafkaServerConfig.java b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/config/KafkaServerConfig.java new file mode 100644 index 0000000000..2c9ef71fb4 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/config/KafkaServerConfig.java @@ -0,0 +1,31 @@ +/* + * 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.connector.kafka.config; + +import org.apache.eventmesh.openconnect.api.config.Config; + +import lombok.Data; + +@Data +public class KafkaServerConfig extends Config { + + private boolean sourceEnable; + + private boolean sinkEnable; + +} diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/server/KafkaConnectServer.java b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/server/KafkaConnectServer.java new file mode 100644 index 0000000000..3115b5bf46 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/server/KafkaConnectServer.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.connector.kafka.server; + +import org.apache.eventmesh.connector.kafka.config.KafkaServerConfig; +import org.apache.eventmesh.connector.kafka.sink.connector.KafkaSinkConnector; +import org.apache.eventmesh.connector.kafka.source.connector.KafkaSourceConnector; +import org.apache.eventmesh.openconnect.Application; +import org.apache.eventmesh.openconnect.util.ConfigUtil; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class KafkaConnectServer { + + + public static void main(String[] args) throws Exception { + + KafkaServerConfig serverConfig = ConfigUtil.parse(KafkaServerConfig.class, "server-config.yml"); + + if (serverConfig.isSourceEnable()) { + Application kafkaSourceApp = new Application(); + kafkaSourceApp.run(KafkaSourceConnector.class); + } + + if (serverConfig.isSinkEnable()) { + Application kafkaSinkApp = new Application(); + kafkaSinkApp.run(KafkaSinkConnector.class); + } + } +} diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/KafkaSinkConfig.java b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/KafkaSinkConfig.java new file mode 100644 index 0000000000..9bb79551db --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/KafkaSinkConfig.java @@ -0,0 +1,29 @@ +/* + * 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.connector.kafka.sink.config; + +import org.apache.eventmesh.openconnect.api.config.SinkConfig; + +import lombok.Data; + +@Data +public class KafkaSinkConfig extends SinkConfig { + + public SinkConnectorConfig connectorConfig; + +} diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/SinkConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/SinkConnectorConfig.java new file mode 100644 index 0000000000..a240bf4f49 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/config/SinkConnectorConfig.java @@ -0,0 +1,39 @@ +/* + * 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.connector.kafka.sink.config; + +import lombok.Data; + +@Data +public class SinkConnectorConfig { + + private String connectorName = "kafkaSink"; + private String topic = "TopicTest"; + private String ack = "all"; + private String bootstrapServers = "127.0.0.1:9092"; + private String keyConverter = "org.apache.kafka.common.serialization.StringSerializer"; + private String valueConverter = "org.apache.kafka.common.serialization.StringSerializer"; + private String maxRequestSize = "1048576"; + private String bufferMemory = "33554432"; + private String batchSize = "16384"; + private String lingerMs = "0"; + private String requestTimeoutMs = "30000"; + private String maxInFightRequestsPerConnection = "5"; + private String retries = "0"; + private String compressionType = "none"; +} 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 new file mode 100644 index 0000000000..01a36208e7 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/sink/connector/KafkaSinkConnector.java @@ -0,0 +1,116 @@ +/* + * 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.connector.kafka.sink.connector; + +import org.apache.eventmesh.connector.kafka.sink.config.KafkaSinkConfig; +import org.apache.eventmesh.openconnect.api.config.Config; +import org.apache.eventmesh.openconnect.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.api.sink.Sink; + +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.Producer; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.common.header.Header; +import org.apache.kafka.common.header.internals.RecordHeader; + +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class KafkaSinkConnector implements Sink { + + private KafkaSinkConfig sinkConfig; + + private Properties props = new Properties(); + Producer producer; + + @Override + public Class configClass() { + return KafkaSinkConfig.class; + } + + @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); + } + + @Override + public void start() throws Exception { + } + + @Override + public void commit(ConnectRecord record) { + + } + + @Override + public String name() { + return this.sinkConfig.getConnectorConfig().getConnectorName(); + } + + @Override + public void stop() { + producer.close(); + } + + @Override + public void put(List sinkRecords) { + try { + for (ConnectRecord connectRecord : sinkRecords) { + ProducerRecord message = convertRecordToMessage(connectRecord); + producer.send(message, (metadata, exception) -> { + if (exception == null) { + log.debug("Produced message to topic:{},partition:{},offset:{}", metadata.topic(), metadata.partition(), metadata.offset()); + } else { + log.error("Failed to produce message:{}", exception.getMessage()); + } + }); + } + } catch (Exception e) { + log.error("Failed to produce message:{}", e.getMessage()); + } + } + + public ProducerRecord convertRecordToMessage(ConnectRecord connectRecord) { + List
headers = new ArrayList<>(); + for (String key : connectRecord.getExtensions().keySet()) { + headers.add(new RecordHeader(key, connectRecord.getExtension(key).getBytes(StandardCharsets.UTF_8))); + } + ProducerRecord message = new ProducerRecord(this.sinkConfig.getConnectorConfig().getTopic(), null, "", + new String((byte[]) connectRecord.getData(), StandardCharsets.UTF_8), headers); + return message; + } +} diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/KafkaSourceConfig.java b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/KafkaSourceConfig.java new file mode 100644 index 0000000000..4319ec96d7 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/KafkaSourceConfig.java @@ -0,0 +1,28 @@ +/* + * 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.connector.kafka.source.config; + +import org.apache.eventmesh.openconnect.api.config.SourceConfig; + +import lombok.Data; + +@Data +public class KafkaSourceConfig extends SourceConfig { + + public SourceConnectorConfig connectorConfig; +} diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/SourceConnectorConfig.java b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/SourceConnectorConfig.java new file mode 100644 index 0000000000..acfb9ffe72 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/config/SourceConnectorConfig.java @@ -0,0 +1,37 @@ +/* + * 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.connector.kafka.source.config; + +import lombok.Data; + +@Data +public class SourceConnectorConfig { + + private String connectorName = "kafkaSource"; + private String topic = "TopicTest"; + private String bootstrapServers = "127.0.0.1:9092"; + private String groupID = "kafkaSource"; + private String keyConverter = "org.apache.kafka.common.serialization.StringSerializer"; + private String valueConverter = "org.apache.kafka.common.serialization.StringSerializer"; + private String autoCommitIntervalMS = "1000"; + private String enableAutoCommit = "false"; + private String sessionTimeoutMS = "3000"; + private String maxPollRecords = "1000"; + private int pollTimeOut = 100; +} 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 new file mode 100644 index 0000000000..64487c63d3 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/java/org/apache/eventmesh/connector/kafka/source/connector/KafkaSourceConnector.java @@ -0,0 +1,119 @@ +/* + * 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.connector.kafka.source.connector; + +import org.apache.eventmesh.connector.kafka.source.config.KafkaSourceConfig; +import org.apache.eventmesh.openconnect.api.config.Config; +import org.apache.eventmesh.openconnect.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.api.data.RecordOffset; +import org.apache.eventmesh.openconnect.api.data.RecordPartition; +import org.apache.eventmesh.openconnect.api.source.Source; + +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; + +import java.time.Duration; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +public class KafkaSourceConnector implements Source { + + private KafkaSourceConfig sourceConfig; + + private KafkaConsumer kafkaConsumer; + + private int pollTimeOut = 100; + + @Override + public Class configClass() { + return KafkaSourceConfig.class; + } + + @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(props); + } + + @Override + public void start() throws Exception { + kafkaConsumer.subscribe(Collections.singleton(sourceConfig.getConnectorConfig().getTopic())); + } + + @Override + public void commit(ConnectRecord record) { + + } + + @Override + public String name() { + return this.sourceConfig.getConnectorConfig().getConnectorName(); + } + + @Override + public void stop() { + kafkaConsumer.unsubscribe(); + } + + @Override + public List poll() { + ConsumerRecords records = kafkaConsumer.poll(Duration.ofMillis(pollTimeOut)); + List connectRecords = new ArrayList<>(records.count()); + for (ConsumerRecord record : records) { + Long timestamp = System.currentTimeMillis(); + String key = record.key(); + String value = record.value(); + RecordPartition recordPartition = convertToRecordPartition(record.topic(), record.partition()); + RecordOffset recordOffset = convertToRecordOffset(record.offset()); + ConnectRecord connectRecord = new ConnectRecord(recordPartition, recordOffset, timestamp, value); + connectRecord.addExtension("key", key); + connectRecords.add(connectRecord); + } + kafkaConsumer.commitAsync(); + return connectRecords; + } + + public static RecordOffset convertToRecordOffset(Long offset) { + Map offsetMap = new HashMap<>(); + offsetMap.put("queueOffset", offset + ""); + return new RecordOffset(offsetMap); + } + + public static RecordPartition convertToRecordPartition(String topic, int partition) { + Map map = new HashMap<>(); + map.put("topic", topic); + map.put("partition", String.valueOf(partition)); + return new RecordPartition(map); + } +} diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/server-config.yml b/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/server-config.yml new file mode 100644 index 0000000000..0cd7b5b5ab --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/server-config.yml @@ -0,0 +1,19 @@ +# +# 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. +# + +sourceEnable: true +sinkEnable: false diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/sink-config.yml b/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/sink-config.yml new file mode 100644 index 0000000000..2416878257 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/sink-config.yml @@ -0,0 +1,33 @@ +# +# 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. +# + +pubSubConfig: + meshAddress: 127.0.0.1:10000 + subject: TopicTest + idc: FT + env: PRD + group: kafkaSink + appId: 5031 + userName: kafkaSinkUser + passWord: kafkaPassWord +connectorConfig: + connectorName: kafkaSink + bootstrapServers: + topic: TopicTest + keyConverter: org.apache.kafka.common.serialization.StringSerializer + valueConverter: org.apache.kafka.common.serialization.StringSerializer + diff --git a/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/source-config.yml b/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/source-config.yml new file mode 100644 index 0000000000..4376df8016 --- /dev/null +++ b/eventmesh-connectors/eventmesh-connector-kafka/src/main/resources/source-config.yml @@ -0,0 +1,32 @@ +# +# 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. +# + +pubSubConfig: + meshAddress: 127.0.0.1:10000 + subject: TopicTest + idc: FT + env: PRD + group: kafkaSource + appId: 5032 + userName: kafkaSourceUser + passWord: kafkaPassWord +connectorConfig: + connectorName: kafkaSource + bootstrapServers: 127.0.0.1:9090 + topic: TopicTest + groupID: kafkaSource + maxPollRecords: 1000 diff --git a/settings.gradle b/settings.gradle index 405d64d264..84ee320371 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,6 +26,7 @@ include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' include 'eventmesh-connectors:eventmesh-connector-rocketmq' include 'eventmesh-connectors:eventmesh-connector-openfunction' +include 'eventmesh-connectors:eventmesh-connector-kafka' include 'eventmesh-storage-plugin:eventmesh-storage-api' include 'eventmesh-storage-plugin:eventmesh-storage-standalone' include 'eventmesh-storage-plugin:eventmesh-storage-kafka' From a0ac44ce9f9b1b54813273bf833deb08f799de0d Mon Sep 17 00:00:00 2001 From: mike_xwm Date: Fri, 21 Jul 2023 10:05:15 +0800 Subject: [PATCH 083/333] Update README.md --- eventmesh-connectors/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/eventmesh-connectors/README.md b/eventmesh-connectors/README.md index a52d5dd73e..0e3c2f5b25 100644 --- a/eventmesh-connectors/README.md +++ b/eventmesh-connectors/README.md @@ -37,4 +37,8 @@ Add a new connector by implementing the source/sink interface using : | MongoDB | Source | N/A | | S3File | Sink | N/A | | S3File | Source | N/A | +| Knative | Sink | N/A | +| Knative | Source | N/A | +| Pravega | Sink | N/A | +| Pravega | Source | N/A | | More connectors will be added... | Source/Sink | N/A | From d3a48c8c3625db98712d174bb9b25f4920917041 Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Fri, 21 Jul 2023 14:25:11 +0800 Subject: [PATCH 084/333] add offsetStorage model --- .../openfunction/service/ConsumerService.java | 2 +- .../src/main/resources/sink-config.yml | 2 +- .../eventmesh-openconnect-java/build.gradle | 1 + .../eventmesh/openconnect/Application.java | 12 ++ .../eventmesh/openconnect/SinkWorker.java | 1 + .../eventmesh/openconnect/SourceWorker.java | 15 +- .../openconnect/api/config/SourceConfig.java | 4 + .../openconnect/api/source/Source.java | 2 +- .../build.gradle | 33 ++++ .../build.gradle | 33 ++++ .../gradle.properties | 16 ++ .../api/config/OffsetStorageConfig.java | 21 +++ .../offsetmgmt}/api/data/ConnectRecord.java | 2 +- .../offsetmgmt}/api/data/DefaultKeyValue.java | 2 +- .../offsetmgmt}/api/data/KeyValue.java | 2 +- .../offsetmgmt}/api/data/RecordOffset.java | 2 +- .../offsetmgmt}/api/data/RecordPartition.java | 2 +- .../offsetmgmt}/api/data/RecordPosition.java | 5 +- .../api/storage/ConnectorRecordPartition.java | 63 +++++++ .../api/storage/OffsetManagementService.java | 93 ++++++++++ .../api/storage/OffsetStorageReader.java | 35 ++++ .../api/storage/OffsetStorageWriter.java | 34 ++++ .../api/storage/OffsetStorageWriterImpl.java | 172 ++++++++++++++++++ .../build.gradle | 31 ++++ .../gradle.properties | 16 ++ .../gradle.properties | 16 ++ .../eventmesh/spi/EventMeshExtensionType.java | 2 + settings.gradle | 3 + 28 files changed, 611 insertions(+), 11 deletions(-) create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/build.gradle create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/build.gradle create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/gradle.properties create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java rename eventmesh-openconnect/{eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect => eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt}/api/data/ConnectRecord.java (98%) rename eventmesh-openconnect/{eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect => eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt}/api/data/DefaultKeyValue.java (98%) rename eventmesh-openconnect/{eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect => eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt}/api/data/KeyValue.java (96%) rename eventmesh-openconnect/{eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect => eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt}/api/data/RecordOffset.java (96%) rename eventmesh-openconnect/{eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect => eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt}/api/data/RecordPartition.java (96%) rename eventmesh-openconnect/{eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect => eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt}/api/data/RecordPosition.java (91%) create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/ConnectorRecordPartition.java create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetManagementService.java create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageReader.java create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriter.java create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriterImpl.java create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/build.gradle create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/gradle.properties create mode 100644 eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/gradle.properties diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java index 1df20652a7..b4fc6e4362 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/java/org/apache/eventmesh/connector/openfunction/service/ConsumerService.java @@ -48,7 +48,7 @@ public class ConsumerService extends ConsumerServiceGrpc.ConsumerServiceImplBase public OpenFunctionServerConfig config; - private final transient ManagedChannel channel = ManagedChannelBuilder.forAddress("127.0.0.1", 10115).usePlaintext().build(); + private final transient ManagedChannel channel = ManagedChannelBuilder.forAddress(config.getTargetAddress(), config.getTargetPort()).usePlaintext().build(); private CallbackServiceBlockingStub publisherClient = CallbackServiceGrpc.newBlockingStub(channel); diff --git a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/sink-config.yml b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/sink-config.yml index 659ed04920..aec225b633 100644 --- a/eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/sink-config.yml +++ b/eventmesh-connectors/eventmesh-connector-openfunction/src/main/resources/sink-config.yml @@ -17,7 +17,7 @@ pubSubConfig: meshAddress: 127.0.0.1:10000 - subject: TEST-TOPIC-FUNCTION + subject: TEST-TOPIC-TCP-ASYNC idc: FT env: PRD group: openFunctionSink diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/build.gradle b/eventmesh-openconnect/eventmesh-openconnect-java/build.gradle index 07db9fff9e..0067a4cffa 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/build.gradle +++ b/eventmesh-openconnect/eventmesh-openconnect-java/build.gradle @@ -26,6 +26,7 @@ dependencies { implementation "com.fasterxml.jackson.core:jackson-annotations" implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml" + api project (":eventmesh-openconnect:eventmesh-openconnect-offsetmgmt-plugin:eventmesh-openconnect-offsetmgmt-api") implementation project(":eventmesh-sdks:eventmesh-sdk-java") compileOnly 'org.projectlombok:lombok' 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 af1b0960fe..11e7c8dfa2 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 @@ -23,7 +23,9 @@ import org.apache.eventmesh.openconnect.api.connector.Connector; import org.apache.eventmesh.openconnect.api.sink.Sink; import org.apache.eventmesh.openconnect.api.source.Source; +import org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetManagementService; import org.apache.eventmesh.openconnect.util.ConfigUtil; +import org.apache.eventmesh.spi.EventMeshExtensionFactory; import java.util.HashMap; import java.util.Map; @@ -36,6 +38,7 @@ public class Application { public static final Map CONNECTOR_MAP = new HashMap<>(); public void run(Class clazz) throws Exception { + Connector connector; try { connector = clazz.getDeclaredConstructor().newInstance(); @@ -52,6 +55,15 @@ public void run(Class clazz) throws Exception { log.error("parse config error", e); return; } + + + + // spi load offsetMgmt + String offsetMgmtPluginType = ""; + OffsetManagementService offsetManagementService = + EventMeshExtensionFactory.getExtension(OffsetManagementService.class, offsetMgmtPluginType); + offsetManagementService.initialize(config); + try { connector.init(config); CONNECTOR_MAP.putIfAbsent(connector.name(), connector); 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 e3058b859c..7d573005f2 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 @@ -135,6 +135,7 @@ public Optional handle(CloudEvent event) { connectRecord.addExtension("topic", event.getSubject()); connectRecord.addExtension("source", event.getSource().toString()); connectRecord.addExtension("type", event.getType()); + connectRecord.addExtension("datacontenttype", event.getDataContentType()); List connectRecords = new ArrayList<>(); connectRecords.add(connectRecord); sink.put(connectRecords); diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java index 0f0c2f4784..e579041ad7 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java @@ -26,8 +26,12 @@ import org.apache.eventmesh.common.utils.JsonUtils; import org.apache.eventmesh.common.utils.SystemUtils; import org.apache.eventmesh.openconnect.api.config.SourceConfig; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; + import org.apache.eventmesh.openconnect.api.source.Source; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetManagementService; +import org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetStorageReader; +import org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetStorageWriter; import org.apache.commons.collections4.CollectionUtils; @@ -53,6 +57,15 @@ public class SourceWorker implements ConnectorWorker { private final Source source; private final SourceConfig config; + /** + * Used to write the position of source data source. + */ + private final OffsetStorageWriter offsetStorageWriter; + + private final OffsetStorageReader offsetStorageReader; + + private final OffsetManagementService offsetManagementService; + private final ExecutorService pollService = Executors.newSingleThreadExecutor(); private final ExecutorService startService = Executors.newSingleThreadExecutor(); diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java index ab7c731b99..2942be936c 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/config/SourceConfig.java @@ -17,6 +17,8 @@ package org.apache.eventmesh.openconnect.api.config; +import org.apache.eventmesh.openconnect.offsetmgmt.api.config.OffsetStorageConfig; + import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,4 +28,6 @@ public abstract class SourceConfig extends Config { private PubSubConfig pubSubConfig; + private OffsetStorageConfig offsetStorageConfig; + } diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/source/Source.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/source/Source.java index 1b2b849b5e..d2b35a931d 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/source/Source.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/source/Source.java @@ -18,7 +18,7 @@ package org.apache.eventmesh.openconnect.api.source; import org.apache.eventmesh.openconnect.api.connector.Connector; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; import java.util.List; diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/build.gradle b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/build.gradle new file mode 100644 index 0000000000..07db9fff9e --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/build.gradle @@ -0,0 +1,33 @@ +/* + * 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. + */ + +dependencies { + api "org.slf4j:slf4j-api" + implementation "org.apache.logging.log4j:log4j-api" + implementation "org.apache.logging.log4j:log4j-core" + implementation "org.apache.logging.log4j:log4j-slf4j-impl" + + implementation "com.fasterxml.jackson.core:jackson-databind" + implementation "com.fasterxml.jackson.core:jackson-core" + implementation "com.fasterxml.jackson.core:jackson-annotations" + implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml" + + implementation project(":eventmesh-sdks:eventmesh-sdk-java") + + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' +} \ No newline at end of file diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/build.gradle b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/build.gradle new file mode 100644 index 0000000000..cfc6c4800f --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/build.gradle @@ -0,0 +1,33 @@ +/* + * 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. + */ + +dependencies { + api project(":eventmesh-spi") + api "org.slf4j:slf4j-api" + implementation "org.apache.logging.log4j:log4j-api" + implementation "org.apache.logging.log4j:log4j-core" + implementation "org.apache.logging.log4j:log4j-slf4j-impl" + + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + + testCompileOnly 'org.projectlombok:lombok' + testAnnotationProcessor 'org.projectlombok:lombok' + + testImplementation "org.mockito:mockito-core" + testImplementation "org.mockito:mockito-inline" +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/gradle.properties b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/gradle.properties new file mode 100644 index 0000000000..a9fd83fea0 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/gradle.properties @@ -0,0 +1,16 @@ +# +# 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. +# \ No newline at end of file diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java new file mode 100644 index 0000000000..9af8f4b650 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java @@ -0,0 +1,21 @@ +/* + * 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.openconnect.offsetmgmt.api.config; + +public class OffsetStorageConfig { +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/ConnectRecord.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/ConnectRecord.java similarity index 98% rename from eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/ConnectRecord.java rename to eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/ConnectRecord.java index e33aa2a581..9a83de34d2 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/ConnectRecord.java +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/ConnectRecord.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.openconnect.api.data; +package org.apache.eventmesh.openconnect.offsetmgmt.api.data; import java.util.Objects; import java.util.Set; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/DefaultKeyValue.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/DefaultKeyValue.java similarity index 98% rename from eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/DefaultKeyValue.java rename to eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/DefaultKeyValue.java index 6ce1b551f9..847e222c26 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/DefaultKeyValue.java +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/DefaultKeyValue.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.openconnect.api.data; +package org.apache.eventmesh.openconnect.offsetmgmt.api.data; import java.util.Map; import java.util.Set; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/KeyValue.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/KeyValue.java similarity index 96% rename from eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/KeyValue.java rename to eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/KeyValue.java index ecd374dd1c..a5e566a1e9 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/KeyValue.java +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/KeyValue.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.openconnect.api.data; +package org.apache.eventmesh.openconnect.offsetmgmt.api.data; import java.util.Set; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/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 similarity index 96% rename from eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/RecordOffset.java rename to eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordOffset.java index 5be9b60a76..1c6f7a620d 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/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 @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.openconnect.api.data; +package org.apache.eventmesh.openconnect.offsetmgmt.api.data; import java.util.Map; import java.util.Objects; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/RecordPartition.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordPartition.java similarity index 96% rename from eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/RecordPartition.java rename to eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordPartition.java index 67734ec60a..dd1d5792e3 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/RecordPartition.java +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordPartition.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.openconnect.api.data; +package org.apache.eventmesh.openconnect.offsetmgmt.api.data; import java.util.Map; import java.util.Objects; diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/RecordPosition.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordPosition.java similarity index 91% rename from eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/RecordPosition.java rename to eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordPosition.java index c2e37ffbd8..0b836ab607 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/data/RecordPosition.java +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/data/RecordPosition.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.eventmesh.openconnect.api.data; +package org.apache.eventmesh.openconnect.offsetmgmt.api.data; import java.util.Objects; @@ -25,7 +25,8 @@ public class RecordPosition { private final RecordOffset recordOffset; - public RecordPosition(RecordPartition recordPartition, RecordOffset recordOffset) { + public RecordPosition( + RecordPartition recordPartition, RecordOffset recordOffset) { this.recordPartition = recordPartition; this.recordOffset = 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 new file mode 100644 index 0000000000..049c4531e6 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/ConnectorRecordPartition.java @@ -0,0 +1,63 @@ +/* + * 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.openconnect.offsetmgmt.api.storage; + +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordPartition; + +import java.util.Map; +import java.util.Objects; + +/** + * extend record partition + */ +public class ConnectorRecordPartition extends RecordPartition { + /** + * connect name + */ + private String connectorName; + + public ConnectorRecordPartition(String connectorName, Map partition) { + super(partition); + this.connectorName = connectorName; + } + + public String getConnectorName() { + return connectorName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ConnectorRecordPartition)) return false; + if (!super.equals(o)) return false; + ConnectorRecordPartition that = (ConnectorRecordPartition) o; + return this.connectorName.equals(that.connectorName); + } + + @Override + public String toString() { + return "ConnectorRecordPartition{" + + "connectorName='" + connectorName + '\'' + + "} " + super.toString(); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), connectorName); + } +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetManagementService.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetManagementService.java new file mode 100644 index 0000000000..26bbbf955c --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetManagementService.java @@ -0,0 +1,93 @@ +/* + * 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.openconnect.offsetmgmt.api.storage; + +import org.apache.eventmesh.openconnect.offsetmgmt.api.config.OffsetStorageConfig; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordOffset; +import org.apache.eventmesh.spi.EventMeshExtensionType; +import org.apache.eventmesh.spi.EventMeshSPI; + +import java.util.List; +import java.util.Map; + + +/** + * Interface for offset manager. + */ +@EventMeshSPI(eventMeshExtensionType = EventMeshExtensionType.OFFSETMGMT) +public interface OffsetManagementService { + + /** + * Start the manager. + */ + void start(); + + /** + * Stop the manager. + */ + void stop(); + + /** + * Configure class with the given key-value pairs + */ + default void configure(OffsetStorageConfig config) { + + } + + /** + * Persist position info in a persist store. + */ + void persist(); + + /** + * load position info in a persist store. + */ + void load(); + + /** + * Synchronize to other nodes. + */ + void synchronize(boolean increment); + + /** + * Get the current position table. + * + * @return + */ + Map getPositionTable(); + + RecordOffset getPosition(ConnectorRecordPartition partition); + + /** + * Put a position info. + */ + void putPosition(Map positions); + + void putPosition(ConnectorRecordPartition partition, RecordOffset position); + + /** + * Remove a position info. + * + * @param partitions + */ + void removePosition(List partitions); + + void initialize(OffsetStorageConfig connectorConfig); + +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageReader.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageReader.java new file mode 100644 index 0000000000..dc17e29840 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageReader.java @@ -0,0 +1,35 @@ +/* + * 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.openconnect.offsetmgmt.api.storage; + +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordOffset; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordPartition; + +import java.util.Collection; +import java.util.Map; + +/** + * OffsetStorageReader + */ +public interface OffsetStorageReader { + + RecordOffset readOffset(RecordPartition recordPartition); + + Map readOffsets(Collection collection); + +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriter.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriter.java new file mode 100644 index 0000000000..f8b6bdc45e --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriter.java @@ -0,0 +1,34 @@ +/* + * 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.openconnect.offsetmgmt.api.storage; + +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordOffset; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordPartition; + +import java.util.Map; + +/** + * OffsetStorageWriter + */ +public interface OffsetStorageWriter { + + void writeOffset(RecordPartition recordPartition, RecordOffset recordOffset); + + void writeOffset(Map map); + +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriterImpl.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriterImpl.java new file mode 100644 index 0000000000..063ffc98a5 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/storage/OffsetStorageWriterImpl.java @@ -0,0 +1,172 @@ +/* + * 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.openconnect.offsetmgmt.api.storage; + +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordOffset; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.RecordPartition; + +import java.io.Closeable; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.FutureTask; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class OffsetStorageWriterImpl implements OffsetStorageWriter, Closeable { + + private final String connectorName; + private final ExecutorService executorService = Executors.newSingleThreadExecutor(); + private OffsetManagementService positionManagementService; + /** + * Offset data in Connect format + */ + private Map data = new HashMap<>(); + private Map toFlush = null; + + // Unique ID for each flush request to handle callbacks after timeouts + private long currentFlushId = 0; + + public OffsetStorageWriterImpl(String connectorName, OffsetManagementService positionManagementService) { + this.connectorName = connectorName; + this.positionManagementService = positionManagementService; + } + + @Override + public void writeOffset(RecordPartition partition, RecordOffset position) { + ConnectorRecordPartition extendRecordPartition = new ConnectorRecordPartition(connectorName, partition.getPartition()); + data.put(extendRecordPartition, position); + } + + /** + * write offsets + * + * @param positions positions + */ + @Override + public void writeOffset(Map positions) { + for (Map.Entry offset : positions.entrySet()) { + writeOffset(offset.getKey(), offset.getValue()); + } + } + + + private boolean isFlushing() { + return toFlush != null; + } + + /** + * begin flush offset + * + * @return + */ + public synchronized boolean beginFlush() { + if (isFlushing()) { + throw new RuntimeException("OffsetStorageWriter is already flushing"); + } + if (data.isEmpty()) { + return false; + } + this.toFlush = this.data; + this.data = new HashMap<>(); + return true; + } + + /** + * do flush offset + */ + public Future doFlush() { + final long flushId = currentFlushId; + return sendOffsetFuture(flushId); + } + + /** + * Cancel a flush that has been initiated by {@link #beginFlush}. + */ + public synchronized void cancelFlush() { + if (isFlushing()) { + // rollback to inited + toFlush.putAll(data); + data = toFlush; + currentFlushId++; + toFlush = null; + } + } + + private Future sendOffsetFuture(long flushId) { + FutureTask futureTask = new FutureTask<>(new SendOffsetCallback(flushId)); + executorService.submit(futureTask); + return futureTask; + } + + /** + * Closes this stream and releases any system resources associated + * with it. If the stream is already closed then invoking this + * method has no effect. + * + * @throws IOException if an I/O error occurs + */ + @Override + public void close() throws IOException { + executorService.shutdown(); + } + + + /** + * send offset callback + */ + private class SendOffsetCallback implements Callable { + long flushId; + + public SendOffsetCallback(long flushId) { + this.flushId = flushId; + } + + /** + * Computes a result, or throws an exception if unable to do so. + * + * @return computed result + * @throws Exception if unable to compute a result + */ + @Override + public Void call() { + try { + // has been canceled + if (flushId != currentFlushId) { + return null; + } + positionManagementService.putPosition(toFlush); + log.debug("Submitting {} entries to backing store. The offsets are: {}", data.size(), toFlush); + positionManagementService.persist(); + positionManagementService.synchronize(true); + // persist finished + toFlush = null; + currentFlushId++; + } catch (Throwable throwable) { + // rollback + cancelFlush(); + } + return null; + } + } +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/build.gradle b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/build.gradle new file mode 100644 index 0000000000..df03e7c632 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/build.gradle @@ -0,0 +1,31 @@ +/* + * 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. + */ + +dependencies { + api project(":eventmesh-spi") + implementation project(":eventmesh-common") + + + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + + testCompileOnly 'org.projectlombok:lombok' + testAnnotationProcessor 'org.projectlombok:lombok' + + testImplementation "org.mockito:mockito-core" + testImplementation "org.mockito:mockito-inline" +} diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/gradle.properties b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/gradle.properties new file mode 100644 index 0000000000..a9fd83fea0 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-nacos/gradle.properties @@ -0,0 +1,16 @@ +# +# 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. +# \ No newline at end of file diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/gradle.properties b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/gradle.properties new file mode 100644 index 0000000000..a9fd83fea0 --- /dev/null +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/gradle.properties @@ -0,0 +1,16 @@ +# +# 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. +# \ No newline at end of file diff --git a/eventmesh-spi/src/main/java/org/apache/eventmesh/spi/EventMeshExtensionType.java b/eventmesh-spi/src/main/java/org/apache/eventmesh/spi/EventMeshExtensionType.java index b07bd6e968..1de315b97a 100644 --- a/eventmesh-spi/src/main/java/org/apache/eventmesh/spi/EventMeshExtensionType.java +++ b/eventmesh-spi/src/main/java/org/apache/eventmesh/spi/EventMeshExtensionType.java @@ -29,6 +29,8 @@ public enum EventMeshExtensionType { PROTOCOL("protocol"), METRICS("metrics"), TRACE("trace"), + + OFFSETMGMT("offsetMgmt"), ; private final String extensionTypeName; diff --git a/settings.gradle b/settings.gradle index 405d64d264..4159e8ae25 100644 --- a/settings.gradle +++ b/settings.gradle @@ -24,6 +24,9 @@ include 'eventmesh-starter' include 'eventmesh-examples' include 'eventmesh-spi' include 'eventmesh-openconnect:eventmesh-openconnect-java' +include 'eventmesh-openconnect:eventmesh-openconnect-offsetmgmt-plugin:eventmesh-openconnect-offsetmgmt-api' +include 'eventmesh-openconnect:eventmesh-openconnect-offsetmgmt-plugin:eventmesh-openconnect-offsetmgmt-nacos' +include 'eventmesh-openconnect:eventmesh-openconnect-java' include 'eventmesh-connectors:eventmesh-connector-rocketmq' include 'eventmesh-connectors:eventmesh-connector-openfunction' include 'eventmesh-storage-plugin:eventmesh-storage-api' From 022c0519d363098398300d0cb81917d22e609499 Mon Sep 17 00:00:00 2001 From: Alonexc <91315508+Alonexc@users.noreply.github.com> Date: Fri, 21 Jul 2023 17:52:04 +0800 Subject: [PATCH 085/333] [ISSUE #4245] Fix start eventmesh failed. --- .../apache/eventmesh/runtime/boot/EventMeshHTTPServer.java | 6 +++--- .../core/protocol/http/processor/CreateTopicProcessor.java | 4 +++- .../core/protocol/http/processor/DeleteTopicProcessor.java | 6 ++++-- .../protocol/http/processor/QuerySubscriptionProcessor.java | 4 +++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java index 9d407b3cf1..4dd774981f 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshHTTPServer.java @@ -366,13 +366,13 @@ public void registerHTTPRequestProcessor() { final ReplyMessageProcessor replyMessageProcessor = new ReplyMessageProcessor(this); registerProcessor(RequestCode.REPLY_MESSAGE.getRequestCode(), replyMessageProcessor, replyMsgExecutor); - CreateTopicProcessor createTopicProcessor = new CreateTopicProcessor(this); + final CreateTopicProcessor createTopicProcessor = new CreateTopicProcessor(this); this.getHandlerService().register(createTopicProcessor, clientManageExecutor); - DeleteTopicProcessor deleteTopicProcessor = new DeleteTopicProcessor(this); + final DeleteTopicProcessor deleteTopicProcessor = new DeleteTopicProcessor(this); this.getHandlerService().register(deleteTopicProcessor, clientManageExecutor); - QuerySubscriptionProcessor querySubscriptionProcessor = new QuerySubscriptionProcessor(this); + final QuerySubscriptionProcessor querySubscriptionProcessor = new QuerySubscriptionProcessor(this); this.getHandlerService().register(querySubscriptionProcessor, clientManageExecutor); } diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java index 35adc3f306..24fc763b27 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/CreateTopicProcessor.java @@ -24,6 +24,7 @@ import org.apache.eventmesh.common.utils.IPUtils; import org.apache.eventmesh.common.utils.JsonUtils; import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer; +import org.apache.eventmesh.runtime.common.EventMeshTrace; import org.apache.eventmesh.runtime.constants.EventMeshConstants; import org.apache.eventmesh.runtime.core.protocol.http.async.AsyncContext; import org.apache.eventmesh.runtime.core.protocol.http.async.CompleteHandler; @@ -45,9 +46,10 @@ import com.fasterxml.jackson.core.type.TypeReference; +@EventMeshTrace public class CreateTopicProcessor implements AsyncHttpProcessor { - public Logger httpLogger = LoggerFactory.getLogger("http"); + private final Logger httpLogger = LoggerFactory.getLogger("http"); private final transient EventMeshHTTPServer eventMeshHTTPServer; diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java index 5b6dbd13d5..fb145073b3 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/DeleteTopicProcessor.java @@ -25,6 +25,7 @@ import org.apache.eventmesh.common.utils.IPUtils; import org.apache.eventmesh.common.utils.JsonUtils; import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer; +import org.apache.eventmesh.runtime.common.EventMeshTrace; import org.apache.eventmesh.runtime.constants.EventMeshConstants; import org.apache.eventmesh.runtime.core.protocol.http.async.AsyncContext; import org.apache.eventmesh.runtime.core.protocol.http.async.CompleteHandler; @@ -48,9 +49,10 @@ import com.fasterxml.jackson.core.type.TypeReference; +@EventMeshTrace public class DeleteTopicProcessor implements AsyncHttpProcessor { - public Logger httpLogger = LoggerFactory.getLogger("http"); + private final Logger httpLogger = LoggerFactory.getLogger("http"); private final transient EventMeshHTTPServer eventMeshHTTPServer; @@ -117,7 +119,7 @@ public void handler(HandlerService.HandlerSpecific handlerSpecific, HttpRequest faildTopic.add(deleteTopic); } } - if (faildTopic.size() > 0) { + if (!faildTopic.isEmpty()) { Map responseBodyMap = new HashMap<>(); StringBuilder sb = new StringBuilder(); diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java index 8d06c2a8d2..ac8488b122 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/QuerySubscriptionProcessor.java @@ -23,6 +23,7 @@ import org.apache.eventmesh.common.protocol.http.common.RequestURI; import org.apache.eventmesh.common.utils.IPUtils; import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer; +import org.apache.eventmesh.runtime.common.EventMeshTrace; import org.apache.eventmesh.runtime.constants.EventMeshConstants; import org.apache.eventmesh.runtime.core.protocol.http.async.AsyncContext; import org.apache.eventmesh.runtime.core.protocol.http.async.CompleteHandler; @@ -40,9 +41,10 @@ import io.netty.handler.codec.http.HttpRequest; import io.netty.handler.codec.http.HttpResponseStatus; +@EventMeshTrace public class QuerySubscriptionProcessor implements AsyncHttpProcessor { - public Logger httpLogger = LoggerFactory.getLogger("http"); + private final Logger httpLogger = LoggerFactory.getLogger("http"); private final transient EventMeshHTTPServer eventMeshHTTPServer; From d14acd2dc5e17d362d4253be112559d55555bd73 Mon Sep 17 00:00:00 2001 From: xwm1992 Date: Fri, 21 Jul 2023 18:16:44 +0800 Subject: [PATCH 086/333] update offsetStorage model --- .../connector/OpenFunctionSinkConnector.java | 2 +- .../connector/OpenFunctionSourceConnector.java | 2 +- .../eventmesh-connector-rocketmq/build.gradle | 2 +- .../sink/connector/RocketMQSinkConnector.java | 2 +- .../connector/RocketMQSourceConnector.java | 6 +++--- .../src/main/resources/source-config.yml | 2 ++ .../eventmesh/openconnect/Application.java | 10 ---------- .../eventmesh/openconnect/SourceWorker.java | 17 +++++++++++------ .../openconnect/api/connector/Connector.java | 2 +- .../eventmesh/openconnect/api/sink/Sink.java | 2 +- .../api/config/OffsetStorageConfig.java | 5 +++++ 11 files changed, 27 insertions(+), 25 deletions(-) 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 80052f4edf..434d8511e9 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 @@ -19,8 +19,8 @@ import org.apache.eventmesh.connector.openfunction.sink.config.OpenFunctionSinkConfig; import org.apache.eventmesh.openconnect.api.config.Config; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.sink.Sink; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; import java.util.List; import java.util.concurrent.BlockingQueue; 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 c259485758..79e87f1721 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 @@ -19,8 +19,8 @@ import org.apache.eventmesh.connector.openfunction.source.config.OpenFunctionSourceConfig; import org.apache.eventmesh.openconnect.api.config.Config; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.source.Source; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; import java.util.ArrayList; import java.util.List; diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle b/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle index bdad6c48e3..1439c5acad 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/build.gradle @@ -33,7 +33,7 @@ List rocketmq = [ ] dependencies { - implementation project(":eventmesh-openconnect:eventmesh-openconnect-java") + api project(":eventmesh-openconnect:eventmesh-openconnect-java") implementation rocketmq compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java index f33e604e2f..6993c8c258 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/java/org/apache/eventmesh/connector/rocketmq/sink/connector/RocketMQSinkConnector.java @@ -19,8 +19,8 @@ import org.apache.eventmesh.connector.rocketmq.sink.config.RocketMQSinkConfig; import org.apache.eventmesh.openconnect.api.config.Config; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.api.sink.Sink; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.SendResult; 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 fd7e44589b..925fa638ea 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 @@ -19,10 +19,10 @@ import org.apache.eventmesh.connector.rocketmq.source.config.RocketMQSourceConfig; import org.apache.eventmesh.openconnect.api.config.Config; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; -import org.apache.eventmesh.openconnect.api.data.RecordOffset; -import org.apache.eventmesh.openconnect.api.data.RecordPartition; 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.rocketmq.client.consumer.DefaultLitePullConsumer; import org.apache.rocketmq.common.message.MessageExt; diff --git a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml index eadb122ce4..1d702ca789 100644 --- a/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml +++ b/eventmesh-connectors/eventmesh-connector-rocketmq/src/main/resources/source-config.yml @@ -28,3 +28,5 @@ sourceConnectorConfig: connectorName: rocketmqSource nameserver: 127.0.0.1:9877 topic: TopicTest +offsetStorageConfig: + offsetStorageType: nacos 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 11e7c8dfa2..a7e5485fbe 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 @@ -49,21 +49,11 @@ public void run(Class clazz) throws Exception { Config config; try { config = ConfigUtil.parse(connector.configClass()); - // offset storage, memory default - //KVStoreFactory.setStoreConfig(config.getStoreConfig()); } catch (Exception e) { log.error("parse config error", e); return; } - - - // spi load offsetMgmt - String offsetMgmtPluginType = ""; - OffsetManagementService offsetManagementService = - EventMeshExtensionFactory.getExtension(OffsetManagementService.class, offsetMgmtPluginType); - offsetManagementService.initialize(config); - try { connector.init(config); CONNECTOR_MAP.putIfAbsent(connector.name(), connector); diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java index e579041ad7..0d30cd215a 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/SourceWorker.java @@ -28,10 +28,12 @@ import org.apache.eventmesh.openconnect.api.config.SourceConfig; import org.apache.eventmesh.openconnect.api.source.Source; +import org.apache.eventmesh.openconnect.offsetmgmt.api.config.OffsetStorageConfig; import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; import org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetManagementService; import org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetStorageReader; import org.apache.eventmesh.openconnect.offsetmgmt.api.storage.OffsetStorageWriter; +import org.apache.eventmesh.spi.EventMeshExtensionFactory; import org.apache.commons.collections4.CollectionUtils; @@ -57,12 +59,9 @@ public class SourceWorker implements ConnectorWorker { private final Source source; private final SourceConfig config; - /** - * Used to write the position of source data source. - */ - private final OffsetStorageWriter offsetStorageWriter; - - private final OffsetStorageReader offsetStorageReader; +// private final OffsetStorageWriter offsetStorageWriter; +// +// private final OffsetStorageReader offsetStorageReader; private final OffsetManagementService offsetManagementService; @@ -81,6 +80,12 @@ public SourceWorker(Source source, SourceConfig config) throws Exception { queue = new LinkedBlockingQueue<>(1000); eventMeshTCPClient = buildEventMeshPubClient(config); eventMeshTCPClient.init(); + // spi load offsetMgmt + OffsetStorageConfig offsetStorageConfig = config.getOffsetStorageConfig(); + String offsetMgmtPluginType = offsetStorageConfig.getOffsetStorageType(); + offsetManagementService = + EventMeshExtensionFactory.getExtension(OffsetManagementService.class, offsetMgmtPluginType); + offsetManagementService.initialize(offsetStorageConfig); } private EventMeshTCPClient buildEventMeshPubClient(SourceConfig config) { diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/Connector.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/Connector.java index 3ea43575b4..25491d702c 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/Connector.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/connector/Connector.java @@ -18,7 +18,7 @@ package org.apache.eventmesh.openconnect.api.connector; import org.apache.eventmesh.openconnect.api.config.Config; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; /** * Connector diff --git a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/sink/Sink.java b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/sink/Sink.java index 1982c4fa76..bcacd1ebae 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/sink/Sink.java +++ b/eventmesh-openconnect/eventmesh-openconnect-java/src/main/java/org/apache/eventmesh/openconnect/api/sink/Sink.java @@ -18,7 +18,7 @@ package org.apache.eventmesh.openconnect.api.sink; import org.apache.eventmesh.openconnect.api.connector.Connector; -import org.apache.eventmesh.openconnect.api.data.ConnectRecord; +import org.apache.eventmesh.openconnect.offsetmgmt.api.data.ConnectRecord; import java.util.List; diff --git a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java index 9af8f4b650..c8e8f01de7 100644 --- a/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java +++ b/eventmesh-openconnect/eventmesh-openconnect-offsetmgmt-plugin/eventmesh-openconnect-offsetmgmt-api/src/main/java/org/apache/eventmesh/openconnect/offsetmgmt/api/config/OffsetStorageConfig.java @@ -17,5 +17,10 @@ package org.apache.eventmesh.openconnect.offsetmgmt.api.config; +import lombok.Data; + +@Data public class OffsetStorageConfig { + + private String offsetStorageType; } From 3ad12c49ba41a9076f6a5d0e932f1a801e9fc7ce Mon Sep 17 00:00:00 2001 From: ruhshan Date: Sat, 22 Jul 2023 22:25:32 +0600 Subject: [PATCH 087/333] [ISSUE #4097]: Remove duplicate keys from kafka-client properties in eventmesh-storage-kafka (#4256) --- .../src/test/resources/kafka-client.properties | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/eventmesh-storage-plugin/eventmesh-storage-kafka/src/test/resources/kafka-client.properties b/eventmesh-storage-plugin/eventmesh-storage-kafka/src/test/resources/kafka-client.properties index 3b0c217e0a..d8517aad16 100644 --- a/eventmesh-storage-plugin/eventmesh-storage-kafka/src/test/resources/kafka-client.properties +++ b/eventmesh-storage-plugin/eventmesh-storage-kafka/src/test/resources/kafka-client.properties @@ -30,19 +30,4 @@ eventMesh.server.kafka.client.heartbeatBrokerInterval=9816 eventMesh.server.kafka.client.rebalanceInterval=11816 eventMesh.server.kafka.cluster=cluster-succeed!!! eventMesh.server.kafka.accessKey=accessKey-succeed!!! -eventMesh.server.kafka.secretKey=secretKey-succeed!!! -eventMesh.server.kafka.username=username-succeed!!! -eventMesh.server.kafka.password=password-succeed!!! -eventMesh.server.kafka.client.consumeThreadMin=1816 -eventMesh.server.kafka.client.consumeThreadMax=2816 -eventMesh.server.kafka.client.consumeThreadPoolQueueSize=3816 -eventMesh.server.kafka.client.pullBatchSize=4816 -eventMesh.server.kafka.client.ackwindow=5816 -eventMesh.server.kafka.client.pubwindow=6816 -eventMesh.server.kafka.client.comsumeTimeoutInMin=7816 -eventMesh.server.kafka.client.pollNameServerInterval=8816 -eventMesh.server.kafka.client.heartbeatBrokerInterval=9816 -eventMesh.server.kafka.client.rebalanceInterval=11816 -eventMesh.server.kafka.cluster=cluster-succeed!!! -eventMesh.server.kafka.accessKey=accessKey-succeed!!! eventMesh.server.kafka.secretKey=secretKey-succeed!!! \ No newline at end of file From 2a3c6800b005bc219307719465f0f0ca5e3f8fde Mon Sep 17 00:00:00 2001 From: kyooosukedn <87076947+kyooosukedn@users.noreply.github.com> Date: Mon, 24 Jul 2023 15:12:54 +0200 Subject: [PATCH 088/333] [ISSUE #4023]Comparison using reference equality instead of value equality.[Operation] (#4276) --- .../eventmesh/common/protocol/catalog/protos/Operation.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/catalog/protos/Operation.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/catalog/protos/Operation.java index 486ecf4cec..07e2407f49 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/catalog/protos/Operation.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/protocol/catalog/protos/Operation.java @@ -407,7 +407,7 @@ public static Builder newBuilder(Operation prototype) { @Override public Builder toBuilder() { - return this == DEFAULT_INSTANCE + return this.equals(DEFAULT_INSTANCE) ? new Builder() : new Builder().mergeFrom(this); } @@ -545,7 +545,7 @@ public Builder mergeFrom(com.google.protobuf.Message other) { } public Builder mergeFrom(Operation other) { - if (other == Operation.getDefaultInstance()) { + if (other.equals(Operation.getDefaultInstance())) { return this; } if (!other.getChannelName().isEmpty()) { From 2cb5aa94153b9b2762b0ff46c97c19d6e9b4a4e2 Mon Sep 17 00:00:00 2001 From: Sam V Jose <124816912+devCod3r@users.noreply.github.com> Date: Tue, 25 Jul 2023 07:58:42 +0530 Subject: [PATCH 089/333] [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] (#4270) * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] --- .../MeshMessageProtocolAdaptor.java | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/eventmesh-protocol-plugin/eventmesh-protocol-meshmessage/src/main/java/org/apache/eventmesh/protocol/meshmessage/MeshMessageProtocolAdaptor.java b/eventmesh-protocol-plugin/eventmesh-protocol-meshmessage/src/main/java/org/apache/eventmesh/protocol/meshmessage/MeshMessageProtocolAdaptor.java index 73c71784a1..663718e5fe 100644 --- a/eventmesh-protocol-plugin/eventmesh-protocol-meshmessage/src/main/java/org/apache/eventmesh/protocol/meshmessage/MeshMessageProtocolAdaptor.java +++ b/eventmesh-protocol-plugin/eventmesh-protocol-meshmessage/src/main/java/org/apache/eventmesh/protocol/meshmessage/MeshMessageProtocolAdaptor.java @@ -37,12 +37,10 @@ import org.apache.eventmesh.protocol.meshmessage.resolver.http.SendMessageRequestProtocolResolver; import org.apache.eventmesh.protocol.meshmessage.resolver.tcp.TcpMessageProtocolResolver; -import org.apache.commons.lang3.StringUtils; - -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import io.cloudevents.CloudEvent; @@ -77,19 +75,19 @@ private CloudEvent deserializeTcpProtocol(Header header, String bodyJson) throws } private CloudEvent deserializeHttpProtocol(String requestCode, - org.apache.eventmesh.common.protocol.http.header.Header header, - Body body) throws ProtocolHandleException { - - if (String.valueOf(RequestCode.MSG_BATCH_SEND.getRequestCode()).equals(requestCode)) { - return SendMessageBatchProtocolResolver.buildEvent(header, body); - } else if (String.valueOf(RequestCode.MSG_BATCH_SEND_V2.getRequestCode()).equals(requestCode)) { - return SendMessageBatchV2ProtocolResolver.buildEvent(header, body); - } else if (String.valueOf(RequestCode.MSG_SEND_SYNC.getRequestCode()).equals(requestCode)) { - return SendMessageRequestProtocolResolver.buildEvent(header, body); - } else if (String.valueOf(RequestCode.MSG_SEND_ASYNC.getRequestCode()).equals(requestCode)) { - return SendMessageRequestProtocolResolver.buildEvent(header, body); - } else { - throw new ProtocolHandleException(String.format("unsupported requestCode: %s", requestCode)); + org.apache.eventmesh.common.protocol.http.header.Header header, + Body body) throws ProtocolHandleException { + + switch (RequestCode.valueOf(requestCode)) { + case MSG_BATCH_SEND: + return SendMessageBatchProtocolResolver.buildEvent(header, body); + case MSG_BATCH_SEND_V2: + return SendMessageBatchV2ProtocolResolver.buildEvent(header, body); + case MSG_SEND_SYNC: + case MSG_SEND_ASYNC: + return SendMessageRequestProtocolResolver.buildEvent(header, body); + default: + throw new ProtocolHandleException(String.format("unsupported requestCode: %s", requestCode)); } } @@ -110,29 +108,31 @@ public ProtocolTransportObject fromCloudEvent(CloudEvent cloudEvent) throws Prot String protocolDesc = cloudEvent.getExtension(Constants.PROTOCOL_DESC) == null ? null : cloudEvent.getExtension(Constants.PROTOCOL_DESC).toString(); - if (StringUtils.equals(MeshMessageProtocolConstant.PROTOCOL_DESC_HTTP, protocolDesc)) { - HttpCommand httpCommand = new HttpCommand(); - Body body = new Body() { - final Map map = new HashMap<>(); - - @Override - public Map toMap() { - if (cloudEvent.getData() == null) { + switch (Objects.requireNonNull(protocolDesc)) { + case MeshMessageProtocolConstant.PROTOCOL_DESC_HTTP: + HttpCommand httpCommand = new HttpCommand(); + Body body = new Body() { + final Map map = new HashMap<>(); + + @Override + public Map toMap() { + if (cloudEvent.getData() == null) { + return map; + } + map.put(MeshMessageProtocolConstant.PROTOCOL_KEY_CONTENT, + new String(cloudEvent.getData().toBytes(), Constants.DEFAULT_CHARSET)); return map; } - map.put(MeshMessageProtocolConstant.PROTOCOL_KEY_CONTENT, new String(cloudEvent.getData().toBytes(), StandardCharsets.UTF_8)); - return map; - } - }; - body.toMap(); - httpCommand.setBody(body); - return httpCommand; - } else if (StringUtils.equals(MeshMessageProtocolConstant.PROTOCOL_DESC_TCP, protocolDesc)) { - return TcpMessageProtocolResolver.buildEventMeshMessage(cloudEvent); - } else if (StringUtils.equals(MeshMessageProtocolConstant.PROTOCOL_DESC_GRPC_CLOUD_EVENT, protocolDesc)) { - return GrpcEventMeshCloudEventProtocolResolver.buildEventMeshCloudEvent(cloudEvent); - } else { - throw new ProtocolHandleException(String.format("Unsupported protocolDesc: %s", protocolDesc)); + }; + body.toMap(); + httpCommand.setBody(body); + return httpCommand; + case MeshMessageProtocolConstant.PROTOCOL_DESC_TCP: + return TcpMessageProtocolResolver.buildEventMeshMessage(cloudEvent); + case MeshMessageProtocolConstant.PROTOCOL_DESC_GRPC_CLOUD_EVENT: + return GrpcEventMeshCloudEventProtocolResolver.buildEventMeshCloudEvent(cloudEvent); + default: + throw new ProtocolHandleException(String.format("Unsupported protocolDesc: %s", protocolDesc)); } } From 984eacc82629aa78c41e295b65c0f97d4211700b Mon Sep 17 00:00:00 2001 From: ruhshan Date: Tue, 25 Jul 2023 08:29:53 +0600 Subject: [PATCH 090/333] [ISSUE #4099]Refactor re-used constant's usage from dedicated file (#4257) * [ISSUE #4099]: Refactor re-used constant's usage from dedicated file * [ISSUE #4099] Rename some constants for mongodb storage plugin * [ISSUE #4099] Refactor constant imports in mongodb cloud event util * [ISSUE #4099]: Replace contants imports to class import in mongo cloud event util --- .../mongodb/constant/MongodbConstants.java | 9 ++++++ .../mongodb/utils/MongodbCloudEventUtil.java | 30 ++++++++++--------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/constant/MongodbConstants.java b/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/constant/MongodbConstants.java index 6af239bea5..23a2570db8 100644 --- a/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/constant/MongodbConstants.java +++ b/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/constant/MongodbConstants.java @@ -24,5 +24,14 @@ public class MongodbConstants { public static final String SEQUENCE_COLLECTION_NAME = "pub_sub_seq"; public static final String SEQUENCE_KEY_FN = "topic"; public static final String SEQUENCE_VALUE_FN = "value"; + public static final String CLOUD_EVENT_DOC_VERSION = "version"; + public static final String CLOUD_EVENT_DOC_DATA = "data"; + public static final String CLOUD_EVENT_DOC_ID = "id"; + public static final String CLOUD_EVENT_DOC_SOURCE = "source"; + public static final String CLOUD_EVENT_DOC_TYPE = "type"; + public static final String CLOUD_EVENT_DOC_DATACONTENTTYPE = "datacontenttype"; + public static final String CLOUD_EVENT_DOC_SUBJECT = "subject"; + + } diff --git a/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/utils/MongodbCloudEventUtil.java b/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/utils/MongodbCloudEventUtil.java index 51bb19d061..c18c711ef1 100644 --- a/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/utils/MongodbCloudEventUtil.java +++ b/eventmesh-storage-plugin/eventmesh-storage-mongodb/src/main/java/org/apache/eventmesh/storage/mongodb/utils/MongodbCloudEventUtil.java @@ -18,6 +18,7 @@ package org.apache.eventmesh.storage.mongodb.utils; import org.apache.eventmesh.common.Constants; +import org.apache.eventmesh.storage.mongodb.constant.MongodbConstants; import org.apache.eventmesh.storage.mongodb.exception.MongodbStorageException; import java.net.URI; @@ -29,10 +30,11 @@ import io.cloudevents.SpecVersion; import io.cloudevents.core.builder.CloudEventBuilder; + public class MongodbCloudEventUtil { public static CloudEvent convertToCloudEvent(Document document) { document.remove("_id"); - String versionStr = document.getString("version"); + String versionStr = document.getString(MongodbConstants.CLOUD_EVENT_DOC_VERSION); SpecVersion version = SpecVersion.valueOf(versionStr); CloudEventBuilder builder; switch (version) { @@ -45,12 +47,12 @@ public static CloudEvent convertToCloudEvent(Document document) { default: throw new MongodbStorageException(String.format("CloudEvent version %s does not support.", version)); } - builder.withData(document.remove("data").toString().getBytes(Constants.DEFAULT_CHARSET)) - .withId(document.remove("id").toString()) - .withSource(URI.create(document.remove("source").toString())) - .withType(document.remove("type").toString()) - .withDataContentType(document.remove("datacontenttype").toString()) - .withSubject(document.remove("subject").toString()); + builder.withData(document.remove(MongodbConstants.CLOUD_EVENT_DOC_DATA).toString().getBytes(Constants.DEFAULT_CHARSET)) + .withId(document.remove(MongodbConstants.CLOUD_EVENT_DOC_ID).toString()) + .withSource(URI.create(document.remove(MongodbConstants.CLOUD_EVENT_DOC_SOURCE).toString())) + .withType(document.remove(MongodbConstants.CLOUD_EVENT_DOC_TYPE).toString()) + .withDataContentType(document.remove(MongodbConstants.CLOUD_EVENT_DOC_DATACONTENTTYPE).toString()) + .withSubject(document.remove(MongodbConstants.CLOUD_EVENT_DOC_SUBJECT).toString()); document.forEach((key, value) -> builder.withExtension(key, value.toString())); return builder.build(); @@ -58,14 +60,14 @@ public static CloudEvent convertToCloudEvent(Document document) { public static Document convertToDocument(CloudEvent cloudEvent) { Document document = new Document(); - document.put("version", cloudEvent.getSpecVersion().name()); - document.put("data", cloudEvent.getData() == null + document.put(MongodbConstants.CLOUD_EVENT_DOC_VERSION, cloudEvent.getSpecVersion().name()); + document.put(MongodbConstants.CLOUD_EVENT_DOC_DATA, cloudEvent.getData() == null ? null : new String(cloudEvent.getData().toBytes(), StandardCharsets.UTF_8)); - document.put("id", cloudEvent.getId()); - document.put("source", cloudEvent.getSource().toString()); - document.put("type", cloudEvent.getType()); - document.put("datacontenttype", cloudEvent.getDataContentType()); - document.put("subject", cloudEvent.getSubject()); + document.put(MongodbConstants.CLOUD_EVENT_DOC_ID, cloudEvent.getId()); + document.put(MongodbConstants.CLOUD_EVENT_DOC_SOURCE, cloudEvent.getSource().toString()); + document.put(MongodbConstants.CLOUD_EVENT_DOC_TYPE, cloudEvent.getType()); + document.put(MongodbConstants.CLOUD_EVENT_DOC_DATACONTENTTYPE, cloudEvent.getDataContentType()); + document.put(MongodbConstants.CLOUD_EVENT_DOC_SUBJECT, cloudEvent.getSubject()); cloudEvent.getExtensionNames().forEach(key -> document.put(key, cloudEvent.getExtension(key))); return document; From fe13a85713f6b7cf39ccce62ac8aef40380941b6 Mon Sep 17 00:00:00 2001 From: Sam V Jose <124816912+devCod3r@users.noreply.github.com> Date: Tue, 25 Jul 2023 20:35:27 +0530 Subject: [PATCH 091/333] [ISSUE #4267] Optimized [GrpcEventMeshCloudEventProtocolResolver] (#4279) * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] * [ISSUE #4269] Used switch to replace the if-else. [MeshMessageProtocolAdaptor] * [ISSUE #4267] Optimized [GrpcEventMeshCloudEventProtocolResolver] * [ISSUE #4267] Optimized [GrpcEventMeshCloudEventProtocolResolver] --- .../grpc/GrpcEventMeshCloudEventProtocolResolver.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/eventmesh-protocol-plugin/eventmesh-protocol-cloudevents/src/main/java/org/apache/eventmesh/protocol/cloudevents/resolver/grpc/GrpcEventMeshCloudEventProtocolResolver.java b/eventmesh-protocol-plugin/eventmesh-protocol-cloudevents/src/main/java/org/apache/eventmesh/protocol/cloudevents/resolver/grpc/GrpcEventMeshCloudEventProtocolResolver.java index 99a6b92bf3..a00d1852a9 100644 --- a/eventmesh-protocol-plugin/eventmesh-protocol-cloudevents/src/main/java/org/apache/eventmesh/protocol/cloudevents/resolver/grpc/GrpcEventMeshCloudEventProtocolResolver.java +++ b/eventmesh-protocol-plugin/eventmesh-protocol-cloudevents/src/main/java/org/apache/eventmesh/protocol/cloudevents/resolver/grpc/GrpcEventMeshCloudEventProtocolResolver.java @@ -17,13 +17,13 @@ package org.apache.eventmesh.protocol.cloudevents.resolver.grpc; - import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEvent; import org.apache.eventmesh.common.protocol.grpc.cloudevents.CloudEventBatch; import org.apache.eventmesh.common.protocol.grpc.common.EventMeshCloudEventWrapper; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import io.cloudevents.core.format.EventFormat; @@ -40,15 +40,14 @@ public class GrpcEventMeshCloudEventProtocolResolver { private static final EventFormat eventFormat = EventFormatProvider.getInstance().resolveFormat(ProtobufFormat.PROTO_CONTENT_TYPE); public static io.cloudevents.CloudEvent buildEvent(CloudEvent cloudEvent) { - io.cloudevents.CloudEvent event = eventFormat.deserialize(cloudEvent.toByteArray()); - return event; + return Objects.requireNonNull(eventFormat).deserialize(cloudEvent.toByteArray()); } public static List buildBatchEvents(CloudEventBatch cloudEventBatch) { if (cloudEventBatch == null || cloudEventBatch.getEventsCount() < 1) { return new ArrayList<>(0); } - return cloudEventBatch.getEventsList().stream().map(cloudEvent -> eventFormat.deserialize(cloudEvent.toByteArray())) + return cloudEventBatch.getEventsList().stream().map(cloudEvent -> Objects.requireNonNull(eventFormat).deserialize(cloudEvent.toByteArray())) .collect(Collectors.toList()); } @@ -57,7 +56,7 @@ public static EventMeshCloudEventWrapper buildEventMeshCloudEvent(io.cloudevents return new EventMeshCloudEventWrapper(null); } try { - return new EventMeshCloudEventWrapper(CloudEvent.parseFrom(eventFormat.serialize(cloudEvent))); + return new EventMeshCloudEventWrapper(CloudEvent.parseFrom(Objects.requireNonNull(eventFormat).serialize(cloudEvent))); } catch (InvalidProtocolBufferException e) { log.error("Build Event Mesh CloudEvent from io.cloudevents.CloudEvent error", e); } From 33721125fffb4ea1338a858f12b94172d581fec3 Mon Sep 17 00:00:00 2001 From: HattoriHenzo Date: Tue, 25 Jul 2023 11:06:25 -0400 Subject: [PATCH 092/333] [ISSUE #4252] Minor refactoring for AssertUtils class (#4253) * Minor refactoring for AssertUtils class * Add end of line * Remove useless import * Rollback variable names --- .../eventmesh/common/utils/AssertUtils.java | 20 +++++++++---------- .../{AssertTest.java => AssertUtilsTest.java} | 4 ++-- .../processor/inf/AbstractEventProcessor.java | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) rename eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/{AssertTest.java => AssertUtilsTest.java} (97%) diff --git a/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/AssertUtils.java b/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/AssertUtils.java index 00476277d6..c691da2649 100644 --- a/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/AssertUtils.java +++ b/eventmesh-common/src/main/java/org/apache/eventmesh/common/utils/AssertUtils.java @@ -27,9 +27,9 @@ public final class AssertUtils { /** - * assert obj not null + * Assert obj is not null * - * @param obj obj + * @param obj Object to test * @param message error message */ public static void notNull(final Object obj, final String message) { @@ -37,24 +37,24 @@ public static void notNull(final Object obj, final String message) { } /** - * assert test is true + * Assert condition is true * - * @param test test + * @param condition boolean to test * @param message error message */ - public static void isTrue(final Boolean test, final String message) { - if (!Boolean.TRUE.equals(test)) { + public static void isTrue(final Boolean condition, final String message) { + if (!Boolean.TRUE.equals(condition)) { throw new IllegalArgumentException(message); } } /** - * assert str is not black + * Assert str is not blank * - * @param str str - * @param message message + * @param str String to test + * @param message error message */ - public static void notBlack(final String str, final String message) { + public static void notBlank(final String str, final String message) { isTrue(StringUtils.isNoneBlank(str), message); } diff --git a/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/AssertTest.java b/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/AssertUtilsTest.java similarity index 97% rename from eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/AssertTest.java rename to eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/AssertUtilsTest.java index f6b0b1d547..10f5d78283 100644 --- a/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/AssertTest.java +++ b/eventmesh-common/src/test/java/org/apache/eventmesh/common/utils/AssertUtilsTest.java @@ -22,7 +22,7 @@ /** * test {@link AssertUtils} */ -public class AssertTest { +public class AssertUtilsTest { @Test(expected = IllegalArgumentException.class) public void testNotNull() { @@ -33,4 +33,4 @@ public void testNotNull() { public void testIsTrue() { AssertUtils.isTrue(false, "error message"); } -} \ No newline at end of file +} diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java index aeb053d583..2d5e78f09c 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/core/protocol/http/processor/inf/AbstractEventProcessor.java @@ -248,7 +248,7 @@ public static String post(CloseableHttpClient client, String uri, Map requestHeader, Map requestBody, ResponseHandler responseHandler) throws IOException { AssertUtils.notNull(client, "client can't be null"); - AssertUtils.notBlack(uri, "uri can't be null"); + AssertUtils.notBlank(uri, "uri can't be null"); AssertUtils.notNull(requestHeader, "requestParam can't be null"); AssertUtils.notNull(responseHandler, "responseHandler can't be null"); From c18ef05f5207a2d1b6e992ab4e6f1a9b54e021ce Mon Sep 17 00:00:00 2001 From: Sumit Dethe <91131672+sumitdethe27@users.noreply.github.com> Date: Tue, 25 Jul 2023 20:36:58 +0530 Subject: [PATCH 093/333] [ISSUE #4092] Replaced isEqualto() by hasSize() method (#4251) * replaced isEqualto() by hasSize method * modified file --- .../client/grpc/consumer/EventMeshGrpcConsumerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/consumer/EventMeshGrpcConsumerTest.java b/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/consumer/EventMeshGrpcConsumerTest.java index 21fba16a49..e9d8ab22ef 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/consumer/EventMeshGrpcConsumerTest.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/test/java/org/apache/eventmesh/client/grpc/consumer/EventMeshGrpcConsumerTest.java @@ -138,7 +138,7 @@ public EventMeshProtocolType getProtocolType() { } }); eventMeshGrpcConsumer.subscribe(Collections.singletonList(buildMockSubscriptionItem())); - assertThat(eventMeshGrpcConsumer.getSubscriptionMap().size()).isEqualTo(1); + assertThat(eventMeshGrpcConsumer.getSubscriptionMap()).hasSize(1); assertThat(result).hasSize(1).first().isInstanceOf(CloudEventV1.class); CloudEventV1 v1 = (CloudEventV1) result.get(0); From 9e990672dd4618475cf995ae37aab0c0c0c814e8 Mon Sep 17 00:00:00 2001 From: Yixiang Zhao Date: Wed, 26 Jul 2023 08:57:36 +0800 Subject: [PATCH 094/333] feat: add event-bridge example Signed-off-by: Yixiang Zhao --- .../demo/sub/RemoteSubscribeInstance.java | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 eventmesh-examples/src/main/java/org/apache/eventmesh/http/demo/sub/RemoteSubscribeInstance.java diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/http/demo/sub/RemoteSubscribeInstance.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/http/demo/sub/RemoteSubscribeInstance.java new file mode 100644 index 0000000000..da69386bf9 --- /dev/null +++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/http/demo/sub/RemoteSubscribeInstance.java @@ -0,0 +1,96 @@ +/* + * 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.http.demo.sub; + +import org.apache.eventmesh.client.http.EventMeshRetObj; +import org.apache.eventmesh.client.http.model.RequestParam; +import org.apache.eventmesh.client.http.util.HttpUtils; +import org.apache.eventmesh.common.Constants; +import org.apache.eventmesh.common.ExampleConstants; +import org.apache.eventmesh.common.exception.EventMeshException; +import org.apache.eventmesh.common.protocol.SubscriptionItem; +import org.apache.eventmesh.common.protocol.SubscriptionMode; +import org.apache.eventmesh.common.protocol.SubscriptionType; +import org.apache.eventmesh.common.protocol.http.body.client.SubscribeRequestBody; +import org.apache.eventmesh.common.protocol.http.common.EventMeshRetCode; +import org.apache.eventmesh.common.protocol.http.common.ProtocolKey; +import org.apache.eventmesh.common.utils.IPUtils; +import org.apache.eventmesh.common.utils.JsonUtils; + +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; + +import java.util.Collections; +import java.util.Objects; + +import io.netty.handler.codec.http.HttpMethod; + +public class RemoteSubscribeInstance { + + static final CloseableHttpClient httpClient = HttpClients.createDefault(); + + public static void main(String[] args) { + subscribeRemote(); + // unsubscribeRemote(); + } + + private static void subscribeRemote() { + SubscriptionItem subscriptionItem = new SubscriptionItem(); + subscriptionItem.setTopic(ExampleConstants.EVENTMESH_HTTP_ASYNC_TEST_TOPIC); + subscriptionItem.setMode(SubscriptionMode.CLUSTERING); + subscriptionItem.setType(SubscriptionType.ASYNC); + + final RequestParam subscribeParam = buildCommonRequestParam() + .addBody(SubscribeRequestBody.TOPIC, JsonUtils.toJSONString(Collections.singletonList(subscriptionItem))) + .addBody(SubscribeRequestBody.CONSUMERGROUP, ExampleConstants.DEFAULT_EVENTMESH_TEST_CONSUMER_GROUP) + .addBody(SubscribeRequestBody.URL, "http://127.0.0.1:8088/sub/test") + .addBody("remoteMesh", "http://127.0.0.1:10105/eventmesh/subscribe/local"); + + postMsg(subscribeParam); + } + + private static void unsubscribeRemote() { + final RequestParam subscribeParam = buildCommonRequestParam() + .addBody(SubscribeRequestBody.TOPIC, JsonUtils.toJSONString(Collections.singletonList(ExampleConstants.EVENTMESH_HTTP_ASYNC_TEST_TOPIC))) + .addBody(SubscribeRequestBody.CONSUMERGROUP, ExampleConstants.DEFAULT_EVENTMESH_TEST_CONSUMER_GROUP) + .addBody(SubscribeRequestBody.URL, "http://127.0.0.1:8088/sub/test"); + + postMsg(subscribeParam); + } + + private static void postMsg(RequestParam subscribeParam) { + // cluster2 ip + final String target = "http://127.0.0.1:11105/eventmesh/subscribe/remote"; + try { + final String res = HttpUtils.post(httpClient, target, subscribeParam); + final EventMeshRetObj ret = JsonUtils.parseObject(res, EventMeshRetObj.class); + if (Objects.requireNonNull(ret).getRetCode() != EventMeshRetCode.SUCCESS.getRetCode()) { + throw new EventMeshException(ret.getRetCode(), ret.getRetMsg()); + } + } catch (Exception ex) { + throw new EventMeshException(String.format("Subscribe topic error, target:%s", target), ex); + } + } + + private static RequestParam buildCommonRequestParam() { + return new RequestParam(HttpMethod.POST) + .addHeader(ProtocolKey.ClientInstanceKey.IP, IPUtils.getLocalAddress()) + .addHeader(ProtocolKey.LANGUAGE, Constants.LANGUAGE_JAVA) + .setTimeout(Constants.DEFAULT_HTTP_TIME_OUT); + } +} From 4369b945f9e6a2195d441fbc3eccd680edef9a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E6=A1=A5?= <39259491+1404369980@users.noreply.github.com> Date: Wed, 26 Jul 2023 18:10:55 +0800 Subject: [PATCH 095/333] [ISSUE #4288] Enable the nacos plugin to support namespace (#4293) --- .../registry/nacos/config/NacosRegistryConfiguration.java | 3 +++ .../eventmesh/registry/nacos/service/NacosRegistryService.java | 2 ++ eventmesh-runtime/conf/eventmesh.properties | 1 + 3 files changed, 6 insertions(+) diff --git a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java index c22253f59f..1c4a078ebd 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java +++ b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/config/NacosRegistryConfiguration.java @@ -46,6 +46,9 @@ public class NacosRegistryConfiguration { @ConfigFiled(field = PropertyKeyConst.CLUSTER_NAME) private String clusterName; + @ConfigFiled(field = PropertyKeyConst.NAMESPACE) + private String namespace; + @ConfigFiled(field = PropertyKeyConst.NAMING_POLLING_THREAD_COUNT) private Integer pollingThreadCount = Runtime.getRuntime().availableProcessors() / 2 + 1; diff --git a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java index 875a22a22c..4fdca22fca 100644 --- a/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java +++ b/eventmesh-registry-plugin/eventmesh-registry-nacos/src/main/java/org/apache/eventmesh/registry/nacos/service/NacosRegistryService.java @@ -149,6 +149,8 @@ private Properties buildProperties() { Optional.ofNullable(logLevel).ifPresent(value -> properties.put(UtilAndComs.NACOS_NAMING_LOG_LEVEL, logLevel)); Integer pollingThreadCount = nacosConfig.getPollingThreadCount(); Optional.ofNullable(pollingThreadCount).ifPresent(value -> properties.put(PropertyKeyConst.NAMING_POLLING_THREAD_COUNT, pollingThreadCount)); + String namespace = nacosConfig.getNamespace(); + Optional.ofNullable(namespace).ifPresent(value -> properties.put(PropertyKeyConst.NAMESPACE, namespace)); return properties; } diff --git a/eventmesh-runtime/conf/eventmesh.properties b/eventmesh-runtime/conf/eventmesh.properties index 1162561039..734332fd7f 100644 --- a/eventmesh-runtime/conf/eventmesh.properties +++ b/eventmesh-runtime/conf/eventmesh.properties @@ -94,6 +94,7 @@ eventMesh.registry.plugin.password=nacos #eventMesh.registry.nacos.accessKey= #eventMesh.registry.nacos.secretKey= #eventMesh.registry.nacos.clusterName= +#eventMesh.registry.nacos.namespace= # The default value is half of CPU's num #eventMesh.registry.nacos.namingPollingThreadCount=5 From 81585ffa7c596c7655fad656cb4680f9f7c730b9 Mon Sep 17 00:00:00 2001 From: mike_xwm Date: Thu, 27 Jul 2023 09:12:55 +0800 Subject: [PATCH 096/333] update architecture image (#4294) --- resources/eventmesh-architecture-4.png | Bin 1918711 -> 1752505 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/eventmesh-architecture-4.png b/resources/eventmesh-architecture-4.png index c675fb13817ff585ae0f004682ad23ee1cf29a0b..d9a1ef7fe3e08930453b1e20e1df9bd830a1875e 100644 GIT binary patch literal 1752505 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

_NPCG&z^Sy>iSf8C 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

O5@UJ0ps%=?jo=PUYa&Y%R1yT)w## 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 XjjIC)j?g5_4Ri?WXz2W1S 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

D?gmplZy8II8n!r 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
  • ~qB6T)AN9=mA^U)*&0Y+_HQc--_u^jzxO} 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%0DOXGD+;%3wNp_R1~s_`MUt-$teXqTk>@^~zgSu# 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

    ;ZATZxvwiuU)4LFv9mFNnW%c`ldb~m|#(UhU6U? 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 %j*K_{ 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

    (OQO=`AZ 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%0A!iUv!t#!EpabwJwNMuRo%lxk3xlSeT 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 z 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ⅅbU;(s>43)exUTdwr+&q}i_8{~lz6FUV@OtfqW-AWun#e;V`WG!U zVq!jgMsJH$r0M+*)qaEo8VBwD`{`ZKbL=p6Pjr$1X|$V2xv zO6oIB&OWlOJ_lHL5s-6St?PSU&nNFz<+H6%Y}@BdT`PNPz^HY-k$af@72MTyDbZ8J zkA1X`Cvysg6#~~rj~NEfd};^g4m|cewrvS%cn0wu&tWU1sEDVh$q@ zXRc3GieR|chn&xwQnBwjQNaHWd5w?7bRVA=QdNocOwn>Ufok~I6LR=m`}^y(ikEX$ z;yEjr*Nl)|f5lr$b3a83JM}2ov&G0N)Ce1IG3ew=Uh7BhD3PM(vva?IRN%BL33+#= zN1Ac^gnHefXcG|Io2xMDrH-{X9JP?t?J@Q;U!#;WS$6?WL>MC??Y ztt+snG1pR$Xf%I*1P=FHTMM-Suc;jOp-fp9ss8D*_4adkojS^W4TR4J9j659PPa=V zUr+a!+EMQ+nm_<_SB9GUvr;?psR2B8d&KB-Y%;zp|JVtW!QcOeIJ=E(YchI&8BFCv z=fewxMy#EmJCKgImkIh%v+Z$p{b?0wu%Rm6-(QZD+Vnx==_7;is2GjN@8WqQ!Ku5B z<5<6Cvq`KP=_2F_UH)`xzmY*%`3yFT=SUZbChLR)!luNcST95R*J2oQEe z`x5*JnD)uB2dwuPY2q4U=@!cmtq@PrIu23T9+4S`d?a>tvg z8IWpUpz~8-f5+daKWO86MtQPdr~9$GriUfVfgHoOwKv&INVq?} z{(d)FM|bE5!2E$8GV*YfCtW(|8w|_FZ#VOS1~C`k%q(@ zuJ6wRbHTlZY^Z_-cC?YI27mhed@k1aLME~K!$HwGknNNuLWJ)nVx#f2560JeIp45B zxfjh8$jMYb#U;~@BL!)i9MPvWvyD>!&E&1>nNp!Q#Pt%mgP1G#=>^aVNE&pj64;3q%Z>cVEi&keVNYinpTV8Q%`fuL*wldTc zvrH^qk-C?A=_xLDlhR3mK;(?IoKcvrnkUJ<7H`arQd+(I?`4Ay&-zp8ZKAgbs{f>} zPt#lHJS2&*GQ0^%K2bokMI&4-kZK|3JvG&`9Z)!jqt9gq5YM})xRY1mEMxz3a~GaC z)wD9z1LQD6nh``&sLgN|Kkl+NzzMV)LkEmvSMlbk!`AbE=| zAGMs<1M%5wVe3A>i0J*im9p(8AMniYq;w8ovps^*6l>W=Ot8TSqdZ zw;_+2HUlmHbhMcw4t|_ZR`CV;>)_C@=Ob~Rh&QF98S~WIrrb|GEd*H;kQ)k=_r}^T z@|^i7stdpEsn1+Sa3}@ILXKx}KykZ0i7J1*I;a3{Wga|;SdUJoB?~A#?{@TIcmSsV zZM(`lxaKj(Ol`uaIL3M5Tj@~0k8FRL>mF6LL$ZQ(Gd@HAh#mN4^x)_O$l8loEA5M3 z223r5{aBX@E{p>#d4E{7(b#@z7aXpjE>A2(nA0XJf1l=8ib#VkKK`$_amxc;OrWLW z{ba`L)|846PfZt?FurG$d;k4>a37mC93SE)CumM;RO1c)j1>}5$Nc&Ll=4$lY5o2& zqy>A^WM3%Y)q)@4A9uL*$0G;xz&BKGMtY<$((kvPH}1r9Z(9_*z7*(=pqrm?9fEmY z_6YvmH9@~0uX*Svv|#*=*XqcUbeE`NX_%S0lHOJL@KC>$+bKH=XO_ENQ-MR&{FtQ( zaMyS_ok@j4&0YbS(}3~o&Fn%KGw+SqD+ISZ8YEYvH9+kStVnPy>}P$Adoq<9^`0OM8hsRAm0A=W&xk0=z!=k`ao>GRDN zKPqukRHgpRmhnseFg1^|03k8ffb+OPu^zz!fm8QQlDz295l%3f8*&?eG~0I#Ifzo> zo2so^H=ay@n^&ZfI!`h)Z3Rta-cLNKy0W#2Qu!D=z}(&3cUHo?m;MX!jyh@hI&xFL zQ;GZ(KiQH~aH>lvux?LNmG-Az7x}JBjWTe4FOm?$!`b_=%F>xOq8*Wg%W&_x(vePW zu6*65WfT};dB-BniTbPgl&U=uPbn02q(S+JVGXJv z>Z3H^!gLcY4kiV^*^h93qw&58?>5f~l9HR{?=aIzP_&K5wt;0G%4|jJpYXbqi448T zC4U9J9r2$hbM#9T67gXMWx3-H{Zq5gH|Y4l|BZXT7aJwB9AHjIjn?q-AJp;fSF}7p zj>6o}2a+kCfiBxz?H*nwSjTd8YNs*kk~bR6+3d)h*BjO8`^T5tVWWI-z>Fn+*Ob(I z_k_YXs0aSWQl6KfVI;@QmBoLfWal}+AAq#ZXi9~Dw&R~D)TV74!8(>p2GXA+8@TuM zQ1Yqn?om&eC}e#MCN?R5a_9cZN08n(G+5mYT1W4pcL1ep1$o1?QX~$jzm_916Rg7H z08(Dpx^oX@(c9zdyl+Jb+og^m_e=(Rh_wk9i6vrL*9T#F$yUfX4=+vT0WFN`a;+|H zg06p>dsQucJ{*Ws{MU^xvLyx=sjyd<`yyh&(JYZd19Ict#_quImhx_@07Ur--Ezio zM}x~DE1>VJd0vwbXc9cpXzJ~+hL6SC>KwLO(9SU8ER9;J`4`!paL{`bc^3#XLd9GM zE(%-6ga64`8SPEgqRux#a)gilvK5T=^j}c!GN?@cz74Nq{7bJ^=Ic{%i$`$jQllEP zmA}RACqpwwdk{}BDR_7e>O12MP32`MbO5nS5S`G&ubB_n%!f9CjKQ$fav5>E6?Rn93we(zq?CPdN_Bi0bCWG zeF)Rx)%X1(B3d6`Z@N}yUlNN*`V}{g+%pR*J$_2fjHi}XTpW_f40qdH;Lh;N=|eH~ zIYy2QKjfqZ_rL&nk;=GrH5I+zK5Fy(Z(ucCZOT3)ey=(PzxaF%nxoue^lf;^5Rl5- zsBin>i@>~)L+(x=t9(#We0B%0Dz%(&!yv7-FWIRDv$3x*w&fc{#=yH=sFl6iit{+7 z@A)HJy{Qh8ecX>mx7pUx`Bf7?j|^lmK3oa;{*FHp}>9I+n$MSUbDN!fsJu-Ly z63%z*fzc%tI_;A*_l;aI1&T4t^pQKT`(8n(8K>M{N@$Vg_dWG#-2y#;nHJ%d*9ly5l^xUaKZ^F+38zGY5tQa@iyF_u5kKww|%7&7+0~>2_Sk{Sq4-%tCg!Sr^I)t}2U3}0F`zMvM0vMh@tkYkm? zzORs(-R06dL}$d-WGJAM1213#E02@?`h;)^YKn;cyi@MLgzFi*fPgkq8M#_DN5zUoK!CRnSkPIcQo1%0Qzl@+Ug-`aI^xBuwjJ<xR1J3yhf0JIv^bX#D{@L zXz6XUW0bKk?3ZZb!~p>o|3}!HEvu?@Tcc02FaI4Ng>Xq-DU~Sd9a2e+CFs+imN?eh z-#!uN{4?fSa|}gHGJE#yWoz5}JR{H3uXbAkmWAE}wHYt->vqewg;*c!8I2pGj)L?( z&nmljB$%ue)&S8a=8$tAy7d<1n>f(nSTA8R_CEr91prd{x9N-%tL^%mzd~iU zal-)gmQ1plFf*W=f-CUReD!&gY!8>xr!5g*p}(z6|3T!JyUxeASX0BhWHgfD2cO^h z;$>N(ZpnUo_h~_f`Jn;qCzF$AfC8V5m9}lZ4zqe78r8FSAxxO@ok@t&qd)*~*~aO( zyTFBd-SdjL?unkEmBi@iP*^=TFEWgs9Je8T3-uX=_%D7YMMZLlIA7MFZwK8shMlzo z0Ab|~5~CNIx!`>@UjYGSmzodB{#4`@X+Jke$Vmut4Qd=K z#bj=QfCGLrXUB%?INykeIs$yWl(!eOLshTys-|wJba*xb;5VwEZ>c-8A?r_be11tY zF#ZilmI4PkKIOnk7mIH*T&l&N0`KF}7F#HLID)5xusPec`=Zu>c~c&lC{&M3ekAR; zKr{E1JzHT4jP^}^k-ZxqT~QRqVwq*)aMC6_-+Y=jfXKQ)>iRb>y>pjig!UEV*kWCE zKrIg5SM444BCd7dPqY?Qpn&F(4k^s|LYbHsN<%D#mrr_M?(mVOWn^=F;W&|#SaV&H z5pmJR?Yo}b#7s+Hb|0Wa-0||geSls%IZ)ZzY+dAp!VGnQYLpzMFMS%7)vc6+hxH!O z1|0!CaXPKaIiURq=>^c&P-Z%NIEpFK;&GY^iKSA~RY&MuuN7jUr4D*H9|b8u&>6pW zf&A_yAJ%GAalJdl_qQf#n#l!1)@eLwX~a3UipQ7ibI^rqC6k=gpq_;d{i>98Z}al` zS;|Ev*xlP{O!Sw}fQRr)GjC3V!gAvno069Q517W0o?fU3Ev8Jy^em){xu zj*i_7NNoh#wFqr3741_SL(htX3-mY^A|b~yT}Q56y|>-%l9kG3PnQR+H@n7wTe?wi z((Og@5!<$b6qPqr3Cou4g4;shsBmh?xpVCbojU91oCOxCygG4YGbdnow!G13o*>)& z3<}DnEG68ibOk1f=&XHAGpS!y=%TytMoCnLN78OMdVYfK#OPjlQY!?RY@v2ni+ZsO1nS)VNY>q0d?)+zhW>CT03dLZ>rWgM`;8pfBO+ z16LqMM-%fpqHIr3+vq%4Mr1SB({trdwhDVx-$zYl3R`dlsu-^Qc!rv^2R{t(A0BtK zuR&SL&+3Y9rQoiz<|u+}biHA}9#EOjEwH^(JiWd<1{OCpULM8P2Rl{{H6i6$cX+JP zqW@vTE1|4o-{{yLAkO{UbJnF=+6Mjc;rJ==g6_us zY1m=>`QCTy3))v?C%keBTp?+Wwa_NaGD-gnypTvGY94!cCzo*yZ7Mzd`NawAas zy`Q7HI|oJs$n$(hDyq*!jL=Tto@ab%2D41Bce~4`_8N^YEu_sPi)0>^H+M~dt#Rdb zFkxfK8P7R6`nDEBu$%hz4TVb=fcK(HfX~qrea*}}$ewj-hh4AlJf)(x0Bh1+x5+b| z0y;xbnWv2svkteVY)`|}d!Jj^Za@l7-zF7z9Pk+gV=cY zVW06pbU6~s0bd~{c7Fnz0%l4tHtLjv?0#TttvI#k10lsi(TsYh`Kfq3R+Rc0_7@rv z@o9YAdus314Pp}VnQ6j%j9t_1MCC}5Y>xyG^{sx{c<7)QKKJ@xeF^Z1#(!^V3%Ggn zDqi>VT93F-34{jatL{EQ25OF%)og5?5ysv=ujSpmu7vLpqs(d$WxfxO`C|Z;ynX~d z#{JY^A$^?HA3kV*(c54HZ)msL99CiB-c0(7m=;FF=Bg`-6I%FulQ&_odYl~FcxpJJ zveBQ0Nmui#6yckcc_At1n;~6_@32Xo`|fyI9q#+BLbQZ;e}c75Ap+3%OfSwL5vEQp zwQI8ZyWOfQTA}NOqwAAvx8{t9EdTVC{dZ0RL`KryUj?X$24kzESsxUYnYwdO+&!8p z8?X^cQahHOk(lqM6zu#(*{7UF1{@e!E~Qec@u}7YITG+UA&a=z2S1#F%}X6J2E>5f-^~=b*sj9vl3}Yb-N12LvUDO_?JhB;zfBQb?WBBXv z4dh|hoS&9`I?vp@>JX`8HpvskF?jz~0*Nf0i20JB5<1X3%2$a#1Jt)AhmtH0rL}c( zG{UrW9|JRS`@V*fbhLYh+ElU{-JEqHx!U((0S5)QdAB3VoRf$VLXa6Ian`Ty9OHoq zS^v}|w(@B&joXlI2!Nq2`$5X{gvGjZWKB_wZY8bD9Xaa}(I4j?51Kwclc{D z51rTvI>B8em^Oiec123E8VB3WJhH&PV7BE0iuc?}vkbJ*gR!Q;GC~vu{;tbnY=rlb z67HuOn2Fz@+$*wtm?Mx^1xScq)of}=P*CxZxLh%|r982ABe9Ayg>?C1z)$pH0JoXg z9s7w#X(P3N)a^-`LYW&tOA`aO9H`Cu!7XL+j8c?%-oK!PwZu}a9%bs1qIH_9T4;R9 z&Q{#e>Vf@Uw$o0U&-7VV&QHt>5q}5NMgAwQy-)HPrz41-B~juYEPLk)_}SNevDqiZ zmQ_>KAbA1a zcE}CWR=OrH^APP!gQsVGb6ZicnRR#c9(?zf>+hNVJ)dr4stHM*PWCuentsc{&c225 zK7W9T*Q!r7=$%a&JZvbFJ!N6&si5LUkm$e|nUGf^{Xm5qNG+a{Xngrqh(*yG@Q*hh zbj$0Cn$uK;hJe0!z=@QB<-ucD*1LOpmiT@EiU*)sMG zOM(g}=fUL->pqc&^4ekj*60pM2^Dy|h@_Cfr0}@Fc*2H=oAWiEuAdP+o8WWI&KU=P zM_%vOa`Z-qe7Jzk{khh=q(#=@iQ;#IM%}j_OE*f3%U(#iLLzv_08M;jHMyRgmtzyL z_~-qUPS?iDHld)WD^B#+u6T(&u6U0fSyuGl*u2@q=`q;(HZ?~#Z_JQnd8*dO-~-tE>cdL6x4 z1Oy}S8`*oUW$8_s(Kf%@WKqePhm6%Nao_Uwr`Qd2rl{i;nzVJCo6fiRW2y{(twG_NIIW|#bJ@+!{*ILhq_I}j9fe!rjJ8+*3y+$V|1 zF*FBFF~yb#?I)><~-oUaYc--!N314t zdoprLp`PTy+k3J)0D)XSl#YKd!z56nW)ZS*BuO2rx19&SKyyHCfHf)e?}T7mVH8b`X@ozy`9 z^B2W+HPN2^rmHXOPoDLNLV+%7>JQHPTnEFeBS4vY?_R?^W@RdMIlo&y??IR-mtdEp zxrCCON;~ss^^-Q7yUk4Tn@89f`Z}6%>+ZscKw4oAr_+}=?V)>=(lbw)AUF0`11^-@ zeOBPB!w>be4-Z_6qREHC)pHJKme^)kL zMBcgE9BwD?x}m#hmw*@m4UW>zvdfR9OZN?oz)M9X!xmJXD+#>@4Q*X7J;2wDokP9C zQd?_E7`bEMP^Kxe3_Ph(G9=gg?kLY6f{y=eP>GO3GRk3cjhVeoGEwD4E7 z@V`&a1L(c3M(*3&_JY1B=NwSQqWMN*n&%k!(h~77+xbYA?Ox3)k(I4{a4+<^Xk0Xj zot&pn#lcyVY5+0SGa#@&HqBkZ=>__0M|%yg21S$-Fay9a^;FR*19sBUHK{=yPiRE8 z*Aek(-(dM_T|CZxb3WgFi@zUUs~2;O_{%QlB6FZMzTO#h)>@-QKYrHDLBbP}al+n_ zGR-nma1*2Hjsih5#FRY7$_3yM`n0LXebqKyUNLj?(;&DXROEu2mC6v zeig@tKdx_|o;=8#FP>eaxBL4gK8Ty_6wb)$;95|4xfVz;)`LbA1#v9(sPTczo`8S5 z5|Rc~7s!L-Q$Hwb8yQ!3@89{nPIHx{QGBk=W2WTa#RZ__*Zp^o1}MaG z!gjrlL!cX_ve)O}E%iD!dTkv3Yx}uK!_Hh*VzJ7^=A@vuHwjX%G?*mZ1djv!d#<^y zQxvx_hdQg3*DC&23jbPvz+yc;M*etsBAoslxfn)SY|-C?cmYSrYbVRc<3XLT$-KTb z&Ly*psEmD{dWtr%snM5e85s{48vtOgdhEeS1E~@E!nxbN2W81ZOlwJ3_LXaew00vW zQn#E>3?Exl`BSSl-&?wk*iIW#lts2TAZWfqado##wWhj5@?^s(r~E$4s>`e0!$b>F z^XK2pcDIV+2Q0c9U@)b73G|US(FF%^aM^b-lVQToOt>azLsgqqAIxZOj?dAJFWN#% z473|ukX3`u=s<(5?4k#?rGy&*xOpNx~Yydlv`wo?c2Fai3^leR%Ym; zpRQ1Ao^oD|N)diH5)UAdWn(ALScA4y0PAX;Dai&<{k8s}Xw%qD&+y7N&Or`YJ5Bf6 zc_kdx2u0)}FT8sa&%?3e7X_;QrD)l8a?r@>B^RYHMn_k&Fj*P-|*?)kZ{t<=+i*Y!Y)mnC=e*R z8V@{o)L3E1)|h}b-s3!FN^brfmp8M#ZXbB+_^<+S^!0#d&Clv_bc}9KQ`l#EFRDmzja*ET`6ZpByR zncuHVaXjyG*GIzJ(|4i9r#5Phb0)3M>N8uqLRsnkK=weJcN+D%^O4?@14=p5dw)UUKhlnB zJUxZtzyTHt5MBhwS7+fXCTP8-*z3u<-c3`{t|{#%pP=jnT2EK=?|b4|?tBI~^tR71af9t!ag>``Ntey=^8|Z?q{(8}7r@*~>-g z5b`*Eu3ovb@jvHLE9`esAl>Y+zlFr)yWh!E0%!h?Ls_m{^fO+InD)O<cJ<#pXcGVZ z^ZSO+@8-;!{rx^w8GPtv44m-a{NFgPh?HOd#<5!cH^uxeM&xI?vi$ek$e{7q|MmYr zPKHQpH!FGD{$H>ByKF^O+263x0Ac%;&OI!VI_2J+?9Bf|aL$%FOxjoeyYBbG0~z?g z7arFHY=*$Z?UEAz%4EK)G-)@Y7Q4re_p{AS@KN&i;;d~f?W1E zbCl{Jd*KAjy&Qq!NH3hhJl0ZrgiM zSK;SU(poqhA=`UMjKth!cTOhus8sg+JsTh8aU4u=mV>LbLcyQNZYrIbZ z9j{J}<;Z>T_9hUCKXAZ&r87&hw3T1<^!uq9b`ahh^p-|n$=a=fh{qXvy4#zxXpQTX zai@lik^BLqg>5d|0KfR3OA6S9<&Q1dHW@AXW49AVz5HqX)v*rnqoP#Y@hfa^2dYC< z6w*_p<~gD_4j?I#TUYFx5&zweh%yY1drfUY_`TXDQO7+l#)R8xl7-EncdP;w_kD9W zo#faX{C7;LJAmyDlsA$O&If#3zWbIkCbL{~mv0&Y4W~{3NpUw(V1V)w@Z#Yj6G43N zbw~>vb1X1A_Jr=9$K9)^)n@@@9(Fi>=aJmc8p*>clP7BQ1rptUO}#nbxkA_~K}$q|$wWK!;p0b-*e)=MnHAwNHW1BGQ@BWb|9>Dp5)F^=^WR5#sLF`8U>7 zFaS_8vJ${CR5pmneX?pCT)hd2Wc^)=shzg0R)0=+w!}gMT`wZ5=T>%b+t^hP7K^P^ zTxCe7gmQkm1bCm*-mV6L9=z8+d0gi-S3e0X%?j3+C%!*8A3*#=VYCdaPWqh11HAeH*d zwg+Ju^+7{X8b-)UdG*=Eck5Gy+fJIwPP<5s7^A(gII`U zUX|`GYP;JrMRg#K@`L>3iB#o6)k)CzFQ$P*;ib}k1_1RKtGcY~$s#hTNY&7E;qNJxzj56#u04bl6L?jY*+xA+ z@BkXJ&K64B$;=L_QvnfextAZhq%8)4G$%P|8iE7riR`px9!u?J+lLh2W=Y~d-(cAz z>_dEm3l{HXwDL4GJ#;75)6)L5**-#5M@b}3)yn0`9XlMTYlNAVkzoAIY$_JTGl*jKQ(|za?ngZyV%*DjCSm=|@~b7Gj%S zzU=+oL3|{yI#(ffqa`VwdO^JC4Ed7z)5{_B%G)BSD6dNuH$8x+|!P0%elJ?Xqiykmgat0i}(3Rj8jt`GzQ3GiwuR zF=TbwW11|;92*+*BJTiTB%-HkHusqvvKKuCILSndprw$3PD1D9Z*Qvm=!@slD|FD2 z(+KcQ5CEjie*0dN)<0=Z|Grz#^5#PA$XskHbNP&{7HynqUty7vwW5$sq|RM*y#mf2 zawA{-O~<`1+8b|36CV8Zo9?h2X*WFAWZp^6>&A;x29Tp zjBc#BVa{km)ugUUmYuH~78M^uGrKVJTdpLsV(#{l{dV%6HP|g1L8`c) zB&kci{@2=+=SnDnLyelFWz06fpxykMZ^3qn6&RHMx0fv)C)J_t>yK=a$=0OrvO<=u z)VpM}MpY&7v@uU|<>Yt{SJM`)Nd;WsMWZHKrFS$7Aa zShA3CwtNG<*4Slx>G+d$V}m`sjUwzHyuMu4hOTeeSEB8p5Ejc~C`}YnZXp|veEP|+ zRAY7w8wakWLA79f(0_;5}%RpRO2>iaC->U-{{bZG!vE%lZe`p9X~NlgUwlf!r>G_i>`1b}~5_0&qz$ zCnP!J=judc1NwE58$n|J9hbA{H5hoX7-;QC^L}f-^zI(;IUyB zZWVGe{$|5`{4eHkQ_R`!0%)J+Z_4j(t%#Q73kBB;ZUeqg~lX%^!dUozpWc z;$AIygXf}M4v4d?*4EHz2lcYW4*ru6%pVz-I-sqKTI;RD@8NsOe$I>zBRU8*ItDElB zUsg}+42Dhb`~W7%uu(x6w!t-$VuD+K6WSfo(3&V^_RX|W>J(g(lh|J+HI*uS~- z=06)-tiZAftLo2&y0kjG_z1vxA)3)8I9b@2_$G~Q7xUdRU7}AYpP_alGFxu7G2PwYOUauU+vU-x?}^XE)9>H?NF8S&$GdU(T|9_>DkVQvTf=mi+JD2izMbzJKb8lv*&DAqAxY zkck=^_ixUfzd46hOc|i>MO`>K+e+h?I)HbG)5#c z=$F%Ei<6D`0)G;q*}oOlwT4pmnoy=I@`PwOA|ppt_!or?(cg^AO7OF`Lfw^G``>$5 z^CA^GJRoIH{d*myS2h7!O8tMgDdH01H(C?ZvS!b)9;iF zuHAL#;`45m=Q#JI#oACLjY*sE(nWk@VTv8hgWZoprI$|!OwU)xpBHiSpslQCL<0I z^F!rgMo@#RaG8B+CX8=uGBWOdU$4T}1zW&Mom8IX%NP09y<^!=MtC>zKu)Nz@H-=iGB+angIg)-qCvG_l-7&3`75tT~hQ-zfUrves!ycJL( zBBQx%H4{5Zkr?drwJoz!_dIH`I!4q#G!pq!URfEL!7apdAKm zmBb$+TAtjL!Wd_Bk*v+B>h2PFPM{mq2TWD`A%;g*)LqWQs2uN z32P_3YB;U%c;KQf5FPS<-qhqku*(2Kf^S4gxORkhm@T_RM^C0^!@li>j%^~CN6^}^ z&R})94n(i)hc3~F#>S_Oo?w!3N#}*tyI`~)X9}T{q=>^qJM_2Z?_ zFno?c5sY3Vi+m}FNicN<*cR@iILVt+R3iZ3>u4QQQBt)yzrhwR&pdX*u-ifE!4T~) z7A{UyN`eJyA@U(@P_?tj1F9h{vbr!Z_MsXejq!UTcnqNondw_ep&%vjrm!PqV6z9& z%XZnI+mTZg;GQq^sDh)bBu1>#QkBdP7hZPSi1tXDucIp9fA~2Rk5qm}G z$B_KrDOa9wh+N>2oX(g{?3aIHDM+WC?-C7*T5L25L2Pk}nK`gL%ANwr>U9U*fzx8~ zy#oWM4rU20!&@r|VFAF8fW9L!pR#+XIQ=h=2DN_DUnB*m=}soL?n*j_@aBH;Ae^R< z$1S1=*9eT_xclOk1s()shV7zR#qZw4PEn*1v-&{bUdb>_Y^v>I2O)xnku%Vx7tO-R z)$*sO5m%DzYo(;ZwZkcjUKFwe2UWo|1vQ$yJu>G?W&GwGZ!6kEU?ZN)Io4^J^X1~c zuhG7RIajLfZ_e>cBAuXV3mi+*pvgY;_6wdjc1!(8%yHG|4n%uZI-ot-4e9a0ZQpM6 zSs_-Q76mE3$XS%pY5_(pD?|xFo3YKX^80rX~7uMG1K>qK63vaB9sEc2~XQ8l~5bD^~Ru|%ddfS)5bsK1Wq zKtF8zXSg9!QjH`QrbwMRNkr%DXTVhSWS*Rgc$2aesk{crC);LVl>|zORz<9vq@~|L z%sJ3EzIZUiA2pOpKzGT3v-mkGio3!sU=0!1Yaw@t^!$9dSy75Wej5!Q8y<1!5p7z6 z70H)fxboMXj+oCsk={U^-sJTPuaj61UjKRfTO@wq2j?@{ii*t0L-y>U2R(CBUd>NgoEs(&WUtT zi=Ar8D6*X*3vKAvDo&t97abt`ksM4U!D@|wBKZa~j=;TG$4`*vsjL)1D+XKX*q9pnc@2M3{p=+lHY z*V8J(k%e%f9D&3xr)Hb%@>2etZyEs3K{lMR`wVmdun&QY?^1afAcT$Yg6ll9jpJF{gthWMg#2?hj%`K>A-p#9_P>`$`5w?LA|b@g+x z%xt}R|W?O#t}gLfxRUQ5O7@UE3k#0L=U*VTb_{9z>BX%+9f;vYHJUZ zftPaq0{pdg_d-qZ;sY+$hqI0JwGklvgNO{Vd`xTt$a8?|TcU?0Z?jqwYq-Oo_S@#t zCS`|%i+JO3UCvht#yq)rjmo?4#61xcmc(Cd0v-v`kvQOR0f|hIyaX#9zujcuF#ofi z$`l4kBP~k$XMsV3FE$Seh5o)76|eYaQg3&N~n zN~M(xN@C;#S0o=O?|Fd3xPSApz64kAwOOUjx1I;-Wd0<6(5)`wrEy)SB=T)9dKnHR zUOSUhHz3op%-zkNS*f8|k%Nx)e;Ok|+6Og)SalgOgX;9Y!guGFTp)@QXW1L*TWczl z8jwCh>;|Z=JOW7uXE(N0U` z!j%Rg*g0a2@X)=*=yTQk|$;^1}BM@+Lmr_fp>uw$QS5XJAmzYn}$ePGaM z$O#e=UZQ}Cbc9v%L{DFH*jsTyb6K>+*CIZ?c=V7z(IaVtYkDTdMPicUe8CUooR+L# z1i8#u#%x%Dt9`;t!FBd5D0i>9grfJ|+)z)wxqhG+1*5C%Cvm^AbALH)Ox(UCIivGb z@4^giNZ)N#fwvsJv*gp|JcozM1Ud#O)gh+|q8N*)JQS4NuKfc(|Gwb8=CXNj=O`uF zNf6n3%FBmUbKA8t=a{2IRL1v?|2emlP_LN^l(Hlvr~G7IA)1=R{8mJ_`geNg;o79n zDWD?)ZsQ=5NqojZ^yPY6^mPi94*a|n_HX9n?fnL_@Sp;Tn>^cM*~6a^y2$P@>)$T} zQaP+i*K7F~cqOqU#A&<(!7h+{-YlxZz3?1fe$qjL{E&0aUs{L!v&Cl{`nd+@CvErFHK){ma-jX}v-shmIs?(li^qNa_how(pX;;^M3fSO>?dQS*9sFv zvfusUwVGF{S)!G!P!_ih6{&{@;Q>zR!ZeWo6RcvT-`B4UZKOiaPP}oT7@LLz2T58gY)OX2YCupzTX_kydL)| zSELN%z%Rl#E}8$*!8P}EhX_E@jRh&1!EAn={Q;+)4v%NkMW^*^i0_1A2>2;&W-{c! zpF`*xg>8t{q$vpAZcR8Y`}LV)Eo>Xfl-@+oNnNGnlgA2SKwPnr0Bj6< zK$l1?w_d};P2N2dywOti;%sSBC+)Xth*F-((F7x2?d*Mq+8<=uVdEz3`bnby-T12` zNDzWU#tB&lyjB6s1i4VxH5!~kOB`1Xz>c`Qx`AasiZizz)wVDRu7u8C4*gVc&x9q~ zIue=Z@kTO3cW~M`c-Ehdpu(iZlG!D{{1W67RhjZ!B z!yCd0zvR3Im;xWi*PGzm?M-t{ueyB`XE~yJ`o{mx)DsquBAL@-X25-n&g59on<#yg z?VwfwB^-4{+57x?{oJ7PYu%T~%d3R9l2~Er)WK}60Ym^O9{Gf-=MZxxaTUq%DiY}S zI+CwmEiuG(#l7*>^5rPZ%7%Xy>&?yC+Qa+XJy|%-3YaEf5h{{E?RNVSS|F`iT>sse zO?FaS)ziPb7ecy#WG+FyB^f`xK_byg(s8-%sGp4ZFc0YiU@V;C&?|e~Sw_wPYcDHt zBHIZJQ5_L*zk@N13Gm4&Dh$Nmzgn);zr!Q>)WyT2!LzEg7+K zw<@-r8S97I3xy)%w)@{Md*WauVyvU`A^wsY5J1i1ceHmn1MF-mUz4l|>c$WQCx;{R zm_5F&*eb*?tSWAtf=W+nL#QVSzO~++*sdbCK~0P$m78Cl1d+c)_hP0JTU#%(3x^0u z9C3Wr^TKyBb*_L5B1iVJQ;~U2bZ3v=tN}2c=WJ^>CU)7HS$nNOAS_9Aw^V+2UfYLZ zKYqs<9L2oWDNAi4kwE_)@Kdi3;`f*r2XpU}qTkCAm6DD$^*3`_n@@TzY2y^Z(Px8 z;q8c>P&*>m!%~yRdp_cKnoP`hi<)c5O0q=SfdPtVZN6k6AE%cu`>^Eagyj*Aq5De zfk}S7MO*NOXxI5j0Zt&MiJa9+vWfH81%r|RO^=5GP+*2Eiy>}MLqF_?Z-GuzGUg@k zFli+7alDTWlqkVkHbT?@Bkl%`hBzDM;z3dah2eDHi>(Xh8eoYVom}jA6AN?}z}FI^ z0hxF_yP(}N_gwMHM!az8!Wz9Q267Gt<)V*Obk1yVx_Wp%NFV_t#uLcuUD~^EkKC18 zg*82ZHw;;Ra&jVzkNfJw?d$>@5WGX@lk$9WT`z)580-4;Nf6`QjbUv@_Pb?A5p5fQ zzCa{ccftfx@KCc~tVYEhb?E%$PK@^0UZt(7biiTs-d%nZx9>q{p%jruP=2xEhk6W0 z6eyGF<@?twzNN1UKJST`ii?N(tWewLp&R!Y=F{~JDY>!ghRc~F)h`u1Zn;^`8w)wO zXM8>$$2qE(@&ReL59Pyl_TCNIfqPW3;;yLCup4Gr*YBAW?-(}8!>Q>1-9=!M_*ljM z5q-koy%v@VHdp;Zzm>|*ck+R?c%3p%$We zyyI!Y;W#3TiheW@T;a|p5#eG)Z1GB$&fZ%`Rht2ogz>vK#jO!85mK2hHN-=I8D1RL z$pK@M_sQ8yij?S~6Ia0d0<)3K3+d-v^zK?L%=4AMs1SOYU^mF?=lTt@Tow)4Pdws& zz3ox!$MlE;NIlY{FhmPjBsm!FBQIEkWt#9;%J0+2eCY4HVR71JAHQCE&D@)M$UVhg zgO!Voi#}c4@SCE}YqDvr`6MUz3W^Y-`}N0{t3MgGm~iCyd*4-nF~$zvANb$ybANgp zKFkFWvb0CeX28|Gr<@%S_^PV8(;I+u*%S%iQ?Z*!Ir4jMR+LWa7ErYr z4R3rU5$qUvBk`y1zADGBs*fj^eAj=T-HJU&;Uzo1IVKaohxhXmHgrMcN+tGFX)m(4 z1UT)6<}f8h2ZtM4%~OA-h$cL}MmUH74(bfgcs%4WdlTOUP4y!kz7?8XV_3hKh(Ft| z0W2G%i`>bKA6E0)`QHN71*{28XQgO6d~CpIlV@6gi0lsl#3M-H_9v~lEArpTVRK3` zBb;AylWyfa?EzGk*eU#x1$ozvZRiber}D>b^;?XxXG?`y52XTmbbB1%HkZo`)7d5q znb!@9iZ{ILb=lN1pa%7)ea;jI9;YSVRn|BOCF!=vv>JM@(Zxg%%(ZwR!dz@WtX|+M9mjQ;#E%s5CiUqEpBpHT+rkZ^_;Ju5ZanY46_a2w@@Hc!NOr87JX3cia7v zS1B_R+0m35y0r_>EbD+wUVvGofA)v$@Y&{D6WAXYH{G-X0xhn@kW~VOCp0e!pPf(u zt1(t40@(W23Z96h0HUk#I9}VknURuN>XTtr01x1rsH%K%y_%y{qZ1- zLJI~UJsU6Ntk~Z-#^AZ+9z?|pfMBs+{Rp9t}16r zyF9*^0`^uX9ZvI?(|d496W^1!4rE*b8Z)(=-K8DiA>y0DS!>)+ZUr~w8~~FLA4C7u z)3u20D_$CWWSaJ=tO5iMJiFjc&vrhF%5 zGEL=sym%yX44_jJ=BiE#he(yZgY5i^MZQ6M=Ud=cmGh-=z&HI^vMe~qh?QMJ?rr^4 zqwyC~EhFNs^%;S*tFLJJhBT10H?a|`G}&4;pfX^e8vX%P?+@z?+ASY|hVq65j5W@M zY0+(9xWe)yrMPy44?^1m{9*~YX%bPDL&r5V^+17CD!+^ND5Mk<_cu*Pu^>)a=>22-uX=XT*a0S+Pul&sw zvReMp3_W;B6A5&Z+EYZwR@TdZzG-Y>S zh!=IFBJV=ts4j`xTi7*-+F{S0;C+)_f#xF;wZ$u|aOsn|YObS){g-C*J{-5GN(T=+ ziG~JO+GjeI8AW>RE^EF-m6W#EFkmb_(Jw64L{S9wiyRE-WZiki2IUkme*t)XbTa?=i|w(+z|DXQu3?dMb#`*%Cy$YNc6p^ zW7bgu^a_kc&sb&~LG5l0I0{Ni17JNnBf4SML{2t!K^&R;FXgNv0&ZExz(U*g^U;vp zeMF_AOusVNFaPXp31z{#{35!&n;nEwM<6E2cg5IqCROAO|B#5SIG7}Au1YlyaTx&W z0;q4is-GBB&yWffuCZVJ$9Jz0q(F8SbEdOCg(Vo3c)K=b*6{iLuQs|^;>q#~)dSbz z=7anv8mqJ{0JNK<-qV+EQ(Zp5S8zlpxh$55Z=fQDsOGgL4?zdqG%z<~o!JQA;zstj z$-~RK0E#d}l0Dbo{dt&v0b`gNcLEg+|CV$iWSFre&fIPbM3dE2-yiIV>Yab|k`HIn z(bR^-e}p=kX6PC4^{N2Sc#2PB`K4jL>ir8yt6fwZ;(zD|(z1pB> z*-GT}e81k|*)W$GI{tJppsnafZu;|I|OTN1^Cp5$QN+ z$%pll^m0MdVGn@mq-z!SA?GQIWby6*k3v7T1q%MInco8?fLImy8xw79P_K!cxs4Ym zE_qg+RC>V8LAd6is65!mN0SYi_e5lXmd}1#N1P81O}dJqYyUmjJqb-Y+Z%PDg7vz3 z6>V^crW+z7>k&@C&(hc`3Au*EE>`Tl5rD?yyd09;K!<}4ULgq0@6_KQE^-Q-1*7oA zeFJOIEvsnY<;t#8eewd~R^zn6?#!3?6>4PF-F5#cpeZg)S-`vpQO5k- z3VCFKjL!sX`~30WTtI2Z>G*XK4^sh_yClwi^}TM4{z=l(L?#a65!+bYu=0g#7@K25(o?}%UO zvqY2pR}HqO`)Gc_r0CV@h+aK-tSH#Aq}0lhEownJMyjqrZ(0o}{EI{j6*Ez!y--E8 z%0hCq--7kKd%v6AP<+Ir7~S97Q<61BovP6HOLh9>GP(Z#ydSZa-EkW$^GEXl<`NJT zMX}GIP9vIQF6amvvEH8Ut$@qq4YS%bDNV!*su-E93@4FVdQ6`zv>vN#a1m0}cPq!$ z@w50;eS27)-F06`Ul>0!5)^^OQuDmeiD6m)s;f3{>d24|7&)#7$@ge>A7iP}=_4yF|^DQ?I%iSNmx~4eh>BfMvWmiYsc7OE01Iix|;r!u!~K$>0KouA*OAZB?h9Z&$Iuy zIY0vf7_KCNbdsE!?C!muUjBJ4y^v04kB{osMdJNih%Xz#Uzt^j&Ed%l9W-UuAk^Mj zm_>Z~S`jw_aP02tOFb`pfckaVE$KZQP@t%9-OkMM2-8&#S1=55hU7%A|5bK6pM6#` zP=2#9&?~%+YKu)OOncZ*zs`||X{S?l1Z%n&0fOj-s9xgICiQ%yf&i7H|5R~uachfI z2W{~@?_O+F?g6#ua>_ODUQY`@=Z8z36dhzjHjn|RR*F(#5#BU>eYsq*l-phuY zN2c(|{+XTQD;VcZn$eDr zt?%pYn~hK4j=I0G=Vfn}u_lVO)CF$p4D62g#JI`_T6yZ0ya{T?`o{E_nDamVlIl5Ct)RUvv{ zhj5)W>9sBNwX?f;W?R?%b-PEtgN!^QW`w_?UB_H`58%#axzB>d6wP*$tfx9GNHiM| zoz3K^EXBo%qtw9}G(*3R#kI%c5S8moeB=A5NW^V=Cr6b`q+FFc)E&Uf0lH``+TVBU zUtvF6!_vj%TL^4CP$EG;eo-;>YaSrueV;)+ubL4L0IW8%GYwp9QI{$q;55_mx8gFsH{3CfyLQ!DNRwm}8O@9t$Ji;^ZsDJR)2$b^ zQp>)NF9mz+S@h3t`z1El{Q%fM6CNz(eXGkSw~)0C6%BQ;{5z#^YmLGKWY^`-`tkk2 zs@+-ydJbuYY(fyI!ej}IoA13*AO}&L;P%>Ktr4~Hm!FLw)vzsowwk8sS!W|fRkUT1ZG_zY}0zgQq*Q|KL%g-#m$56^>WK;h~n8jaI_85zp{ zDL(Ev2|D5aFIxl|Ci%rlbc~@YfR_%mrao0?Pph&}siw@nJ=n+L9P*N<1e$S%I5<5j zJcnS?P~Y-f_E|@nx98Kiolc=7sFg(Sl&CO z^TF|kMoS!PVl>W&cn^DJ2mLZ0sq4H`F8r(>F*IoBHBsd@m$lc@*sCp z_i)8Ox8FVL5^{$#iL9W-zigHJ-bUTd@^HobZ=depEGrzPOg4YVpcq9B*~hZ%$in-- z9k|9$+O|ck;$>wt8wcu!m>)qfUC9inJkOVwR6ge=z4bvcxBfgb7#Oq?G}ZPo~&UFiFi#C&vTi; znS0%1Pfh+Dz*mIfKo4q4fea=2JRp%xe0`OYlcG$fcM64&2fw)x6b`!Jm&|D(_JkA$ z+`dZ{hvHn=zG{A#7?4%x!snbj{(pBhp_`Gg2a65{r!d!?c-eVLUr8xnkPWH;Gf2&$ zw2zUH#QEkc5pBr4VKU)y`w%gK!&cQmrX=oKV9T(;iq~3xmUaNXWatOM&7|Kf8L$j;qIIpWsd^#cw$as^cZr?7-ft4YPYJm z?2jUX8-KTJzGq-M&D-hB*_xO8C2g`#oRrm1k~gy>Vs# z&8!2#%sa>HO(W;?w<|$RL8OK(W)EB~@}0C-J&yOkS%-Q)1o5%l0vXH;pd8vKzd7>V zVd;^?|0hl)x57)@&c9J|w#l!x*0Mb}XsrU}T>Y)Etvuod!Rd8)K&Qn;LV5Z3{QCUs zuVwq?e(l92|N3h@W@LQ;G;ql;H;XOF2J-7KWL;i}JO`r#sxM*rwCBJ6vau^;VVt3K zYDd!S3>{5Yz06vONo*}8+TY{fd*V6B;UMGE?Fj}EduvrJZ_H@tH>2TEd;KOIe_XFz zF)3yG?>O}*2KeLk!Vy8Jlt>A}s)RN1?~23fawS$~cKbVCm*ffZ?+FjAYzbpS&QEtH z=Kk(%xB7AUoa^fX9R>5@Bl|>JJUwt#4oQ$Nk3k{xbrbDFK^*zE!Q`=FNnu=Xu09^)s&_H$xJSh_O~K-wHMlO7jen z6d_q~phfQ0_aA*oRTjD@D)j-heQg=iOE@v!Wi^>A%K1ok7svgaLh01<2m^IBsnDqo zC<&Bc!C|#tJ0=;O=cDMp6v0JrcPM0r6ifgdMe#jGS}4(Cd-0MR5FWZgopS}@xHy{U z*l{PB2Py&@0qIwZ0Z;TU@%wL`_yERjzGdFU@1WE~9&bJn^Xj=V;W!VTFKhosDh}|xL`%XJbv_L*fg|yrb7N`b zsoL>3bqRoz^uBriSQA_jpte&5x^CD*@!JTu^G^!yhU!K7+@X3Cp_Jb`#KuFU;PZH& zxKM38Dm$H+Uaa#a`R%LNDtfZIH%DPtSb{l#R^oGelc|-jf=1>qe3rk~p)MRo!GAuP zTo;Z@svI^;EU2^vV;&#=I6<=P9^$3D5+|qbviBN9vQvF$L=eef1(H`Id*R3BQCKDO z@8aJ5fB@HeE))6(r#S8p;VdKtM4+nE;%WV&(ju7{1@S*&7s+MPXF~GqS)CEh;`jZK z*z=FiWNTc%!*9QKki-NH?x;@I@#4bejuoC@^R@E_g5*;{CMY!!pE$W|kz)=}P&AWt z437Ec=r8vbCCmQjscO5h=&UrqMC@pN`7x}BIZt#GNP3UR=(EaK&Xe?pd~gYJ!=_oO z5H8O~q<1YlPDi2#D(7N^II!BBK2g^xK^a~6j!h&I!ZLjj{pfK@If>gN;&Zy1(NCXz z!f=42vC!Krb*=OJC+R?zfEJ)n@%I%4G0@9ui}eYOLiW^vV)W^#z!#2(Zc*K(BlEzy zW$A^wKYu&nVGH0T@>djk;XkgvCrCeFV44;=KzEtegAeYUqB`2Ik9LR328&h$1M78P8ca^lqj38PQEJGJ{Jh#v$>%ZLwZHIaYY|B~HuD8D(8}UT41L^Jw8msZQD{_Sn|tZHQgXcL5&8=evI%pcg;SqH*p1 z?eX{h8QO$`Of>bV{u}?(&cMpU5IWn^Kq4)@+;iloyB< z;uznOeviq_qR4Rc8r$mAJzu2Pmi@)E2sV1`(Cin06JifzLO3%@+$FTAIZkxWnP(^Z50;QAk2!qp*4zV>y0N85J`h ziggMb*Jp@ctUg3$eX(@@Lkojo3ilW9C{MaQDypjt4o`wZ)RL3E2+pZLi;+&B-0vHC z)&%jl7TBGG{#MTKP*C>#-+GCaK_GJ&h1O2T4W5}Xu?VNKChju~W;K;G|L*aB{XwS0|3~u!YCC(FIaG=xtIelW ztXFlpLUgQD#ID4-R;*t!k|}Tn=EUCIZr39-xuyROJn9hhN}l}i3e2vL#N(Zdh${|% z1aS-B;vOD2##HX}mo>o>PqdVyyGJop=Kj(Q6i65tmOP}q;xDPqDh37Tl#J46{NC*i zVvp^$34ep@nYD?RjES%$-$M{^bC&Mir^+x`x`rHl;4f2A9w7n)3d;E4nsP@wzxo!q z%={YOLSavs-v7LXE63aNzvb<=a4R$0iy0-U>+P1)$J+VbJ#kja4_KZ;ZhEzU9OF>8 z0f75`zBiELU7JWLs}i}v{)c!&f*{>eR7#B4D{(jqA!vYppIxHq?zeApr^&TDXFirt zW}N#H7=^IEaM9Dgb?`2e9o~>{sbpV2+(pldC?Z|c3D4`-GK)M!?>KGy0Y?cATe~ga z0A!+i=*xscrH?z#M!6+ppZK5OW+tCMNAao)=2LbGn_;u%JzNKbOV$gDCoC|BRfPSg z+eUL?GOKQrc~n46YqNdbnelH!1o4@B%K&Ruk7OuNfJ*E6IxHswFR4oABm?F5`*cQj zXAO5;BL5D0HT5{a5X^3dWD8 z%a?(dAFC1vaLY(`bC9l9Ly9h_$u6LVYl1kTb*=rCH_=8xVAB{hdh&-4o6&Bh*&(}cY)VOvQeC@=3;+q z&lY6kI__eg6f7H=JCt8!$6irt3}yW4122hphY@Ma8-yqsq53DmzPh{_;`Er^pjytM zK>t=hG#f{KM3PUzuYuzB4bLX$dqMQV`pIRyacqumO)KG$5-};H{Z5axAC2MwyV5&(9BcT0qb z>6UPFPf&<4L;OW&8-d(@J+N=9AwN`+K>p1ng{CKaSNor8+=OM%?1c04HAYtMYYEnt zT2vc!l}bb>XaFS4hUvqaiydcfVs1Vo@)Wk$9;J~(Psk)4i7~-4OHw7oO8$@^sExv? zDUw$w>y#SEvUm1vwDpAi@sqW9H=@#`YJ(z)@s|=wf1+nq2ECpYmbf#!*ZFxt0Y1{) zK$>rwz?iGkp1FpcNBEFr&LVpq@v)g?5MqjFQE|Od7GwN*&yEN)nDqr;Wg*3!>a}s0 z^-3L;yB=+(tfpLhRD@L0MT+6LNwBcuq@Z$d}REk)Fo=Nv75`|1b2a2=f%!( zW84X)FLBh~OIhW=r@RNXjqR&<*OV4Ne)tuhxMi{mEknbn<+GhyTO7PXnd4^;Z@{pF?6M&Mp|CyKS!J zSE!BU>+B=cw9g%LM1k0Qq41`6*3~s29b+-7x~5i&fxQ5m<(`d-+#i3|@dq+;YEd^! z#_{VBkb+EH<*4tNX7NNOcV&u7Cjz|Lq^OtdXApWR2 zaq@elfMnvhCM#h*=S$s;s}@b-8(j%lu|A7Hg+b7B-@Z^4Mxtfnn3^s0+ z{3_)0`?TgL;(@JM4p`fD1=^3Wi)b6e=qgvI?tY0KPd0>MgIbMmt!=`%vA>_o#uWeU zJ2!*hd2S}NZwJQy`W@v$(q8JpIh-&tWHP)F@g?tegMFE~i*x$Y`Snon)>c3zYasKk zInhbgbr%rN6EsD84`+0rw?i=&dt^8^4fq$ej}g-Nn#iB&gEYX+$tcW_39|eBE#Zqd zf1N+-Y=qmWIyzx>$e#QuJ%5a-F0-e1h(FSmIU;B0d$4%@ZQ6NDURxOS+zH?Jw^MQ= zaPt?&!_Bg=aK;nGPWk1Dv#y)4h%jWDmHMXn38^g3_BWxvnFHtF6To<${W~65nv%Y^ zR@`XzOB0D)#6nc7yb<}=^@JaJ#Dh$FJ$vH`0!$YDcS|a|sL0bCVw&Y6*C|p*Jp^YK zsn)|obPm-1>0C`B+3ff09Rq)UnO44b=BsNHjc8i0FUF|>42p`A=)~C18x_%|UzF^m zxn{c=F6uS`MD~!jCTBm*t&u1FEm672L=NhkQEjwA24x*Muos_xY*C1EduytmSEmQU zX!x=ahMQfmQ%n?~i4M#|-03#5s-EZh(pha3UOS?+?DF=wE5XO&9Xr*uzNuGqEEye$ zH~Ia{sr#oR4-;{yv#|KQp2e?9Yd%}bnohq7i--|6y)j3%U!0aF6wQcCSh9s&Q;cy! z7*(jswIOn5W!Cqtpo$;9m+u*z|6vOAH8x*!Cy>kM0O{9A(88KT$f01lSADAAl3ddF zo^@EBEaC5L1>WUo6`zbPwWc}2Ogdi(+mPyYFTe@kI+sRbX0%Vq9gU<;Jhdb9p&l#l zhS!tVphphaqr}UotFX60z_p3Ui;@Wd$k~X0wn?g(W6lJ`N>rQvLYjnH@EMAjoxht~ z=*chdR%NssYwKjS8j3LD4CULk<|9$PK~~b4MlnTW$y!s~Pek|czi)G#cvbS)i(a@5gzu4|@L@@}1ShySMpu-VfH|%{evULJErS$NhYBw41!I08KCI$2|-gC`N;p1w5wx}`2FCCuFUshJ+aqQ2KupbdCQizvAV$4AMgjAu@g zh;?(F4uTVWweh^dshGxqYp0ElMiTYeKYi;b){uJhXEN&g*Q<}1&+;R(nu}>ZwnKei zgQxh*DifxK37)!(0kuhquUJFIuy$ z+?99Ky?cJo!^3>`Ccq<2p?Z}=H1`3_N9jwT!iMNKOUWu11rcU!zIH4<$(p}C zwj#~~2vGKbP@h${Qoj!2fI#*1C*4XF%8N@a{a%^(=eK#AR^{N1+R~rww=(g4^?^e} z{_xp{0TR?_Z|*swCvIK1PN8pW^d2>nEYfBp!zcM#zzK-o!Vl6a3&Jt+zX$Oc^LJvIdp_?ZeC)YB+3^2K*!VLN!-@K3V3=s*8yTBvg2(-%>GW zv(jEq?lpN=RCG_2)IMakECJ*$e-5q1vbS1QRR6AiPpwkW+KB=YIG{u-N>+Qd6=!l+ zEE0;`-&}Hy`fcgM*U-i9UYvwEwAO|A7I=Q6#)=~b-G{xE`}SssgOlGKYLwmY+t}@C zU)PdFH+-5GKe=s^-~&;_=!w!ptcNWs`Q6@NK^TEoXt$gdU#F)qU)jzV_DfS-qP_b% z`S}%?m7nlzl*);v4@OY#?+P1l_B7>9R3k~?_h*`oBiO2)?n!QHRDmva3S+6r$L=FY zz7|$BMIGhZ$3#%yZn~n(V36!lsPSYF&j!k%>&JNys?jox8q~~7j>gDq)UjT`ZtP?$ z3yOC+jxX9243EdXKL)$eTo*D!UpGWM-Yapr$SN#dOd?%;y)d?N3)v-$=4N1Zuu@Lm zNm2m7X#G1bs~!OO9}Wcw3d}^SP-~p&4)P%!}{>+n;&xO73Cko>T-Z zAmp9>9@5DOZ=l~?QNyW}8eKA@aiY9kJ%*j;6s$p}-x9DN!Bm)8>NMlts&}D)4gKIQ zyVif7)A^irXCibT4rkvR9nyj&_ewcqYzsz21jax)9jpYL{EZPb!!UgQNd;^r`y8bjJ9QW9Lo84@ZUF&xD!EVg$Q}rvx;n~kG zbHKEM8P45AhD|049o39yiEIOAtowt2I<}{*5ThlBHlgh7IeBK^B|`RJ-d(o>)B0mV zbgf=HEeO-4;B@t(%X~4ID3^MapWXKn zKw+Rt1{|yqJ!A{5iby}#@5}tuiCi9&X$~5V+xo&^`_{fM?ouIE_L@e~nKPz=)<=+E z8rQe`++9%6F4^Dn+>&#~*ca|^P7;hKI9hVgtOFm}FB|G+ z*}E6lwN1M_`QcavkC4cV5XEa0xJ1&NT@Vb*furg66e~h;Z5IMtB8oIfQGnmPczj?@ z18eRdJZWDQ?D1X)_5tj}S{fbbB1DPSb>JW@ps$NW z-;`-V8GJ|ZVj2ajT)K-|8FG6#7t=ku5Ett zdzuv%TFb+qtH6`|dakc5(d+I_W*mUIDyn`{i%xn7457G5V-i?UZV$gg*JiBPyCrk5oZ&9(IWqKs&mvG4VujO7K6@bZp~#dp%uW_;0Y zfiW!gDGs-`wUS}(zL(^6FgeX^XwErE%M^t6CxeB!L;}Fb+(o?mwY=DeJ6=3ySBD62 zwL1$oYU-?LZpm`v9c@6_9S?cA6D9HfWE4AgBRsK+sp>fO8Pd1HWPMx+gM9MeKm zohwS;hLylPA|3PurHk6>+NSl~>z+Sc)8ks5F6l!UM|Oaj`~dhuQY*3}rjR)*V?u*z zH*WO)(AkZCZfvfQYT}SkXJz39l-W7@;hNG4D4F?_VD5*BDN&O%yHOv8)BM1%iR_{| z=;X-IJeW}k+>EP}RRQ-{2{-bo*-nl-gtOa$73aIWiOga@?Ugx9Y1o_Z8aHSko122; zYDa8OwXa$xZf_?wW{-3bU9C&6kN(cT7x3%Yq9_6RGYs|Vux#i9HmA8%xRc97S=@9- z$UM&RruybcQnE%-#vFt8?E??Km<+K4fv$(!ncq z1P|W&NK)^+^Q-qT!FtYwq*l}T;V{dasx|1v6c6fJn0+euh~h~6*@aDsgkmQzYN<8^ z4k`F$;G+p2`Wp3$AZgIWlEF=%&VwEG91soqE_q(KnTmwivt}h-;ER^%dxb5F0r%}N zk76Eo#2Va@0ZXVABc!g7&sdHfN{?$i{yD8~^gy2;6>iW!ssXR@5k-Z3)OhwP`9} z1N^r1EYaZV%bdGk2tYWx>$c$~~NlM?J*Ro6Imvs;OyY z(ij@h_Z0F%*rmz9WJI_&UmuinO%9R){#`xbt6M>94i*LST|HAvEz2`x^)TT^DHmxK zai8qkaXz(n_*_psvH0b*lK4|K%sX{vh+(nbIBG_$bm{UhMXm^#tm1_7cE~IsvcgT( zUil8;GgNDgn@v9GhZ#i=Np`k;4X&i)s`qnJr|_e1rncg;?@aU^WHMCms*hG9+eO*+ zmWCj7Un|KA2WcauWruP;nL~V~%Hd(3-mNS3Mhjp>?WnigAvhRQI*|rj>h;OqK8xl4 z%p2#f!DI8;l=JA3F_jmx8H?QPmu5l*z&_6>oA~~Re<|v-Gu+h&NkvgdBc$+ zJiFy7dN;5=lKr2`ZbHUk!s zks;-$(|0zIqhe-}zGxd<61JFv zhTW}fv@^Zn>aL(UD_1`DnvE!!P54ZrzCbI`PIuqEI;417&!IgqS-gOu-HS!mj?d|k zWgFD(Ud7KZy21o4(X(w!#U+xf!j-B2La}j&rEO=v6LWI-4lL5W*kU)g1X;!#ih0op>^N##9ia-OyYR?7*e>6cpDrTvX+|BM(R~OE4XJIG zKcv$|TldRoN}T?TmNl359~ZMh)!GkBmIUnvh+IqW>tS2CK#YD(^-4l%0(0s<9g!Lg z;^xc>gTc2BeE@=0oj6oX00qv^bgG2&D3Fy{VDnY-oNzh>UBr7Av3 zLAN#>l{~5!^DPi8Q7wMpCI9CMT?3{jK@el=xQ;Z6%eHf^HT4k4W0qLnVjr#{K;kSjM#q0 z$ClCdM~=^@9qPdQ)$qMl;-d~g8=Z`4;N8+Be{}9r^~{so_13eUIwa(cmM&aSn+S+j zNWum0M1)~JUfgqi+Xz*Q{ZlRwpZ9l-q_Wo?Sq|{5q0Xw~N1HIIvikfy6S=+ofKDm3 zQE!L6x2t-q%Pmu)^us52?6_X+%KI{>{JGQTac7**0&TrSMRc73i<|7aE3|kb(1)1} zf41imcoQ9=AG7nwsk~qo;|Ju>%Y){-Zi>%3$h!6e_kewD?s&)7v@|7 z${Cb-THEPLNFj3$9{p{~tZhcYB^qCl_aJdvE2wsuTv{Ux5O%i8c9T!9QPP+GZ6k4P zfw4cdj_7@F&m^%T#+-b#$+5G!WUv{lb@9@4_?VmNnKm;k*lpD~yF0rC`tH=~+pl28 zls1$|#_mb>j;fJiSVrpu+N*J-s9?IhB{qjsl3NvqdbuTtH>@FivzPZ{NGZgtN2<)G z3dN{u^bHr@jS#!Nni>btYX99FsFs5Wulrf3dZ_qUXN%2Trs(i7VrC!b4R{Hon$>i_OJClRxeAMYOpZFy zau00Cx5RMA&ofN%jd!*_RE&7WbGA5IFy(*_%SlDZ%ozziF@1K4*qdJ(_z#^Bgy$8mNmH5hT zv*aOo^9-PKYJ&utH9kA)yNqHwcHFkX#gf$Qk{Sw)#9X2!LGvQ6LD|nA7r&-RPuOZd zbfSmmjzdgE@T-6+Af=}P6$>H`!}M)E1rUFwZeQZ*Gu>#8&%p2rR>@Nv!QV1Q;^H^a zu+ynl=&)L3<6sEU!MslIG`>Zb@)M+EFU_x}T3P|Toy%Z@R~bT2UZUG`fA-4#+VOGt z`d&S4dyo^ZqfD}MPq{R)`f}O>6G4W$>;BWbHnZ8~9vy+(k zqsQHAbM)k0T0EYCd@$Uf;&dCO^^WRaqocfLID*DBQaq$otyb~~sl)g4F|tmKSdMrS zIF|UlR)Z3p)09If3Fm0zi7R!q9?FzER}N|WWalaHe}7F3Dh!jO@DR`A99X-y*c>#5 zrufZA(y}4JDwb1ZqFf)+%2h%bm)!Xg6DjRAn7H$a$>&aAE5W&6 z7TtsK{feH&E8D-8eXHx{hc2I%0F8lMNE5Hqw0!(Wr9+#=z zHEc)Z<5E>`e;R1|H*hrwS&c+9)4Dt z6V6jVvO8?kdF?yy#xb|KU&jKh_e6aVZZpc1uH!R1aNdjXUaFKaq=wi)A8C;n_RMYm zM$}*wB+&F@Ib0Z8qL>HQZHxiiGtJB7K7lM1G9X5x8>!|_v%PcriJ&Fk_sQX%N11+# z>_%HjLy`A_kiJKM#?$5p>aj1kP4_|=str1zLqlkyxgXv6CkffgXI7uWY?r(QzLUvJ zZcK!bzhpiN=KHu0uFrIQc2}Rhr(HjOZ}5v8zmf?ysE3Wr*!H;#cl32~u4%EWHl*h| zetQi(i3eRdCmuF$bK|)JPag?91}n+0sJrp*5RH0MPxjJziPW7a%YTpK!=sExSE7Zs zeHBounXAuns3zF97Ri{R_ZM|2q)B3faa&RF=j1jD1w4+XNlMJ;azBrkt2dkXR;XgZ z;o?-|K(lA6wsjr51cuslo=arY^~3vL zUIgCt!eqHbklV(jR4K zXb@oDp6aQ|iY#f*Pn3DWgu5PK1%~SSxDh?-?6_Ssa__e0kMH1qjyGR2S=P5#sv-E< zKQq}tYV2&}`O){nQf9RlI7b~zkjN!AXHGFaD`NN@FE`57ee4<_GCEeD`;L<)^(x=SBh-CNO-`iF#VvMcN^}hRmUT z;zVz#a9Z=ea!1xGNAA$240Va1*r>-9W`lAgQUl$uTEb~K%dp!bsi|bS+>W^=yhXK? zMFg9n?t_B@RcUV@N*en18ayX)7!YYZm)W&x2R_o3i|9Y-ce*RRmM&lNCiMH=Swl#( zc${UAUmiT*V7=ylzsS8hqsD{3<q4!=kzgS`@V-*(TMT>cTnJe9XC#Ps^PpMLp_GEas=$ zbMU%ut8LBuUe>Daox5}t*%}(BorS)Pv3n-Wd7tv3_{~^eZNL#U3&a=xex;Yw&;be1ycC zS_Z~)>C&?}*m{-Xi!}Pw_m^jNWgvX%hn%3W#a%%GJ!C5!woBl&u~5e}abU=xd>r?= zAlu_YWP*L`t!vAn?|X0-#o77g*C0R|+OjXdBxCinQGtLyTU&KA^J%l(hGg;R`u2vk zLc!{cu0mK#WhY-E_krSmoFh~2!gC=wkeL3#GH|16P9ST~y(fV8Z4-LgmCylDH^H++t?o*nBCpfwa1k8}*K(J6KQ?k!H3mm01Qd`a93FQj9i+q^WOg$=# zY5N2>OAIR_CDqzs@88_chkLp{KaZ_`$R+J@7<5sY`)_Hu&yma(-gz^$&=K70jqPvX zMPQP559fhgN}`B9iIMq0`v}MU#Uog8VqoTOvk>kH#?=@Qk=H1fh8vT9jmB31gB#3}}z zp#PH>2xOu`JdzjXwmi{yEbuYa4;xU+c=C>eyb9JG*<5j;6QBO+N_{5f^YzTxYKsd8 zdh^qIJO`NY*uYe{Pe-d%qPEj>H$E~=fFL}bMt93ojS=dBn_{z6ldy|jNeQmS>8;gU z8oK3YkvE36g4IT4rZc>n`Q1G;-)@pC3N~k3`@3@8cINKY+=;Bb+Am5_gOLgq$v?SY zvY=HVcoD(z?)hW#y_MZqfw6Rl%pwHS%58COsw)%uDe>e)D6=IgnRn1p)0^u+Mv?9F zo8ipQ-RJ5&e4eY{wE|J0Iv11FLm5IuQLb{pipnbyvvh&aA}#M|Se z1N>i}w>+W^TM>1mMr;}KtrXNTBd!FpfoO~mK-8zfdwvq)(=}Fb@!$)fq^@xDnEExC zh08Catz)E*czO**XM=KEO7c<{pAx%Mc0_I#{JEI`3FpdcqinB+D=Mn>{9MKc*mR3m zOAFPN+l#Bi`>bxS)o-^k<0Fx<7426MQPJR2dp0&e21EEA>L?2G(3I@nVg=`TQ;xfI z*X8^(JFPFUqUMNcHAiy#PoLXc*>gsGxGVO#3IU85iv3Jo3(jl=sh@U0on_wEdCaYv60hO$%b$&M z2lTyon=&>7Kav3y6HS?PY1dovOIFvVxM&oz3=nSHs>pz+nuPSJPKw3Eh>YOp&+6Sa z^3gE9?^i1kEk0dXrJoO%hbKGgRMi2=1C@awbNEh)Ud~#wTCB9C7%or!5T`4(fwNrF zE8V(*GG-p0jQ^TO38b;r-uiCpw`)2fYS#$7BzBTg}1r zeZd^}$MQJdeA*Dl(I!uZ`ezN3^MHs`dkbhuZ+q(A8c{chy26)AA-D=zDIH55XvMycow}+af>34 z7U-!{-BF})5&qbu`}2wa5X%f@S`kH%tkJ$S05Tspk`{-iHLa!7itB~sVd7>l>Gnjr zEr1A}@OmxV;o^>bq&46DA^5zgUEBCyJXC#D$6p;OUs1eyXPabpdp!qLkT@K@y`-nd zVtlV7&)-cWv^+Y8F<4S%{x(h8P%jqcLj_RNww>5%+XPcKk}k&tR*4CvvRKe6SKWSL z=~hUr>uw(SH@%{Bik>W5h}sUj7g&woC52Q!9Dg6vp8xWnOOHTOwWgSg?kn+1 zAO%Gbd*G(&dbpe#SXYQfu?p`Tr$G|*NxU@=Wy8H1*tg2eH5p-4(9Ns(*aVW_qB@lD zQ9JwO_W`9=U@;cnx1I~TnfH4n3z-AzRUp-KgLx&V!Rg@ok>FS7hC|93_Gh)6(!%p} z|MjrWoJz(ydP)$mF4(m#Zg}0y9w;IZC)9`tJddZTM!YDf)vNn`?YvvTg^S#R-hwb+^2>IUvkZc$Fn_xV&b|^^LMNqJ^wQ z!Q}}8Tb-ZBb{k7|T-Ts%tQ!%z z*^ujj!ooXrx=&I20h@U;6-<79r;QcG*V169x_``v5zY$uh@1D^bJOdO zj0s;-rG9pT^orQ-HlU2`A#w)KZ1>{^$)DKtWujm!#Ohwk>6ph?$L4t?nee`HPi!(L zgg`;r4rIN_=F}dsCECviPM;o~`Yn&NE!0dIP^{SxCi7~xoKxhcBO7i;t)ZEPZvW~h z*BMvqfU5-0neasUb}vwrldUo&E=vB;ujo5j8awZf{0m-+A2S7F(BB1({)w-Ds<$;@x3Pf@5}RO6%p{fwkR zl_KBV({JIyu`V)XJ3(3;9$4EXqk8AsAHj?zxD^U)-~n&#qH<}V3`7rU)>cdT3+PI( zJEg0yP_B~MV=E3KOzv-W1A0yvyhw|d%hS%LUht4hAOFY`$e!%e+8b(dN+!p)>~G(+ zB<=Ts8znh9@Vwy*G3zBRKqWSaAvHInZ4U3syd5k$cCKJj$;(}SRywlAU5+ZawbPz` zyWz(VO%2FlJ%Xdn?p{2v*E?{BlRW<{tcN9RKa<%DEb~jRL)=*f(WgKG1?Cr5$*WG@ z<2`MT18l!~%ma&^H|wwT!8c~zd5iQFa0e{(3FT(UT$^jK@p!Dpw7j&<^zpHlCwpI1 zb2MF+gd&{~%BqXUIIDP&AN!AeopnlsR`m!AR_Po`eR$o76d9a@6yYGWh|JbkvnOrS zHImubbNl|%zxaH(dauUj4{A;J5+W!&eiZBR1~;(Pq%$8qrsz7p-nVVGE{k}i6u#Uq zq^B+RB*Y#OP&e#$p18@ciO_Uz8cqS(UF&kNrSD#T1qk|QD9Za9yvuztqT$|tm(eR8 zBm|5=`7?JmpDs*takY=vV7&XvgA;xkdV5|nXnk8=+|wbRMa{F@RVzeOuusBfj(60= zHrn%Rt>wDN8K`}}P{^Uyj6?JI9JK!ZkV4XXS@TA_8 zlh2$erw!8~a%TXO(;MtU^+0rbJHDuo&+8bDF5UZ#`u4;DHQ*S)wrrf8y4p=427 z8*%&z+rWKc+YIkyJ<6%nM-|=I@A%C!A0I_%&vRrG{V5Xo(;fN z9m0lKPDwo4)6+DRU1_s?YE`Jv-8}tJJe!|$$F!j)@nV5YRuV~5DPU5@{(0%?P}pCs zV}TmN$p9}KUws%#Qr}M`cQ3J#T&o^n3c&Sr$?vIRvs!|LkyDD-pFLcc*%P^j zpy8Y4oCTBj8tqORp0WFKg8l^x?CI0eZt+jg5cMl#&@rvzgj#?w9V&mpOD5aXSEUyk zI_}%hm3q3CB$HUyXvP5AueFGkL0k*+9IVTeg2g0*7H4|Uhw45J=}ZJh0yQiNj=SzY z0Zw=iR%PGNED90$QckWdv>@i+Y2uo>=k*Rp)1Pog!P$zQ4kc>(>I<0?KK^gFJ>Bi9 zXlL2_v75Gg{*=2|&$1JY=tEoI-*#W9_sZnA)hm~jP7@Y3rQVYM0$PwhEE)W;m1Stf z;}yZ$qu?rlT#jqW=hyqA7dms~8vbj3iud;17nv1p*SIM3?`e9x?2&oVc@an>LJ^0d z!&H~K;(ihsZ6W%tx_wJ_&LL( zFp=BRG%~jWO^Ys7Hm|y*AACQZzCtEK4LrVNhFuew)whS$-UxS`*Gnyf_{Q`Di|OLL zhiZY0#L+D4S7!0pWWP#UyZ~Y?4$h4a{~vpA*0rdXri=cXygW7Nn@c-Hkw!#7?r0U1 zRzTp_pJy7eGGk|D=899bN7mkB9M_77@3TR=Ip^Cv&0WgOR(d$VRr5vIbTFRgn&Eb^ zcEj}EpAvHa_d7cx;Q}B}=n<1pK<0r>H1E1i#J@UlVz%MfQ5}bJ*$ZzZ>-_qmrRokf zlO|y{EkMBc?$m7eRC#8CFw%O`Jr zePgTSVP{S`T2drmR6PYj{Ic4QCeL(@wUcSA%$dyb=iLbgq$XpBg8C5{N5zzOOzfqT zIxCPW7Y9eY%@n5#q0K6~EmQ!(vp$-9J9(f6WfbSCGZKuWl)gIfElQ-kzTsERQ z2U-qfY}js}G!vm=3IFP32y9XEpph`WQC9tIE5?N`3nmP^J2zF1wSws;#+qi@%@sY+hP^bnCmSFl3};C13ZE@ z7}?4-NN>C z=v8)OR%86AxAeJqL{AeFsUmXk5L1k@JL<~u=q$$yVz8%fw$9q&+D%Soc5$Lh5Y2n+ zSk4W03AvML!iU8$T;E6ik=ZM{28x}7jxcSZ6tr5__if5s+n9d=M6yxKjl(1m=5grV z`g%Iy@M;DMF$)ZzX=rc1;M4Y^K@(AwI;@~A$VSgA)Ghn3R)=WEqVche-U0IM^&Zjn zVL7%jP<|}J!|n-_oST`FY+!vv!NXmv$fLIk@}{)G?W!mENjCwU_g3y}Lu0I>K8m`MBAm02xAS zD1b=PUcZN|c!;gL2SsntHfR%b0XKAM2WFD+9M(wv6nFxo5MgBi5JS7i;76AgE-5^u zvShm%E<{_N2#J2xU_|=COOP~ua-Ui~Mf>zjDfklR_|8CG8u zRcDB^3N4A8Ztfd+Op;O`#}&gejT%ehJbBl$lm_}z74va-a1J0?4LrY#9as|Ai6z79 zeE)7`C=8ipfz-B>GA?N0D z$+@Ckd*Mod?VbsV1JZWnFaD1AsX_Tn$4U*+1`=tZR?+_!Hpksf_AQBobEGl|ib{Io z9{c0x!8{;xax{eT`0iiw)4CK9r=9IC8W`vhQZ=S*DaXh9A!-UcK2@b0tsks5UEgoL zkrLkEf@OuKrn196B2^$myWN!UVV~*n9^gpjVVn+{_3kR;4dzOnJ@T!3o(=`cW?ckA z3LGV<31;QERn{clJi@mTt=sYCBc2!;8cz+j+igX@)OU|p8VF(F9ruZpcxZY|ukhMB z>89d@*I5%@oMuT^GSm_%?%rXZNh!XViIMg}0TNF?Zby%(F#_-cWOH2+V6eX3LQFc9 zi)H^Q)#h9nWC99&bgi`E0^R+iGuG#pl9^=#U(=+opPsb`yE3;7m@(YgXiHh)#uBF2 ztJcbnmAV+2NfDb}=fKP7aDChiVy3fpAWAVj^4k;GruGverVXs+)i3#Iu@CEZ!pSi{ z^STl$SYkB>-9|4^#_V+p+uX%}ZMW%oAqvupRlZx8vtpBNfA+}uBD*YK@Pj~$W6iGk z@^M`a?kjvc+b2mfS#&}qMrdvTA=Iwc@f<8;`h7sJXhfwGgWzlNQA(tZP~e;SEHRl{ z9st^Y%3iZPmloTu`V`Qe_w6C(3~)r)YHPmn?aJKnju77lft=5a_;5B65ER3pOy_Hb zMQq!C@Gg5C#w>6AY&a~dK*=6@$GqTia5%VU8A3~tO}c41Z%^*#vY~8eaYWQ>kSMzaX9NIIH`z3|PW@^Y7JU9!1U1)_@U0w2 z6Xx|SpRN%E9ol%a(O#ZzU5~YUEZ$%xe%@jNGAn9XWM=^Kq|f9gl?CHfquh5Y#iCDz zoggLk_CB3Ouz4IfKEFqi*%Xo1n85a3tL1uG-qBe=`J-#8>CPW-O!0uhT>1dK_d2)7 z2*b}LSGD66(7Yo~bTV*CJiR&ZpJ}ScbA1x%4|=ulSk~v1i97H*BZj%D-S&E|)*W=6 zGzKza1yN2|uXlCy93X$xeYO^DQIS}`s3^F}xa}0D@^wxw95H-!bwm5`q03Q+5srZ3 zAuQbz|2bG%_@BnSKnFka>JRMs7^LI+%Yg70>PG6^aH`pj^=(Q>E{`;{RN?k<^;cp8 z$aTa4gZ_%)oV9(KZ+Hcb^F&?hk7@ZZqF%15d_W&8u|0#V(xK*<5UV2T{AiMiN#0;> z!Dc&h!S@J#8gAZUQ>WN251-snIL)Ez(_u?y7)#31wBNM&oFZZS>Qh)zY*Q>cA zN`sY?R|1nhm-v*jU41YjQ&=kxw^$F*M>3rb+}wuqjC&GKm~53ENn(EzA7-DQMbszL z3Lcq4MaH+CbwKgm*eMo{tn6nG#|uXC!oG9D`mvs~6S7TmUg{&XaxdVmla>FY1a_-^ zM(7nmPfo3PO6_T(Yqd>4sD3uRx$FjuYNhm| z780x!NfoPU^|=*_AVueWfQuZf^N*Tt79XIsOT8P7O9xA}Ddz^(?j6*%{ak=gMdY*L zp3ibOwX+w->du8Y${GIT(6_>Vw#ro)NoM(6fkFNnOPcz`<*X?rdO`<+XmMJ&UIUvI zi+78yPv$Dp4g$Gfdy~c z9p(Lk2@uecqG?nzqinj)~yhw-Y9D9vpO@$P8_GIN~ZKeBsJH5Rp0Nc zDoIx2tUb+x?9EcY#zpPL`ABN-X~>_T;#BnzeBA3Ue-$wg-Gs7vaDzKpaYW@il-cf$ zvF^4Z+IT|Dt{nv<782$7D{(J1%+zb6Cj+LJaY@$?GUyAxId`}Yn`#Y5)oGmQsYV3()N9G_^Cc7$iF zE>_)Cu--j}8*<`CB!{^K5%Gcsvf)ZTLxv6#CsTygL0di3Xz7-b zTnVI}BiTqFoe=6Ou!*=4G{_J2<~4-cF&6i?zL}ozDS`$fsd6C7R|?@y6IF5Yu$(R~ zi++s?(2pn9=dQJO5UQzZG(L%@`u71W3DG$0!mb7GY^zFhi7x6_-q%~fZ2QsE#jjl zPokX*cnmfr-mC^lu=^j!yj|7uOo!P(mKn8NNHrFV`vJcJ$$<|@#+P1&Wnq7=+zti+ zz4?4bjp6OTn)u&uhi)2SYf?{-q5OA%)e#{(1lL^pihUw$Z{E-sp#R@c`{qo>-^K~B z#+(QZ(jU9O{yH~2*wn8E zx6QZhX4@P#u5KJPz?v`D`jnin-A$9Bpw!*Dc)U>ywA);H?V7Uvi(xdHz*t8i`BX!kVktbe;OIY$&-3RP+k9&5|C`fTcwUN4&hZ=6 zd5Et4_i-9TjkU=Tas`Ju7iR24UtdV_DzJHAsL?wXuFk+zB!q2AS>*Du) zFB)F2q;J$0fE^uxCpOC`V2t9mb#b}cYu75S85(}*&j#eoasWkFKDn{UV_i{XZuLU> zq`u62JD1Lh!WW%;co7{u(^o_BZk~yw;rFqvN9XqQg5#Y0_2@P$7-0U~=Jvd!evXk9 z>QC0)fX;GcuP-$;s=kj4?450m-`oy|zp&fCuvn3pzcAF8b}0LhXBd))lc$=nORN5u zr_ddxu!v(H|M~yy29?gVF4MllGEV*6A}!^<1GTdk?hkWg?Yu#ePa3lpyVGKBAy%&N?}JR;QgaF~>i_e{j*j7LNPoQV$1c7>w*2|T`w=$e z$Gi;h_!si6U7yF{>l8xA!va+oh2sjZM|I!VCEoBNFF^bFdGBh_vN!ds?!Mb*v+v`V zZLD7ToqV>h8$27n8%(_T6=`sa-Clpca`nfv)F02_9ZA@Se_>ZY_6gHclOh==r$;XE z7w)O^__#UWwe9*0RrU92yMA7F zAL**vb*4V35O262H(Yht9NsVK04ukFB2pYd=Gv z5y0TBeV-3t4d}&T{_p)ETgL)vZ&o)4yR=Wc2^? zhD5bXJGlyXV`e|pz#k6j?Y=yoo|G4xeCY1}f$G_Xvd_6* z0z(t*C(bc8S4sUC)~-12EOIUG@S-IiK#$!P{@{3KMWUZyzx@CI`M+`owo-X(@}Rus z2k}ixP;gP`a>tIXFSxn6QI6_3AYFs?W{;-}@4E_hSw^L-jx*5s6xPkPgCdsl(j7t7 zP!&+ZMsC|($=*eIVL}p$6x{>d>b7E!Y@twdS&gnAp`N1D`9Y4{Ky|mYAdmDgs_)EY z$htj6phj5l>4S8?ri>gc2V0#W4(`6Ovj$&<2b)Y05E3eFe1$|i$0Fku68NMA4ce=x)(^3YDRR z>#030itY(1lyWY^@tU7`r-6cg^EforHpJ5j3g3_{eJfxjJp^c|`tgw2Z#t`Xy2sNO zL#eAi@*-c}vkty9xm=6Nd`6U1p&C){i=wg+3@V$-m9MPBG5mi0TtKF5P&}w1y{Hgy z*BX7TIh7&1Y0V(X9f@R!Qc=l)vL589Bl>l2gjN@wz6N0(&|f@>ij%O2>_T!AatbQO zgi;ew=5n%5FcK6axp$zx?)F&Ey*&p%zybgURhN`F3M-+Gsf#?eUd<;H~22) zYBS8!MliYF9>_MCF>vVXDW34l`bpc?eH8Juc;!`=aP<^!cv?@0G=0CdjcnS9_kox> zQhAURSAXYV>LmM?99qHmJCW4M$W__B&a(aGdl_7HW_Hz33FKxYUM0$BqmpfBfx@t| zwjeoQdtmm&z5uX`*e0dbOor9vyQ?}FM<2DU^&t-X^({?zi%Ll^WW!Ta+C5!e;|o8s zT14xMz+gJW5gPiWL(o679LDQpW^(7wUVZBU zP5sadC=1)H*5Op}4I5diQ13@38T|Ck$|Lx0mOLz-(`c-tBf*bQ-8bJV4q4L1L5XQQjERK ztZ4HzS#=roN_8c5&0K>J8@X&mt}xVuP`I^qo3~|}->UR@(Lx~{gUZ-+Jxw_;e>X|K zu#&%aXaALX=Kp}t=#D{KYf30yLFor?n>}=0euM)vHS^ikZ0#nsM(4qt7@$jS7gel< z4-gJ2XWl=_1B-k3s8kzYWQ9a0qjiYhY!MHPXzaje6hiGFgl)s*yRWZ8yX`y}Fx=Yy z_9F8mlHC?SWSsH>8ftFIdr8cv?vw3MVjbMY6)0`IxVv=PhxA+63^W8#t~Tv$4UPgg zl+8P{8KH;oO*@iLtUWWL;6ISIiM^L@W(9zHE6QJ%dZG4CZ6o#d+hNZKUcceOf_Xy` z37=Che5ICS;7M251zHYfJ7YLNYiAL>d?p11eF@Rh3CJ+QZ)E*lK^C4)`yxO2Nr&1{ zOh2NJjJ!tCZRx&Vl0Td}{_}N)i%@3FZ?k*d0GNM&RS3Z1wA%EZ-O3whJ*VCDI@OX@ zbiU+-$61JEJyXW3?E-dIQN#U%9cdFdSB42kWauPl95W4P%KOuJjZsAuYjMMx1}5@E ze!V_}0mevDi@Gqu8$6OB!e`lEf@AM@UgCPVI+S~LZQbE9xC{2iK)D;OlJfNQ zBO{x;B&HT&Hxw85nzEZ=5J0HOz+u4_Oj%xS?3?PYXvnnSx-jn{H~FL{H;lDs8#Zwo z{OBIOQ*G~*oGdC(BD!Y1mf2)jJ|G?;EItcN_zKnPIdU7c40zyzgXVpt34 zmV+ctK9r~S$(1)>?E;WY%W%t!LQ7i`mCp&HiQ}R7H0$MSb&=@(Rj5nAB;~zg+Yhqv z;KZvDS^3j6qD*JjQJzr1L?3uV;M2jOfNpKt3aC0CtEWBGg%NYvIbk{^$*0bGHbawK zGbfJH0+M<9Fj$4dywv8$bf8{SGl}VKT2_ZbfwB;2Nid)88u?UCtKl}wAgO^xy4YBJ7}r6c?Q$ zq!AgYN*}P&PA0|c1YrlQSH=$8l2m*Rf2%XT0>WlB_inm>=rkX|bE4vrrwzC;0cABo9X({2n!P#fs(qD zKy#;}w&0*b5qX`LzRB&obXUh9cdu!d)}=q0IQe4RQ|)#q>_-pHDZ0kgt=Q~M_7GU( zox!acIaP@(^5PPrWke0zW6>em}56@3C-Fi;Ls?_9|QX z>4zt`t(vZD^8@iPTm!hB(oxFP%<{>?{ccche;<`Lu((4zwi^E!zAZ zI>2R6#<09I^y~C;$bF1F1ir2R?6F2c7p)U%W}zmkheby(>15NRnkQ{1FJ)6q2{w=c zy`9I$(63$H*G{qjE)TpYGjN5*UOVJo*}NG27?YOZdKc4KE+3f~*s6U8xOy!o#}9Fpax>LNRkcr}yc251c*f<@(gQr*sU+bV!6o7>I8=mv?NZcGt9b$SqWKXO=C}wc-A3 zCI0h6|DSket1hvq!1kz}b#j;5L4TDo-mvH0xNv|o=ZEDb=f}3v%+nz}`KcxwlvY9} zI`iLM1ir@CU*=@RaWt)I@XbzqYBjnGP4~K#EphIq>?mh>?4Y6PyV&^Rx=0Rimh~Bo z>1KnTJw3{}7uTQk5w@d0?FG}%fcm1Byn~hiEE?rlpo>VNbJnD-7j9PgWt5)d zx|vD_8nY}N9_IThRew4;{^L`c(4XdGxaE}!$Z=lXs|U3z_9h%58zn%&4p>n+<3Gly z*+;(94q3!b0_sl6jrrnXQ`cq#X_uCnICDB+@Mp7xN zQv=!8n`xs2Qp7p5L}=0W72wr6V;SxWjht{ITGux18fRYSss&m^Z{zs zP|@I=wI93g%ie=1X*OKWQJ)^JZWEN|Vzw4oaQi9T9ZF*HiA6+rFpJ$5pl#BT@3Ebh zx27<~t!K)+1oEpUfWI1fTi%LaRTeOGbd^N#H1^fcTvCo;(NXxLN&U~xSj0Yj(m#fR zx0~m~vDo#I>kGBWLg(ePh~BIBx)T1-89+M@`4ZN>CmiaYvK8aUc(Pgb3mUzl zaYH+;+?$^higU`?(eOOaNldpoCJc9KD{3*-24-eC@2eGrQ*#c=35`Yhcn?iw;_x!= zFh2NUgZa-6|L5}&63+}DpUvTxu>G-02Slb6B7(JPp$hVbt5h2XOH-v1Oj&MCu=11r83oL>*(-~RI?iRRQBlO}=h zNHLwUi)9j@eW`FKUY~Yf?I#p*otLVJ-D}PlXn6T3AfFOFqLD&@F2Ogh+?Da4LsY=L&y*lFW+RQbZq2$vryhij>U(anBn2n>v)pU6cd=Am0Xg z;N*rzMCo4T@yRA%4I&1q6D2jEXpR18tEcoHIwOp~TF4=oB1vnYM87@5mIV?x)^uAE zbB?_(3XukXiTIBqcy4(eaG8_1TO2dCDma0+`GB5<(Y66*S@Aheqp9m#xWPL7YdA0{ zeI;ovxjw-BoK)EF$#)DGLL*p0PY+8;gn4}|^gjzge>puQprdF~HFh1Hg8i)I>_le= zW7lpX%|~>`2F!DE&tJb~D?p|2iEM0Uh=<}Z{h(bM8wS?6>!ES}%q+sLc+};wNI|=^ zwG`5k5oB)dM+nAl@<9~PHEo}QD#H&_>*m-Cp3wW zT)=g6s)8je3~u^qc`>C&Dr3n6pkk(02Qo4{4-pj4My?{{A><@-5@CH}aZkfKi1&^O z0-BKH+giTLf_H{h8N2g*ghR?pj^E2HDkT5tBYjzr!QscX_3%y?`8pZ5Ppgkx=oQ;8 zHL)QUoe9Q1%zkpg+#h!DtdLb2VUr0jIq4`dx7ADg{W|+!kMw`n59?+)3^02@?5%9z zKf-jg#xXtc=Rie_3tPiz>f7_^-A{^Ox#e9&*#*mSQYIyrEY9~&C7s&-o^F?&g!6?n z3ES%jtjzk$+XnLYcwFMGdJC3?SuE58WAwkXPaInrN&Y{NPHV zMIaI|^@00k9Fkb^WvXQL{Bl;vwAhEnP~HlNMMlt=J`8%FG+}ir_Nc6%CiQm9$&$Jg z8=G5KCH3pI-OsdTi+J^$9RRI4$vJ(T?syS*=Jd#42C`ak-U=&*gT=DqKA6Ca@qAQH!ip-8Dv`qu6v)djn0>_ zMtHCC?$=%VPd`V_88VINY;v=nqNHKLYz&DcJ%QhIatqo)B}||#g~wcn)E@Urd>P0g zg%fzQcM1az{b+PN9Z|?Zn1;=zyrahxyzX&HpnQMiyVnqi9`CR~@XW%O;&TEJlM2$4 zJEDw+FLi8}y}iH`Bq=?#g>E>qi&?bqliOWIArMl*OIM}#|6w}$Pe=OScw*fp5#1@& z$-%^r#4gR*sAxK*%_%LlNM?1OLz1Sr$@NOXXbTPX?X)gp3sGr@_#kW9dcN z?R%S6H5xuwLF&gP+IQ9y;|Jl{Ax&GMdxc9y^QG^PzPs4FM9~u%4Qw~pJ;7i~O2@?M`n8FQfW;Gf+*xqM@draBnrXrLEbZ}yU zms;6ze#pNk6lHD-Z6Xzh0r+xlsd5rxz2theYoMZu)dg^y@|fRPvMyxx<`6rfV-}(O zyuGg?rtR+43D6!ZdBjautwJy5AfBkaxT0?(vr5(XgNU1fZx~tgbTRMz06mx?Ds1K` zA3l=npg>|xt6gCHafs?w0yQCPMibDn5PhfhjSCDT$&j6g^Kchx-YiDughy=chIdtJ|9W1>8x5q0z1Crke%RO zk*2|=KQ2PAlNsu4m}um7u=4pRCiN#bJ5xSF@fB{X3C4j^o5O-HEK|BG;40{KKZ*@> zn_>yDowzCU0opTZf1(|QE>=BX9{su1IG)2I4|C(=na@ZDVD)r5$F-C zBxh~a*o)T78#9f@zPNrqy-I#B>k~AT$)0~!fDepUGTG@mTy$6N%^QC#lX$gxu8x=C zk4yG%{5KsBBRah5;EQtXiSF=CvxP&xC2hB92O5@Tw_bB&o}2>vg%;0(jabZ}I30>{ z#saV&1QxkaYe40=f}%`_{!kj`6`c0Q8MzL!Dfor%KpLlTrXEbgyvdCvliO*ZohdD! zO0X56pTU4WkkpGU-GD+TCoQb%)j?za<@va7AM9B_!Dj&5E7>GRqE+}P*I*J>9Mw{% zz7eJ5EiloQ4d^fhvNm>{hd^{*0v^qYsS-v~)C=k|GL4elw+<#;ADTa$C|y1(@L6Fn zzfk>cx(2_*-1C>x1<`dw`W5l&77#T)MFAi5NPPK`7Lj|bSK`+@AOsbw4dl-c}tRKNs_em5+wWrJ72(eghG8xlDP7}KfS>mn0B0{!($mPk6ZuK&GV$p)`Q$o=T%!i{`Fx(3#U{>K(pYK3gvDxMOZtsGWSlvj@M7eEQSqF^8rFn zBZV=KG?Ji?L4IK^lk7_!GVbls&;s-#vsz55mkF`ZDywR zw87@*MVC2<9-28UhrX^HP}!ayomR4r4c{P8UxnH}6CRlZg1xq#o`g?7c3- zdd+?whsD52IZ{~42laIoeeDRCaorY!quy`f9brM-z{L`HGt4jvb^oQaeab$4C@h~I z1ZM{9s}h=KIB32frUc4}h2TDz1gKX=(=5Z;=}mizgR8y8o7STn(sSEY`hCmrKgPn= z6XfO{!p+%zM9>!(4Dhs({V$Vniw>FA-dYq+;kTU+p;kjr{DbX~a%R{xEx|*Os!t&$ z3TD;{9d6Jk9j6axi=ow*kU0ZSm!}s-h~ro>E0-eR!A@L^q~rLV*<8O(LmM!38emK? z`GXkk6?x9hVp&G3bo`678L!AUv6PN;N6%V-c}GnuVBs~%i;TT>BM=__%7}?hB1+^} zM*Rpvvk!o5hF+mp={DeNZ}{$!dy61JM<%^(ckk8g>%beY6b!@Xi>mS_%aZ?2}I-j z%KDRQh&pL$eO_2(P{PDk`w#q&n}?(GOzp}u7A%CQa{g7jp@r*~2;VD5AAhY*1EPAf#Gq;I)Y_X-L>OouP#L&W+k0$dl;PrlwU#ueKe-j2>UJ)!^uaa1WLHWF5i%XGyx=Kkxu} zT~W%l;!-&^5I6-eobNI1VqZHZ=tA~(I>$QC|jz1S#V@$#m8q zi>9t++{LIfECX!TUBsGX_C{^%mh;L`jB!8p6Tm0yGC9L@x|O99GCVCnD#E)g3c&0E zTS5k}-4{SfTrwLpL!^}X6y@+KxvygOPf-!qsP&m1ga8(|oG08QfYT(32Mj7=%w976 z(|cOjIB&6T0Jbt5op`+`0J9^njgI1Vk7EImRw$FKPH4E@!G7sGSJq~I51R&GOX+WZ zq>z(?6jC5k~#cf)?glj#1Vb?SKLr znag6H#8%UUt-xUB@f1_3rx>mht_#N58a8-n3Z|Hbslsn>9$X4uaxy<*4)pouwl6Bx ztmJ!q4R+Mj+fSR6AAk$Bn%pf23_;&^<@&+PhGmhtzePFK-AgF|oJ4PP4R~k(31MT) z4$B0ac{h4etLq6R)2&8{yLOQ;6JqWxm6N9C2cROBdGfu)VK>E*E3uaDWzz`TA@x$a zpclUK7Q15)4UewvAiv-=7uNu13w3A@SrxgGhLX zyc0{+2nbZ2Tqm;L?wSQsI{IZ~dw~VNK^9Y^XHC)WCgN?8N-#evnY|YthgH zsJ!=W($QiewDO)=jsy$8GvYS)gcO=qhbON<`}9T2ol8c9feaDlib~?7wy>akJG87% z+7broSCQ5ka7URJJ*<3F`Ms78!>xc|^%d7ne9M5LIifp3*R-=4*Wa64Jq+L}=rZyy zYB+qOT1l9F)+;aklVJUKj^g*;bKAd#E})`|$V3^>)kRoVS=F@w$Lw^`7=@w)V&T~F za1e0kw!vO%)=E%|EZ@o}0o{mO$9^ON8behZRmtAx$?`Dsfqi3lN#nQE=kYdnkXAo= zqlMG5TViAc_1TC8Hy(LgW-E^w5IGN>h|`+ckyLTWKj368!2Ai zBN2(gDfGfgt8^ZNepc?4dp}7SF*m*eXrZn2_ zwF8XN(#oKqoK05ay@e@Pv%4=l98>RCdKzV`(*)BN(7$8u+ueI_^WspJRmeUgzs-ou z1DWxz7k;{?KZ2+yK}y4N2vWrzLni)*yQE{ZH1WcmdI&j^^WFFRZ-DZlbyto zP3{U)k(x&DCmT9sUnqLQmOKLa0F*@#T)FT~R+gsJASh+bc}dDk*Qm+Po`sr*XGQZ# ziCw0{{eiwax(~S2LRIb5Ls!}Fa_mDWaKUQzDeL400CNFtP%6ohQRP~Fi}ts$+xiIP zBxHW(to`0t|L?uabUB{Jnf`2T^C{O$ALi_XOL_dsVn3rQ&6`ipt#RQW|PfC60Nsjc&6U@wz(Bkv7^() zk(q%kNWXIc=;R(h!;)%mCp83ENT;o&9t$+b=edz-{k?_qH@#`i^7f`2FdgLf-ia#^ zJu0i5_a#iq^Pnl@caSlwW82`iYk>Gx7;D_4Hjg?>L^Gljm(Hbc3;`<9qwov`j}--u%=B;irFLf#JDw6 z>@5X_p@+(XjnyVl%snRfF^`-M7=r{EQ)#UoqBa7syE1~ol3;%Fs;=s;*KB`Yhvc-8 z8v&>!wA}H_I-5@K>@A{j=x_!nT!9}5`3Dc)#c202I0MMyA9+$yn-|zGRP~NrC^a%d z#-y$@hw{KU@2eUp^51#gWHSFbNUkUYQhkWkX%(T)HwGp0~T zLzSm3njF|}k9{m&Yb0pgz3g6L5LqI+@dmS+9df`fN}&AWHjqHX5;-!VG>KiItTBND~WK z${A1s5c4(?vO4blIvB|9Sc22hdIBKo#n!ul4TvZ6m8t#C1!25VoXB;!9&@0j}4@|LlnB#MY?~RSnm6{tpRVqGcSTkUKeFC8*_yG zenml)8Kcrs@v35>5E8v&dYQ`jvldb;@nkvEb^kp+oU3LGXx!4XwFaS~qwP~_xi9Z9 z#~1n53MZr+d3M?_Q{2!kN}t249N(xeWuP{a!`;d)fxQ5Bk7fkWEwdBl6Dp1O;CQs&>!rU^Z==~j zFzDE|z$(6Ecqz#OQ~spWkqGC{XNbyiMqLC z5s+QS$)Mfa$exT0Uaf$taan@l%wmiDV1YP6=KXNR5)o{~&+$1_=>?poaKoaH7u3h)?w@!HvV7H8vz zF8-U`@L`ermyDuo&(7_glQ2Bc5qzAem0)R*P5Ke&A|!Jvrcg=r?5JTTX-s(sVDP^|JLbjkPcaFtsv%;gv>81Cw9A@c z?E!US=lA6R4gz}h1&5?vdGXdpXtt>e9ysNA(LQiSV>t2#Q$jB5JFT$OXHW(n$_iKi zlz?mEP5|d$lig(5xP0pmiBbDgdX>H>^}_5#$eWW9xVWRlK38S?w=&g#VY>L8k2qFa zge+r2N%aVkk+-NuEc)?2s$1#hC|h?JT$||3t5kIWot=`S1`b+T;W~@0R%bFzWJ6%u z@yKGj9l(VKudW&v9psZ z4i(649XtcK6rG8gg*Jb*^cy}l1>A(|+*nV#d1Hnv6}P->rfKGw>=V&5(}!Z`uv+1e zc=#<@tv!+8lueoYMhbrD+O0Qz`c8`Y96kbu$*V)hz#C>!>yW21)h#+p8GIe<$E*=& zVhHp(0?MF;?zf4@yXr`~fm>IQ%N)@0>=s!M(Fvfr`gXQumF6vOQh8&hnY{(!oHi1T zSE?fojLbp?&-;tEP2pryEh3=VsbqvA=+UPa1bP`v{hf#}6*+Rs8Msle_Rrhj6?g1Y z4yTMA*U)>m?-Ah-WSF!f$W#5L!i|gHyx|}Mxrl0V{)O6Zp<2@BO4jTvlio>^(5LjL z4~Mp_#t44rw9^+s47@6tKu>=g@2+6K`3b>dNtt)aed&xg7OFgWD|h=l%N1@#NZvam z3EXDjInj2-=v>oN&AVgPlq`vvUsm@xF(1ltPbEz5AS$z$rl=KB&?&CV;;7|CH&R3i z3fz6_)cU|a(`dL$sAU!e2_nhcs^ttsv#=^`=3ExgU_Z|>^v44i-X zo+-J2nS(OhGw4P3Rpwz&?k6iQ=A{QH`X{2C0;&O-`1G>U*6LJWVwQ%qN>3{8$es;( zvKZR}yMe8JV6gfu4$j|&5XhGSB}V`;c+#iObt`CKbdtp@$iMx=UHf03M5AC`qKgDd zUGAt&+pxWdUL1*%9nfawR~ZKYDC=M_Le<(uIb3hYo?yqHSEw!${hF`w=DG(-?pPtY zE&3Bz^sxg@(Nt;i|YNb!`M zboBm~@pK=Wsjg0=Z`?)*$AkFsCKCx+APkouqIs@`50wGsVL)XauLPGcocz#78YO9{ z)8nbt>h1ngejumvDAJCU^@cegK*k*MK%(%@b@(vPP`E9C4RDnigkaBh+>t|%2AeT= z(f%sXdHY2!!7VTs2-^d6d-iz7>o=%-p()8%b*^$tzemSKVDFyM1HlXWArKQqQnk0G zJVf5mxrpmhK7L=Oy#Xm4K-yZ!eyYzR5bt4om|1I?gQYSdq5I?7uMuUekNv(uPIqFA z-M0!T&wJ2mxfAR{QpH+onRSMgj#Q!I*xT8i>9%Gtm3SYJ)hW7NPaSpyj($Zt{K zq3f|q%6ZgrSPdFUKk^kgbk=|a+)vCH z(E;~CVyqhsS+)G);gV!7BU?Z3`0MWsqu)7%fApSBmRvixZ}sdFL6MA1g$y}or@A3^ z<^vgM3DVriMF{6Au$=*F1`S{om-X7|_BAc^WPx=mR|M>K0G1sQ8Za>>b2bisa$#G{ zE^(-Qu%Xb$JE`h{YQtuQ^Yo8)=k0eKm!iK?>7Vqt_(9vE>YIBpnaz@ZUg`95E3M^WBu9#o$&ojVu1yH0w7x;VO;4CW zx@zoH-Kqn3S%h1WhInw&>*@&g>k;o_Kr##LxKtLAK4Yi>PYEej6eU;^VShGCkn4uQ z?xuNWJ3O=I1l_vBT%C!hE#zpoZ&U%87_%jBv;h1WdRB4F8TzRQ5Yu35ZGbGjvbtXy z804%P+X<(Qe8a0%OeEvfm7aL5uKr*4-gDbgV_O4#C35(wgph=Qg%If7UJpe zSF+pgZg=uN_Br?7vDdJBDJ@hKMODo?zaW)34d3Y9VH6+@-@eVl^f)&`4Ufexq~WLp z(iyxq(z@YomHkLCX)6V3n?n4YbxU_h{B|mn(e8Me$IM6k=MG2GZEqjv=J#`I$nxu+iB~w~1 zpLiWvP?Nw_l>5_PLE-f40r>6b&UjIsk-9#PKK*J_`8v}BneNNb%x8g<@)Ocz8Xd_> zY`H14T6`c(^qD{)6w9oDfORh77_k1#*#o)jZjw$$EPPG4X}ks>sJ#E1F#!x2AVcMK z>IZaS4}CiX&I^@e3t>B2aZa5*a4bnkCh8jyko}Oi=?wZ-Sxpm?P$qzQ5V~THgIp)o zeajQ$i*~@GXDP>|Vsql;Pemnwec_5c>N4 zYgHb=Sx~!BSVH=XA}}^h{?w$;elI!pfWam-2k>+Ed3KO4>P(|Zq2T-})GnJnebgX{ zRC|1Z?W0A|I&U7{pdxOJp#6e#i9&|qNeX>H1;RPi)tT#(hy$~JFGTPVa(Fq^8GKyF>dP2%?uZQXF4P zc+2Kp*0uqXAVgF^2~g~EWt(P5i36}8kUxKcDaZVPeRJt7KWS!anVA0DlKU7eqY6IYT)E&N_Hw5!Az<7yK{n z`RoPNiZ?zS2OwTEB0*H7B&>mR4jD{~RjJ%;JU}wbpbG=m2eRw{J&-B$3_RHJu|iv( z%C-$=zC#cswj4BG)+A!+7Pj+M^!eGhz8_xM4L!DRyNLQMMiCEf)2hPg&>dqPsbs^s zaw|%VWgs8kQ^NsUH>^J#1zm$FA*&H1JGzIxTsAxGsa1j4_8s_vv`L=Bvgiq!RQsN_ z)tv{@A927%JjYTE;mrF*bE?nh>}|{C)S&y6c7T;v%IoH#Pget&^8tT0z5*&0)fOjC zqK^mrmQ>IcgKjbTDA74ZO=uPYRC3w`D9;PR&CbG@4JrHIA@AC zH6qePs1@lCmhISG!w_b(55V(tMBHv=-FqoR=7?Zeu!-37TxRBDybSM5@?@iq#?2DD zO+;8+$_+q+M}-g*q6G7y0hNtjBRf`Ec3Qx*MZ`xEu~{h3`OilD!;kV&VIElx==u>T zTS#3xG?b3c60ApvbwOKZ+qY=&Iv&2^vTm}Xdi8AWEPaj3&TAl-fYt}%M9DA>Y%=w=HR2G zbiZ=eGkqG0bU?}1p((h(O4#;-n{V#eNUCcX8)R4DJ|6EEeX-*4G{K&} zEg_W-*#YET;~(Fgn+Ny8^t2qLgkmr`FE(>fOc1%lk!}r&kI)#9u{#dc>df#BsHm^- zEwZQSh8!b0T;AziyNWTy2lu3!u8czmfx(;)I^aeve83b4Kj-tlSr-s8qeNg0 zSs|d&K$Pq)ltk)sSswczU#agl_or{HuV`lDRdPs;%9GHO(I8|)T0tjs?{VU96Ie}h zm6Y+>gTl{f73VYakTTn>aSt1?a@=}4$aPXbN8z!P@7K^5c`}yI3+wz#LLDHmnMbXw za=Sy(vYuMUAc&CGlH!2#4+yK_)TIZrcg zSEi{YRPYJoNPzD%T&zyAvyKFPklSmx=c5s9n%6JwHIO9n7DI-4bM&FunT~21>E4a! zl>tlz2%#$Bu44_SqGT4fy0&8p#EP|L6 zri0jM8JWodSafGVnE&pNu1?uiE~Nu6Z!BPDU>i=-a%BpL+g0gm()|Ym-eDVyP?0$KhIJIr6E-fG0laXARbpn6%R`CJ(YOVb@Ihrz zu#|alaiD~zzQMv6k>RmropXkn*M!QW!t(I9?kIR-{8|hCWin)3DGC)8r;z91-zs*)qOm7%d883?W_OZr*>uw z5!tA9BTPaPG|dwScIW)~(U)yt`spnw?XlP4KL$PHe9wG1P6$!1^8V=G(OyLE`^{oi zhrgRQ{p9PH=<4O-7n=b<8N>qngZCW>H-27@3%#vWcNm^_d* zUq|(UjuPD*d{uGeI%^w#-Yo>*yI5Q<+%e+2=HF+ z7nGJ~b0G&DL%e93ysX1x9$ z*8K6V)T`Ez@2_hs!{cpGW`2ItAYtIv{!)TIouOZ!0pkU<9Pc3@cay4(?Ca}YbA`fT zXq3S55$*opuA>dq*PAf%YR`|dy{`aGg#<0c=^>@muVw7%_+Jn?`fIlt8=IE4sANiF-f>~pvWtzA}Q*FCx5}eX2Wk-U>5K+56_5fjR<@ydV_Bk zvoh!4olGz}OSry2nxhoF$))`vT^uFmSJS_%n`|S0qr5uve9STy@+QL$vjW)_(QJb< z2^sLOB$zeQHKV8=0KXv!tXI`9FW78vjzJCaqbc#m7hZlY?#&lUC%@9`KmE*-Y%{cW z^oE0MH7tu>sYIv}@cLm+e4?5#61!wYgZO|~HTUargwNCvV9&bf&Zsh#)g8XePsF1? z|5-nVCE&r_^h~pGFYx$oB|#ZE0*i>J+Z+T~@?8mUR_}tSPIvY_sVnx$`2%XraVlh8 zfBB6(@$;|y`V)I7s}QduSYans#`eWMN{t5bEclx7O;yR(9Ap&|R+IgU6M-P45}+5m zGj4~jH9W%s7psEyX?EC4)p2pyx4*WAfH-GM3vcKpmpPbV*$(&yAX9@%x@VU5ozssT z7OZ4xf$9#-c9kjx$^%J_~jVuN|?d{=T5IxooMA`r~wh_>cz&xB1 zSHQL^Sukjj+rIZz=JS`+WayMR*$zlx!;*f4y9N6OTdo>~&rD$W=yun$x;$8(;^GT( zSQ2TObrVUvw_NLCRsc4MhbBBssNf$DNl<>IrQ##8T5vfH)CtL=u-Lrjvg3-T#76nd zlUt=6EM5p;>l`)vL^}rT!I!0-zxWNV`O{JH{(!?a87jygoGIv|Nc&JgW6fNaRc`zc z?#BV@%yLL;+B-i$|DGRsHDt!z%d4_i0GtA3UhL^IHg(a{}Y}7KNrlS++3?m9=)ulB{z-KKP&SlD$9$)^Ww98*Ltyh7C>wTOM;lm9 zbA!2Hnci<47=Q8}1>0Q%10FK10|*b7wQ7d%We7#FfPg}BWI2{q1p1OL7-C||Mh+I# zAJRsDw%{j^^rRggR_$K-G#EFIE5;H`>&_Bw*5#+nHrNC}7U!jLthFg3muqpbI0$@p zNHAZ1kJhQX*gA)sEalqvQcm^X1C&ke|lY6gcV8O*09$~)Oyyaqe{TG!bJij?ZTJu%}^!L-U}2rz+uE3(v1f3Gu5Z}g#7@Hbo4 z8d9U(iT5}GdZ-P0?d>b)sOi&zia6NkPV6rL0r|x%_4~)jCJbzvCUPb31pal}q@$N9 z)OkWOLDAP^+cQwzZUOLp)ICLX{2ddSJnD5#fw1#PS9Xvt_QpPLMVG7ynyu=aGzu2f zHKBo^R=3Xd@YV>v#Z#)7z*nt`@NeuVJ@3QhVhXVlxojlj$MDhS2YoyXDuNuuXFffk zTE3iDGZl!==}LTcmlbyK!Qr|rOfn@I_D4Sxqg1vrU>!cG7Rh&f=ppoWjE$P&>zxbyIB(oBTQbl{W*$& zxY#iwd+hZsQs@;&P@yC|%^YxaG9i5~qwa6qS>L<{e|gc|66ocj*#kMnQ~?ho&*nYo ze5N!)KP&b?on!Ko2Bm^2ev$(BC-}J+l~gxA9bMhV@e&jArV(t=nw_i4P;mC zBQ7twwFZGisH{BYQ(KF)F5qBw5z)GOmu=RIvlQaA#h!#!y{F@H;JRsnJ8j#i0x;S3 zltk2&H^vcj0=yEn{pvVc$@xicKya~MQEW+Y`jDzwUN5qbdG!M6f;HIc@I0nS7)(w3 zF8x9%yOFo)wl;eq#i4FwCw{|&CmB7$dNsg;5|1ct$Chj~`b5tdSdaELt1x5@O>!PD zot#IFXR~~J$HEOIzf+iAYm6a~&bCkbE#?CRk37-Wlb(=se>RSn&()Up+U(?><+Z)0P|S3W*_j!Fpt;t z5zyjU{uuevaz;!nwqssI&@-XK@`02Meb7(F8}S_r+b8}UQW_i?u!zXl+XWPKe!ody zooB~Hf{rLMUU@})GGa_y!d95lWs<%6y4uto;E)mh+JS>M3+f5jIZr&=S`kmcWsAw# zl32YMJAg2G#ijVPcHc7dcvJUKkfwELH`$dHLHe%gsvYR|Ud$g!^mDY#`gDlbX(M*G z12%XoIBAkga9!DBR&cI!pZmgxEwh>Sz%$4vnj6zsh=AOeTUA@n$SVC}s6;X;oD~c?m-fh(MmZ`KE7MTYA zFGDbaUggTN$$c`bs&U@(b-Mw(`3@6EcFT=tmdfYeurg4n+hKY=5b3=va!1rrt3V1s zTf>hC{CcR8vO9su0Vwx@UEI!aRI{H@2^pZc;F)0y(ZwxmADx!qe z0j_-4lKBvf4#D0izHhJ!nFy$a;mNxutrtuvEx=NWf?ACSC;0Txv|4#E(#p0%2E! z>*M)(W27MK@#5qiArUCGO%U9-5(ktMz+^k@QGs6|^FDXP-c8xCWorX3Yi8Z7ycdw7 zLUCoKd+!^>T*sLGb-%2bj*J5jx8IWJOfB_nBHMiH=0^8syzT z%sIxS55TI^dz-Y$PE_iFEqCstxd;qB!_MGHIq6J2=#)t6F(Fn~Bye#UHpmq0OqXUh zaD(+0d-w#Pvw#Ih(17kv`VhL=Tck7X6l6vj#GKyis``33j#!e8TGkFF%Y&j3743~o zaE1u`5@f=-m`+RiMGn)?4C!*()R6&FSUBR**S2@n_SF`LeJo|y7D727&gS8R3$h@x zgbqA^zSN>uoDK(Qx&Vq4KE%$1Xd#eN>m70l21p$^>ZcL>lizyQrj3hT0>E@iNs9m< z8?ZtFQ%T;W$?p=?pHcuYLb;}m)>iNVEKZt|g>H|m(u4uW?xY(@ZQiBzg`pl)=Jw9( zfQWpFzz*gzG;)tfYQYl#-fgo!VjW;TB;uA7e66-7K{m&@Z1{znmprNAy2xWk=FT1M zXG`E$W)F6acx#Lw2jJ^%=uKxDeSpeZ$6oLxQd346OCbf~gA* zK0Q0^D>VHSCfoE-uZA#{6qUa3j^1VMNkw#LG}naEkeHAeI~uhFdIC?x4)J&vd{Nes z*AYm{T-oFm)PmAu@X*nyL(AEl3{ApKfjc5ubx{J;*}J{~H1rTzINWn(%n3JK1p696 z-!cJ9Se=G`0>HJZqQ&U|@9csJeXMkcku@V=CCfM6eccqFaw13X+zIf10NyT2NLqMy zdKNPS%9@W4(!uHPWL&sz$53SS976JE?^fCXZ0SmoO2K}Yp_vqTQ0%W5Q!~(65DmQV z>y_Ag*l}QiUin}GAK8GTvv9HW+V9nzmV=?dLwPtPkQJcenyA0`ntSa{QeQY#3pl9m zpk3O7q^6-^vi0#x_Z1Wt-s>o?l8Si7x_ zts#fQAdm*Unrz81GvYZGBqFZ}G%sT8335h=v6BpjuJJ-3k@YQ6iZys-JoJgJ89$cf zW_xh4mHHvbptT};KW=C8hF6fYfhJJ_F2EYv^jl#Sl)-#MdE*y10U0dV#b_FP z%KTOYn(7P>J2;00hT%+|Kg%OY6;zTmH+}Yp8V0G_!o&fORMt@VtMdy&DfY-;0oL#88FI z60DfQ$6ICzEM@}%_U}4N-pZr)h<>2ILfnp#jEv!IYSzeMCbtl@o`GNCo#ZTKci_#Ya8->Src6nd7`Ca5CkQw=eFS^IhOF)I zWZFqEFhViMAQRHgm?Z%TGeMTJEw<)LXm2DsA^l%Gq*T1-5#>fPP0C?$>8q<5FPsxL zlTx&*sbo{|aMeGrkqXS~vEfAO?X6_&Z>TUZT)uWn1(H#a}4;R!vcLKxUMVFi;A{9nE8(D|? zMDFmH*kK(^71j#Ul0^zdy2B4XB%+Yrl5W&0ci%E zImg0HP6Iy>$4^9D=pQIueLUTC!lrT=(P@^b%f44R*#BU|B7#iF zRbCPS?*Ljvht0F3I3$Vm+Jj8xof$Gib%J^ez(Qa}hDx_3+;Olw_AZSc%Ie@S_qMFB z;YhB!!oHHnf?6y8P@jI$?36V|YQ0MXTYe(wG8#kc?VBw0SI zN%0=r+R|SEY&gL#7pf5`I&%#x8l-8P-_?Ap1aeg2{?Qf*^0aW*)aa%J`Y?xR>kfOd z96l0zv3=PftrC-k0p&Sn1Pck*O@Y;_T#`tAM@x@KT>7di);aO2}{!CoiJZHLac~-UH2%GI?AZ1ogu18X`XdQ-g1fb z%u%idad;p}K{l^&4Eqmx72oZ<&)(Qa^eI-`ZO|@U99+n?T1a~oJwe6}Q5Vy_~2+N*62q=_UPkKC@r#^Z${%DcN zKhNGpwYxLi+7y$l1kbbsSe?+a zUp*mrW2)OixWju|PK)(8Qw&T;tdTnm1-+B@dZ9Q>Ld6?(8=4*0W)9N-Yhm59Q6dy~ z$l!tynH6W+LKKG@0L*CZk$C@+n|IHoS)ib$%LK{6C4GptWNVU`o^)uEMch_4oQrlD zcB!9zYR_0?t6F(xe~RqlDQC}Ufje+%*Z9YyHfF_kIgYOwLl)k|9Z)fC#ngH|aj<{Z zFJ!O(HVx2(l?ub1KM$AOypgA8@mx}zgjQ_dIQkpd-trPE@_!u4cxfzz9^}Rj<5a~& zvt0Wd9QC>Q|5}SlSs2Z~TuF*f{&f1)7yaEE<{F73W!bGV-l+KO!(n;$-AI#^=REoV6t2N{7Wi_)N`YB_6$lhv!PFn0K$A zF^!PHUGX0Gp(3PHbo}3t@ywFZL5b#^31mz3T&K49z5-3OXuxWfT4}fb?4aT+3llU7 zhE|`x^4%&l3W7a27MamE%Rde%Eyw}C@s&)aUWM{`7*#ALL^n%WEj~Zn&(DN>>3dk( zJ_MC8bh7Iroh3A2*`g(1orBDq{d-{69qh&BFFR_Xkk#qaS)glijKAMaznv8ss6XkZ zPuC81Nx0zO>m<@*M1^0T&ks82w>DRwF8-hA^xaOvIWN>NFZB<*>3wk*+V2%S zwnxLk%{HPTKN8(us1|*GBcp$QVIIkTpGdOgzca~abKj?#M7uL=@ZjM$SppR*ItFC~ z^jIL-aO`LxJA?vt;Jyj9GhC2SI%pr#3p-HSnMdHx-&Vl^n-x_|-Mu4%qZ>R9mo8yu z-`&g-CAcZ-A1|?V?q1m51s;AEXN(y9mtKVh%)*Xyb&!7N8c*L6*7;*mSMO0zvmik? zEXw8t#aiyf?ge~eybcp4n@r$xK)2I3tT3voB?JY^j6)7ZVF(MyEogB_Nx%ST1zoKC z%x#gc+glGDR2P(4L5!Ahsb98Jh}*eKdCjb&z{m>a~f3MQgcE_39u;;)&H&oqhIV2PDRPH}SCs3g*0F z#uN5#1q<0z7&OCs?MaMN&NHqJOQED#{kjChKXj_!JWOK(Wx;mYNyABHp4~e)T7uGy z2uEa^T#W!CC?zrO6m?KnJq`7N^TfXOoGQD6a%-M+21k~+X(gs?$;4M6J^ z*$GW~F8A=zLBSvqiHskLp^T)C58^kXlvhCci^zrCc`77gAnc(S=ZCurI&ji(SzOy+ z(>nRJCjTd&TG9kdrcg7a7q-W;(Shx?=~q_U7+?Y~<^AAu8)^i@-EhSoWjyv!wX{cN zIe6jO3)EZ{%7HU#SyeivcalomSK4(;b_@%3{#vBuKWXFl|HcG$fr$hNYEM14ZGW*`wNn;*O0uj@fcmC%6aBGjDjv}-^d9A-QgU^iqpyyjF?ya751 zdsBIhUZY`N({8-AE-ef1)4rQkE-!=5YJT?klzqGzF)QJDjl5@;3pT%h9xy#D+ZD3I zEEvx+*-U-*Oju`p;_EGEP6<4jIE57O7qEH!))$z69RGiGc;`yC7)eyI$2Upji{~;3 z&O^7QC6yb<&f*lWNXn&olFgpc&thqY*%!~!3)$g#?wUX`)>smaicIjIw(JWuipj;;b_$rr$XuB-Uj17Y1d){r34b2PJ-))Hdo1d+ZR zq=;{!IsRCABlV*{Hgx88-m1uMEQ0VQ3wv8wm6IA-xE;<#6NNTCsxRFcfNOmLS3q*p zx3_F)uiozLlWzOy2GIp$QXhbekE1x|Ft{mUXM<>EhX8=6ukp}esJFk&JWyDrZWcrk- zZ(Yx+q2X8#I{Gf#XD}4m9 zth##A$SEPmGrj*!4nR)=yLxR&}*(O z3_&nOig^G^1NJbeBMvwyu19P4X6GlR$qxSzyfe`8~u#4CauIsBWQ{r&J^r>V8i|r)7FLi_L$TuL;SU&L_Y}- zCRokwIjPln)PXiS4|dRSPHbZHwDeYsgY$#)BD*CZns8mN{Rt1NNOn#!Y$=YWq&FTV zW=#Y8O1v|w02C}=Jz?HK6p>6El7YWlc;fc^=lm=0to-CWLrDw=BgZ3{cN|>6C0jRT zwszn9(l@+xp;HeRl>ut+4p+3JEw~eRS$_0CNS>Rp2=`a^5@a?L^!h$p@_v%w zv0=JG%D`8HK1Jnx|BgU;bh1UmO0Ct4du!8!&fWcO_wrQV4olNI2QlV|*rb5=<0{&3Fv|M`rC`N|{nl^0I!Z}Sy&LCJiT z-at&Gs*{uf#s%DP6^8wo*)Uz~hMiCuS8;}OIeNBwfbfCe=yLpbCrNLwI$H?}Hes)Z z_5?MQwr&-Gmc%XQE6k}&lUpcx{ptGud%po9m0Une?(BA?BzU_LD=c$)0I#UNiBwPJl*Jj(HVXY-d;?n!RjGnqV|e=df{rzuF8DIQ3*_C2d0gQ1B}QGycMFVok* z-G=?2OWcCYu}}j1a;}2IHeO}l-oA>wa@q&E5q~~c9pQclD(=+W3k(+8d9{7hk14>t z+41SP9K2BA2O1a;Ptd#SP^9Hv2%{_}H?qy&;LVmY1K75SpcIm`-FCCb$`DX?a=)*Z zPtnkPkj9B60AN`wbyz+gg_f)V=%0=FvKBC+zJ1332$@Lma-?VZr!o~14r62{0 zuvRXc5*>5>@aHw)B$c{yUzAsvC(Ugg&?nV7?UrlzJ7eHmW9k2JVp8gS!Z&bt-Q_R07dR^|ES<`rQ)5}N3}cK9!ma}1!h`Oddv>Y**EX>vJmVZm362uuNu_3 zrJ9>3zXEGf-j6UoKgOUzURM7Cn*W>Uy1p2V@)V&&j3HgdZqW-n_;>;PF|mhnPuaX7 zfyzTu5Zq0ifxt9C{=&fVS)>RDxM9XJk_PC&AQ=Q5?s?f?3ew4e_fb0+(=}l|NH={Fn?qq&hxyr(_sU4-v0MM z|Lvpyj-$`+vH#v8Kc7Y_R%L2Gt%bJmVr};rsWW3B5(58{KTGp%dW|SmidJK9_J%?^ z(UYG01B$O7%hmT*=h{ROYRM(SjC{Xh8x9FxskVsJ8r*T%X`~)F7peYYSKgXNou=M+ zyYdK64F{Zb{K*2A%9_yA_qwjJLC1ecCcU#s`OZxjB-lpMfQ}9RLkK1Y{8*ESUM*qa z$7f`he$lSwHqQG)Mhl2CCRlrJhzBVk-V7>N67{vE>-1I2?ZZu3sMLIL!p7Kr6c^reeYaB zJ#^DM4~RFmHlx2Xx44QNY$q4aOZ>7;|LU^@He*lPYjFzMtA&uk)eZ8f_g449q;x{P3%Im76UcfkJ1=AA=9;^xlJcpu--7ls~4} zc{`K-6a(&p4dpU4XfW(EGr*m+k%eq|&;wUXpIyTvTp9rUWRZ6UUij8wfaRSIr?cdF z?;vw1REjI(#on4EwjqA~Aw+#|s`p=oji#2Tua@h_yCBG|Ch1424}t zANU0<1tMy){jKF%yrjEKII*&9i_T?J1aws$6!6p~lENZ&e%Oki8y>inSez5kdK(UldG`|LRXWH&Cf&u+P28|a_4 zN1i?AK%A%ozvE)`h!Y4hvZb%g?&rHkKDq4?gI^+@G-)pGF zL6+n<3#MK5SeWY{lM`OON#buvc0!*j)gm57rUqDOJAfEDqOKRbuD?rYaL3{U)k=AG!hG9Z)IuJe-rG zs%_vYeC-|idel*XGSVZmp_)494OICUpG(mw_VTZg$3LIDzx89O5McjLbqnve)8}_bCKhxs_ z6dbqaWGSw=1-JiB67PLZ>lS|HsX$NG3o_UFP*88G;Hi6L&*?s0V>`@J)PMw8+05(% zR)U#3tVAkts<1T9U0uHlZDTnzYzbHQZ*|jGuaOj53N7h{W#$5}u=#j~tjqlkB@cIn zRNj%f<;|e1dDk9Cs92eR&PZ9bA&W1Pr zrlZ5&4mn$4B-?7K%z&RYSAQS3xt4Qih69$!lzU_yz3S94)w$opzymedKEz$H6K@dn z1+^8`>$mh_Mxp+#)DY1d3tAd-Qw&FZKW0M3=ycW7U4%@saHm+G77_a5^~gMB^16R2 z%;m2Ak8Z58W0jla&qwv8z)ySP0}Z(xKpIgjWDRQy+hXQ4=iy%_#N+@xV? zPU-bI>41oy>3zBAl0H9#hFF--tGU2t{RidGCC{`DnROCu*|F7ytS!7YY?KLRGtKM^ zQup6`*D0>*b;~~P&2iM~x}{fxsY3EiR<9xkFIviYD|4lfmUa$O&$hh=^8JQ}nx+YU z-}@7t><+PdftM($ftXAXol>%Kr00$aWN&;Uw9R3mDb_D^;y*mBKOOFEBzH7cXxGfQ zG$bl^#a@<^j>Pj2FE+)|!)?37Ms0;z99^O zZx~YT4vizE)QPBw_O)D2i$!C((4nBD15OS-_$-CSMeOQL!t+9l${1_$m9J~i?2aG# zV8|EA!maB4t|el8|MvW?*Vlv}IVzJ#c#bmc>KfM86G()-cEb4pOmtMXVSfV~E!_|F z3`(BlR*&4=Z{N=HklCUj>1`A)5G*YyEs(Q1WB-DKd9}o5c5)IvfF|~W=~;+~%Doko z?MvC28ZKK)m(}2XcZpj=({#P3O{|H)C_&_jhDMMY7b6z4&uuN|>LRCR!FJ>BU0*f< zF7~3E1T|RR19GO40=0I!u^q5COh#s=#nM0gd)WI=cg7EY$JhZpi$Z{j8yX$( zdS%u{AC*wEWY`7ZG(Pp8adr9#G;!KX~iQ%&1bv)obgSc6-v zS*$&7ebTpw;*emm#*(|-xZfL?>mv~`!Pnfvdoago%Jy_L+ot8HNuH@IR)`wIYzBz- z&0BDi*&U0B`Y1Dd>A2g$;RbEU!}g;STTI@|pjwVLepAI;qU=zR8FR_qAX`{g*t0J!1FqU1aKZAiGT%6l+1nF{bYL7y=mDx)kks|f@BUG zV6fw&^X6|>lToI*$)A9JyrD;&ihxy1jv|@tMBOvBfcG!WhO`;%JRsId}P2|8;fK1 zoneHk`#M{dUMoXnsqQ#v)Q)LsRL^&vIy=kM8N{d%WF8hW{t!N~JrvD8p8A%ukC+n* zb<$D^cNM#rMN7@f?1ghsK2lXO!Ow18(?+5Hob`n7)_W#zaa#|{Zhm>=lC5@yY97|z zYJ|cmUk$Gp&0o8{9TWz9;C7hsm6Mb1E2n13x}0(UHzC8)0?ss(z_BW(a{?cDytqS(Up=cN4kx0_~=l0CVcFj~n*F)OZp= z4Ufho+cL>CUk)oiCe#<&Q@U0!^Vw3AO<+ND!1&I@LPS|ptK#*oo-<+F3qyjPgYT@b z)g@D@_7uM=o#7(-!Xk>*un2#vBB`auO#Y*z_;Xj}QjkoJ+k1vM z6t{)(`re%W=fL`3dcal!(+(p)v{jQ!KmStM5`)vBoY?V>Uepx*dQ7NE>5RLFa`_zFm%i zzHQ1q=2XQ>f{G5;pGBHE)I6A=>D>VyTU^ldRuHeK2|bElbUfX&I5KUTj}It7dWVs7 zE$aqVYKV3}suc4|QeTgx6nJbq5vF|YF?qb$JacQfkmBWRf_y!vexwal?xaekOMoad zYYTgnaF!1S&p|4n14S)7r;#DvY~-#pZBh40+XJuOeanEfRoXzxoQFGm8(W1C!bw2n`E~|$ zza3x;Aye^yzLT<~)4|s?Xz>6wN=H1C$#wv|Y7BRhdX+Tif-ny5%0`=0w4&(1*o3=R zzF6|kt(ss3_&Ey@kXuDF~%2rMOCfwLz-z(A zA{V!Ru&fmJ8%PgJ{t@(%X9k)kuj zV4F4(&Q7^<7^P(}RJN0mW88yOS3%1x=E%_DOF(jFsf(|1#t^>J z<#NJ@9%azm$>1GNLki)29_rsn{{+4Z=b9E$Q+XXRx#WZ##ZMv{h1&OrX%_+fD9-Vy zyfjBBMuwPXP-c9Cs_b}OAW;?9pYz#Cz6M%soB4>{sD13UMpeL;Pez3`pwoq^ak&q~ zG_z)l_sRwW0Y{;RlX!wWqv1dm_8IjsC8t}pcRUyg5LcFhOdHKEH?>0o`>~Tq!$FUl z*L80}Q4mK=9Y=;ch-qp?@U$7-_T-z?VBp>7i7}W_W{!I+U@>r_EwN6iXm~AY;92+Hr_=g>({CfCSrVJtNt8FDZu&Ss&%{4T zRMZuI!y=7r9#>`AOPWwUP*w<(>P|*0Ue>c-k_l?S98)KPnj6x507W>cKFnKcI!4oB zpFNX79Jy21?dy|FQW{Q0Hz`@T$nZ(8jvk}V3kF;x*Yw#Zy$$o`L?4K-ySe9YB5hmx z2NlZns83CU(7GP184~md$4sB}3nm`X5ZS(`GDll&?2)%8MDwcs?X3%}IPcNmX-@1g zg3uf|nCb*fx#cHA>(i(F=t1piL3B$PxW%#IM~XdulLghDgTlO63IkEmT55hz0yti&XlR*Ku z^_(5$ju1ibUaXn$&ajuyT~id|RcNE^Fq|X&;i02r7QzJ+U7TQGXI~8zvdlGhlQ^Ps zmsxXN&7`OU&*}k7%d!@M%`huczJ0Ej*ht|WXM2^Id%|0^#1_7*N{&YtFLwnEGhCo0 zYJP_SuE2YI7d~HIb1!XdXoiWyRC;>}ICjW=oE{LyE>gf?DPi;M;+U-X;gwgBHTS3f zeXr|4x8T(?CWB>U2br^?ks8Tq&!32UAuLu|{DKcEX27Cwa=@Oq^}ZMMXRoeuvjW!$ zsH54zgU!$>CjZ%``5cMkzJQ(1ai(V8byw3{ z)CDOK@QmP){=dd6_|Imu^>cKi|A)OdTUS&~(?xHIzBv>XQRxOE0%x=e3IYNGSHIui zh?sN4%*x7IRk?E4-cM%69AOL<5&q_D-sa*&NOBP7L9H6fscI5W_B{)>?qj^YnHS7A z)YWo;-3l~j7?w>jDsr8*^;atn>c9*LPw{2$`fksjp&N6|^z(H;NB_;s#*l^A z%xCyt)w>s~(@ggSnz9Pz%_}{C*Oa2d%(os>16&Sv96I=zmFm$x2@rNk=cL^yn3&4( z1@gh*g%&jIK4`D10{#v&qcHggot03-uUi;_8MF27(3?`1J=@jOSzc!G2z2@eO6#Vp z1)1)u3s|B!B-7RNLS;^`)*+Q{WAV9) z8PiF1CY8zc6=6#4=cYU$etD#bI=b5WQiQ*&_W$3zjQ{+1eS*6!CqsyQ2jqqc#r7vKWnLqhJdv-#^7{WE`GPZ%wTXg#eQSrVG?;=|GGaYM9Mv zIah`o5aA%ZeGHc4aWW_5M}~vHJy0nRZx^#p()A!uyBOe*GO|Et6gqgQO&6&k0YR$0 zAaE%iBY3Sy>}$9*gQKaD(I$WQ5I7}wwO=>a4|BKSt9vORM@3=cIVut z_Ky?=JJCDNJ$#{3xfl+?eslj%y7QmQOT6V?tX0R`Nhc#-7+CXc;=%1x@b;4~0%@Hl zRlvBcG?q zBH$stt7X@>$Jh%QFPel*bRCA6sX-GAZ;ipg-_Gn)U|ra;wzJ&ehN=G0PpW;%WvPa- z`CETx3Q}DtrhBtphFj=2yhzecrBG^mF|d1WkI`{2AP8d$EPyu?kmIxSaCfJ6V8sW6 zV#*nl=syEM{5FFB*ZqTLAo+dg841Foft;RY(?>ONv^9&m__WolqqqdCExUq)YT3RFS+N~%dfD|c7y;fE(dPQT_>3@x6KHK zK6Ejv+_9)`yQeQOj+V?B246I)1s1t?#5z-Xm87PEVW`ZeJ)>sHf|+-Ac)3Ebpxi1u ze<$vd759*l5c5Xhx^4+JRvHIO`FI3yrt`vK>!J*QbV5TkWT*o8mG6MBVNQ(hNa)UYYQ;0f~FEfaW4 z8xU(XHI16M#Va3SRZD!*yvgaq)uy5P8xlGd`q)jfvZx_-U9Uxp_Yt7fh^!%hzoN0t zBH0<|$jC;)1g;Q#SQ{^q-=r{K~uW4Eb+6vIl zOM%YrfXR;SdRxQ;S9#+}Cr117`VdKQf)#pQVb<4!1;ItQnMe0r3 zz=V5O(Vl@qU=r^(MKG}VE{Yz!#8iXZJNd@V-J-41R?h_uAsYDsFEh=EuYR%FGw4m~ z=vl)Fv?-~WjNaQ|5O>cEqMPvp?_b2e_w%rUx9yLfq!3te_w%rUxELXSHL)R zUTQtTmg($?pfJHCK;8s3IRa}}9x}-*lEfwK#infSca7Lf^-)Doi$}Ra3Ze==#q!f+ z6AEMwB|)HYNZy1$johABM-s>XcAWbAJ07bwiDdusK19pEzo+?v??cp~rzW0-TLDBr zqDj#od;VgljKJo-hp1EqU-W!iU5t~pRCoqQ0rim{1vPmynK^kRWwQG%zl9?!lIrRp z+ph3+z9)~H1hcNDsLd(*K$QHb&LG!}W9m=IJ}371X!!+F(`B5tu)eaaY8C#yp4`9U zR&TuId1!Z|h32 zH-e^U!Crd}%Nb0v)P2zH#cqx-$KHH7T&@y;Q zHU&feHDt{GY$!Tm@SUfiiib^B?1ivtcvK5ee8AxYrbb&UsKO?Lml+ zXk72&(nCBDQa}kT61y}7=GwKWx3G`|Y>jqs#W(OJ!$;!ZbW%g2fjpQ~W=URfLGVDh z1}koXTNfMvR@RHk%N;6%@vfQXHiPk`0kRLAsW>i0Ul{hOAlR`!U}H#w(Z?RQNW~IC z?PT$!Q)h26mn}3!#XJMlT%)hem!zA}=>sg0Zec8*CMcG`A1M2~6oP;LDA|;9#=!yC zKDUw&R)A`D(Gdu4f+!0_1qKEkTy;YV7m3s+TidkWR?WrSbpiS2l;nrDUt$5+{D_JP z)=si|SGHq?W}2g%SsksQzW@pH?jGb`4gJ`o5oYyizXlQ_e|@sMa?G_ zy=C=OOUAYNzd=njryG5Y?PRkfh?FSZ@V$+g~}T1uE^=KU;Hkl1szynGulPTcoe zL;I^LI(|Cwy#w)G)MW_d_*lKLWdK8P+K`od3;d2c2X9@5tfy#;7MX#%2i+^XOSzI5 zMx(hj8R_=j?rst3(%xp`;d#{`&e2miU)(#4KmY&EF!bk)?EA zRqpSj2x~J7*LWw$DO^Eyvp+`P#^^um;rjG_y-j)+&N(|>0`tyYSa9c8;* z(|~yuW_NKke=h;xYulur#R2P^`U@W53|;X(EXAJk>uYnZFUbZ7Y5w9s4RP@( zIccOM!NgWZ3Ni=ojhx$CDdAa}lJ(y7{F$uYAOqty!SP?$N!`#eBSrm}_GdIA<@HxP z5=b+Zn=L;?(?@;Hc^p?zB=IG9jh^XjP?dkLI==?4(!!7?K{xg_6GL?`i-Jdg8R>;v zFJ$VR*B3j#d2+N!89(-rE;jwD(woBYy{% zxUxelj!HfVId{msW#>=R-CGQhFr1hyab8kCP`hLpd2a!~IY@3arFE7tEh@jT8y22f zDO*t^aiPZEukE$+y28KcXNie@``R^VA-tL4fWyLA2SC<%z_?doBJ$yXSoV1{DA>Gd zc18PrlEDszVJiTNXj0L&@88x%a8~4m65U=P7s`R7iY*Og-;So{U;*7G=_5%%>kcYy z)Ig1(^M}?)gFM|@D5q0kW`Y%&xbT5LpWSs=007#swKd>iZe-7SJ=|z=Z~%C%@>-LB$|$<3;9*VQ~C z3%nq+7ba%dv}d~nD7Msu&W!3A;$%M*{@ZHGvlr`_Q*OKEMmQ;_P_^NGKXb`3HqlqQ zwcKg2bdyADj+4KI4v@RF=?Z@C$4%dFI^1OCUKt%WqI@AkRefkrg$*hX*4#K>?4U~QX;*@Qr@tgS z-L$NXK#x0K4}HXSbU_<2fA;qxoqp~g3`d#6wD{X;7Z#3@GVNlq&ziZ4MsQKEMJSs# zMTb?<^9G$Hfazg~TF%Dr8Us7Cif%;!WBd746f{i0L#SY%Q{y^2bA@?So?X*Al>Vm; zbL{H-ghP@zt!c5Bs=KU(fNPguVk2GdRJ;i3`@DB|W8q$oI1=PspVKyLwNiY3c7;x4 zYvrt%y07kDmxh1+HY6=`njTc_+&Q`xwftFqF#U#>Zcc%wUaIglxh9ijygkLR#j1s! z_@P?W+2PmXg@My$djiRFp1at_ImQ)sw?oqSs+aG%WFGPwUqfS_E?Q>)+8AN8Tgcqo zzV%$6I~k;PAiiz8D4YB4WVwrFfyS}8H;zs*{uKP-?L)cb(n{U|kr)U){GuE``Y^!5 zxXArsU95dNaiY<)B%WsH_{*6#t>lhOp2{nXo+;#dw9t)&gbkpfK)M6Tr>cj&WS7JY zx;7?r6h(uq%tan;UJ7v64VN{Tcj`#dVrmk$X?c5mo8q|K(`&RRW6jP|2gxmmwO}Uu z>#Gp*zG6xj)}Xk`OhypChRoIYMW~)YR(^&JP9mIeNAY*;jCR8+Uyec2vV$26?r5dH zMg@iKZ6=wrx}289<=U>QM@J?&mgdj|qaVo1e2%pp$1TT0Vbr_cheI~5A=GEZXXGke zOD$$~Ja%^g3jnGOm~xRfDI#Eirm%83f5xm9P%qH&NP!}?SO%I5I5TO5A1$uQ#15FF z_%}yZ2J-MtGSu$%y{rJ_ND|7okjB$HamDAvm<>x`4={r=f2C*3`mymzWJ#8Yts#EW zse6S?$gm0K%$Y5sAUmhBjIc>vZ~izv?Us%g5jtKl*K@%@!>k5sE|DuKz+i>0~_Op-grUOumyHz^kVxlE>_ zo|Dqh3&EUHnr#I~KL?j})m%AU$Bmzw*kf@Ylj(px0R z+M)pS)<88xHVq9jb%tO)WXwo1EuEyFP_2{yTf(G5B*h}F^L6F}sEXqsFUI;o*lAPY@5Q`OW6TDro@pe zZ@)@NaYt1XMrfgu7jaclo%-K$ZI9n+g;fv-H8J zOCb~_dRw6J$9@ai2uW6~%P+)rkO2))2!0@lcXr>fvIzGX&*Po}Ue*h2NaZ`;yAVTL z1!@NAm_r;9kFh|3IYJiX18mdHIT9a!3NZ&LiDcIuOS{Erfw9|zT{wN}R_e3vk@VoL z)6=1Lcj*XD`I%xnNiHu3p4=&TLcAUEi@avmcS;qWW5&41SazwiYhwU$- zeVLx{;Q)^?WFaVL^SKVs=&etQVC-7E@rcu2c9!&r-p0$#<@E<`r@Y>`ZPiE zkwkVe!lR_4jWuL63eaIugloZR4wy>C=s3Kk7+~(58-NRdSC8YWNiI2r(GoU-B-;ck;x)13j^ceZ$&PbDpl z%qc8+iDHZameCL@+=_C8_*rBh>9#C8OS7;Jo8C?Zpn_>|!y`6I__+W3T5ZXt2Y+kBRouPS+wPr!c&Zg?E8bC{Q6y=bZRlRP z1v|I392Kx;(EM$eMHxm~*i}~WNjIV{_+X$Ritv@kdYpw>TB@@FTpk0%aM8|yknU(p zpq48>ZZid#U3dA;=A@RnE$8%O#}rcDz&g>hC_cO%4M>X}^@Xt@StwMv<8G5Mk}+u? zD1~onFi@IC@9Kx2iN9~<)AQq@k^+})=6k62z^FV|JMi(d^%(B-U>0!%u&YzV|0xuD z`k4Ew7RQ5E#SE!6NT*;)m^AqX_kb0Tb92q}4A+`q;N;x2M*&I(o_0HTu6cSz-3_pi zB1NUeA#A_waokaq=C%ESCRxKm7h@myxbZkpc~xzVcRl0@Sdl(3Wh14zkZc`n!O3J& z${y&Vh2;UX!fCfEM6Y6MU*%zNkiUszUW4~ULT0)yVx6|2%@I}cPNx8X%(B)N8$5R? zBf5i0r7=VT%qk`q^k$ZQ5<;hu z((rT48l*xAa8(D@%zW~}rZ|G*Wgpo5DC}^Te%&iqb5u~UfHrmCd@BR!AD9bt;DCEN zjW^a4_6T>8@@e4J9_#Bt$tDtJ+1?z>6(6;@8wRxqes@`mQ4dSXCvF~QxlHt3-A$EV zIBODRNPfD!u%w_OEOz8&`j|bn4I@4vyoNoH{s^y)Bo%WveMWF;BmjocmEoQt*df}c zlL`B_9-+#Xg!#))BH0Un>M8)KA3b?4d#R;nNC#N=#-XUpkqoCQi)!npYvdOiD8K%f zse&9&qUQlt>EZ@~3W$2|^Cr9&;}z_5FyqwZ%m}#+Wh#3Owt&FjqY1?0D$-R$ZlWTK z03*xqJD$$VBcD|5(!7$QgfyF{#V+?0>xaC73ot~C2G56_8S+O+CV1{>pvn)JUbL9! zLhpTXvm;9<)PX@rIj2~Yk)1bLUO8I?xyk{EH*h$QA%kI{em%3A5Me+%HC4#yGC-3X zgWTJ2mH>O;%PrXVqXQXaDTxBsK!)61eo4EiQ;|ujB8WgN$$Gf+UNK{K&AcuFE2?}# z1~E{zGRgErkCn(aUwR*eZwPbV0T;>ui=@7#FQ$_}Qml|CfhDXQdt}8=RO|Q0ve&!0VjFk1W|n zDS5?^n1556aO0vkU|gcCW?X_N#4jBKYA5p6Wm&{S^mwxm^yb`Ee(8&6CxOlfsUP$f z!(o(GlG+mH>LE6*cVAmt!`O6RnlIIT}^ zAK52Z(#sUC6bV(&l86dSJo5O5!jqNA^9}HLf-Z@gH(Nz+;oMoVFW|25Y?z*Q4RPVP zax|?Cb1@3J^sV8dgT;sVeD2aSwe%b+K!Q)}{50be#&#rkGS#VBZW-SKK(41~q@Wjh z4h!=son4mUx_5omJ;#-@ddf2%cD zGXe>Uz$pEnA7ll1;(u_h*x$bpIUB|E{01)BaQ4Q3Z4p)>*ksIYvWGoQ&O0x1f>=e4 zO*G85UvlO_7f9cA zP%c3q7rR3ix}$IHlhPCK3_O!FeJgiJf%9zl#6nV*S`>9VOneM$8OcNmq-_Zeg`^O@ z^s`aV9m$!nM_+WrFL4eni%Z)*<_vCyow#(piCQ=G;rZ5NBC@AEE9%wF#vMh)C6JX26n1DYmZ+y9} znGy6Z&5I2TB{@gEI6^FZp!Ds#>vWLv{>^;&{X6 zcqGe0<)VT@=F1CmU@q6xPYFItAh$um4gOv}j82G5Oj|+Yf?=+SH$A*FH$0)Wm(|sC zkhhpp$~u#Etcb&~K+BoMk?|(@FA~)^zgSOYHK=A&UxT6r$?~5egVn~oM(Nqmk-=All1bv!mlGpC5Vp18N?4w~SMtQi2SG79c z^vjWBYwd~rMR_D-gd8BgZP1q^HUO1@s^~zLfcF!Pe0EUN0F5@ekOs0yJHBf_S@x63 zmA-Tt@4jfxw1+DdmUJsgI&9~1vYuUj1^^%>?g=uRsU89jPzjy~c2@1{q-Ji1Q0_oH zQoBO;j!RYu2c-QM9e&DfifFAYUMSvtj33+Sejx%%*lzBsL7|W1d!kL)ycGt13^M3P ze44S>%+U!LHv={0!%blkjX>gc`)<(pqa(W9@)znHs+yUQ+C;5gmHtQdW1Elg1*)k= zj@~$BmE?Z8Z#OQKL)X)j`)!Ig)B|`u+%xqBvsN3Q4l)%`i7B?&8^>g8|CLm z)JB@51U4D~EfC|M_`}q@e4E*gX&{|1#D}YyF~SMhQf3nllsEzpef9hK(i90wh>-&c z)5obcXP)>U5p#JO!bc-QO>sey6CaL!1S#m~8?Eg5i$p_T7!gQNeh80thB6&+21G*d z2oV+lx~oUBgR!7#vgc^Pid1(v)_Ee~2L5b{&cd6pZ75EFaJ=_P3ee_XOxoQ@VLF~} zNbAV;0cBm_&&3k-fjsDGMLVeKz@nll_St)j-5EMWAndUZyU!}|y@2X@s5+#0FgZgP z#yeKm!{$dkY5KGNTRhqR$MIw>JDl}KC#9PX^=^;_D=VNqVDC4@YXgrCH^z0ipw0tx zK*DH!i=C5!Nqpv;7yB%x2hMf~IZ7VmPv%_MjAf8Oc*i75FDksm**paA2VDXi)|fTo{Q zbxSk&eAmJX-0L|N$SA!&QU`REB#?{FePx}DM!Vb@x!Q%MmeDK|{~&F@qBnNYJ6!X{1@ADle`dAxTlkITRY<{&$^!OqQ%B zC5QJXlKGT|ptFNt{8>HPqnZg1fVyzE6`4t%RyPlZ-R?T40gnS3%bG9N5d)}GF0Brt zww5fkxQfjNK^_L78ZVQ+puh)NaiYBSY*~=8Q1^IGnrlC5>52kDH-OX}q74kbNrnfI zCI-ZY3VL-%TnPO;>Z48!1rPSe$X0DAa<6xV?Q$_qi*-DY@WNDm&bGT|fjcE+qB8gH zC5Zd&J1NLq1IdAK+BTjc+HF%8Of2CvA5#Ib{fol&#nC)|6^@&6qwY-C0Wo>&f%_`x zsqZ)(M6BEN^mBY{HlWHGv1dfFg|C8Z*g@I*hgMy9U3-A8k-KwBW^jmLbXGq*c(2~B zkT=4|JedCSK1$j6gZRz*Qq?gBj1Bfv-h)OCwYb>AiKex9zl!=z^FzS&n!)vv&1>SW z%|tku>_OZXJ!XK99g;re0#8WCp+R>?0C5*?4i3P)2-UxRqE3PjMs?R+{cPYU*i)20 zsv-|(D{^H0)5uQI3SW^zRcR+ti46;}0OkLL2@2VRY$QH7;`@7GsTsX7dX6qYq#3dr zSPp2HuQq$CJdp^nL-D%vBSy$FBxn}Ieq&DElYtFF4+@$3&V*QW1_3D7gJ*;5rq(M8 zZ|8t6tjNmRF0PSp&hyXuZemaQvp0)T-gB}=tB@8YpgypQ#!iYKYC20%X-xWHLJmcL zASveT^_|9vEbuc{=Ornl0g^kWUl!?=Y`5>S-SX8vB^x1My0b0gBNi0VV4T@v<&~|9 zX$R_wA0i4(g99oXVg^O&1{Kj3C7yK{F6Km?RwdxH+Sln7m&DePj;%SBniTvRN{s+2V>9JMAx$;l~o36 z3B>gqnw}${Z8c=p+gM<{eVc4m)KCY&NqWFn_=pkwx&pJ{=B;xZE(i%HyD?HHeal40alJoA- z^iiOwE{VTXQ$ag!Bn4MQ^-*k4TJqzpl`i)|W(|#ehC%ytSmOmZrV~&~d_Rx*?>)VuMjoLVZHZ56+HUx}Xb-UmaKO;ngc6BgGd9P}7bS98E+-xNp4CM=J&a zH=EMsk>#NeUtn^K5-;g9<$f6mUdAIYW~K{EgRq2Q0-r4y3+h({!E8AhVv2hV8QY3I zzJ_|ZIkAZ%Hxud5bv)|OWjIq4<*aNdex-#FmlK@6lQX76GlSUo_log^v~|K-KSG3WPW&FpVf9wNUqr0wPlPEHr`lOX&H& z0@|vXwufjbwku?VFoz_$$%7+Z0Cn1Q5PS;nlVeN;!=qx2z=sq+g-f-Q(JzUR@P6WYL30t?`$*R2xI@m6!`rA$E=)o=$-#+ z@NfKRB#8=<>Bm$6gYW#Q{-D=N@DoovD z{ZJ6&?1P7@A{WJa3B@1MoGk}35Hv^HaR3*09_pf)B(i-hg)|7G z-_9*Zu8SulP)0*f5tv^p3|jY5ts&B!ACRzzf;$u@x4jKUGWvEE#UmqO&;XvHc<5!s zVV;bk6Z^Ag|DT4~@74Jgzzl(`|347g*mwyP_0bFv7>*`e{s6XrUV7z9qOBLVt0p_N zAVY>IRBw1;G*^ZU)Uvjv;iGqa#oHEAz^F<9=8R}hMNel%T>u>ltq@XNnDJlIKdA4%rg(Z~ zXov$X%*MnD(FUI3ny-08+hKoB=)vl#%tG195!m?Kd09u8=Q2nA(VgSeCMzViRQv$_ zn;+u&OZ09+kC=7$;CE&}dT8*YBM&5?tu@L~J11&%Gl5eJ%tUUo@`3s~X+4*;QU_;(S!ZQV_)`9 zn=eb|jCbsH?qM-|krvvZ%4C=yX#B87Rglzlv{<9a0yLdAe}GaC%aoSTKgF*TprxMU z`OMmLO}(EBTm&F9a1T6afWqPi2Z#dsX*pr_2x>AD+JG@($;RgJ-t~+QZK;( zji#isSr75$1Wg&Cxoi3Kp+SQRO*tF+=LJ@ld^ecz4?pVC2XzYo-T|#wYiV{pckR=R z+CU3a(1BEqNg;o=R`mKy+VR?@PXu~|qkQUF?5!kE9(~(2ai{k%%gM8AOUSx! ziBy@RHFZ88jXy`+Mgqa7h27ATAiQ8cfmo{L&O+W+P9e|eFy_x?nFJMHqkyR;<=KG5 zxQ&DxE$oy8Kyx6yEx1bQ?b~#SUJ8Ea`&-yHi?1wBFT`(xd_)R_68F%&FD{#{xmPCr zjs@qO6uE4Zxb4gQk>75>Yq76ZEeO!Ntmmr~<*U?&pL6@Lum3zOu`#-aF7Km9Fj@Y* z$NY6Y=#_*)`8x>x+U(5o@^Udk(DD8eU`?A(zvjnPl`2CT(c-!lW#*XM zOJ1#iYL5RX;SWgGEgFs(#sX=YEqsm44lN;_@qDuWQY~8`A5Lf65ZMA+q$+jfU94|N z=9Hj!xQ5Ifm!~+gY+-u?LIv8Ep9(T^(}!o0>{F>-(|B>k^F| z*7KmyS{w$nc?2881*|B4jwo_ick5vx*-7pK9gk?d-t^@5dD&#qN4Wt6c zP0uHEY{-y$Y$=x$Fw<3DURmke7&>JUcb+o>En2h?nFQ);IWBNx^&K@e#Lw1Df`e^} z^fbXC2T%JOYezWC3L{8@2@~Ib;W68igY|(i*JZIhnm+ zW}>E^_g|UVk%IWM8<}Tft;CW|16EeasG=2dc*S^740uI!dvlxqI9OtmNn|Lsxt5ZW z;Gysb3-x5Pv-FSh@2(A7xqMuA%RKB;@UA$xRHP;;+d|+r-fF}y0W*OBM&7X-(@wxrxS}`vx1=2wXz0H#iEg#-j4VU8?Ze1vUp@OnL3#oK~vMi`5Pw#go6(m@(3m7!?taj41(zZK?ap6hkkK-1da8zf=TIyba z<@Zen#xl@KM*9&bt$5tEvDbsie75nRj)99Xuq(VI)SP!hR<2)i$ys*DfIAukF+|ya z?Av63p`*Z-X%VpxCO|o0aJ?;BAehK8C>~Q232b-w@D&$S?O_!RYGNX+E6EJC&?Y$o z#8O1)gUO$*6%43oYWpcX=5r=qK zpu&PHoIwZG8aOgfbAE(CmcO^?Uq=guW>PPY@PW=ebL7C4d_jq?lvL0*&72FB!zFBt zY4_p)4WyhqiM^+*8*8gkuYdFvdH1#}>n zLPv&kM!N(GGPT6q71mzitnC>#MRQozgTH@5Xv;?vTCGCdW3Zs0 zx5aY2*f)_`LPXmqy!g(;g%J@}p^o3N&_(%i^S8w$h4K~f*gVH#_1#zZb=37J+DtMgy$8ONh=V7k;3?S2Hk-Y zId`(Vmhhl|@G4eZUDkW}d$~LG_}~YP@2_0ar+gkx@lwDmVkvgA3j<1IQdxxSr<%`q zI=#(Osy8!G$UGpSXUD!4WQkjVrW(JpgK1OCDbCES8B;794Y3^uV$?4GKQ{)AB)JS; z1IL|yq5OV47_PX_&}EK%sU};+1oBW_XoU{wjteB&)_)F80$&f$-8u`|8nyQoD$%TB zvJb&dp?H6iEw-pg7ne_98F{_5+4P#xA0Q3vnpp{?!1OOH(!gDS)IU!aGD}^GhPuxi z2!{$m_*`2wRrf&_=pHayX%-e5ai*o-ScQl6&uW2i}0tm9_ zxgoZh+mdO@YEO&Al!vLmGWVYK);>F?3Q-{PJBrfLBj9f{1(w@AYFkC^W9EB-a6 zl;7irG~u;!l$Tq6>cH~g8juug5$|4Y@+XyHj~@PRFu{J0w}N(r04?%?yqgyMluLY*^NaBlZ4ypF%mot-iN zHcMCCk3Q8QpEjtG?+qqJf{ZzX#rDZW)5}bXfMzXREok=w8Wc&tMuh_<#J%vTP&~+o zg^zPe!uFq~eFM~;@6X=9|KkzBBJ}$&{x>~~uulE?jaXaB)O>pBd)S5o%d7WEQXL_$ z9TZ3%hx)Tj{HqEDtCe*Dpm)c@Bre>+@rZ^BecMAVnFjLQ73{5WhxiN-aa=0ImIJgM zc&U%Ged-49#^Kh)$hq$5{PkMamU#@c@{*-*;FV3`MYbilVDf4nljJXlM&*?YUoRWW z%o}csp_h8wd^@C2un_FMT*Ys+#MKcFf7sRSk{Q5EO6_L^=e|P)*gs-Og|W10q0anp z;DnFjGFoVeZqyBTr51}R=m+$l5!>(#)*%IyH29(EsFYs?y4}^HQ}SkVhB;8zx4EgK z^2#v~{Vz)U^~nmAFy@6^*I*K)&`;Sb_b=Y7-~)sP86q#zq4=Znb{{_3-Z$Rb{JW0M z@12&P$fYR$TXB$Yo!uXM8~OQdvlRXgdg$9Se7oEq-{R_@lkn%!0E3AREsU!Hk^-l8 zn}?6e_U;U>&=~Xr@ta0d;l2JE^D9jXtPuz=Q79Ys7cOlSLBJo8B+RUp;Kotjlsr)= zA_k#B_S>mj1}C;`_dcdWaU`M8M%1+7$#Fw0G$lR`WOOnYY*MwIX3iS9ZIKN;C4*9& zSE4iftA31ki$2c4mF6a*3x%dX^@nvTVG~q0a!#km;(KG@O8wdwRvjxTYmYYweUHX@;mTg#~=;)q#Ma1 z7$`Dq=f8?rJ=zPykp!{O$?E>F5u$zb(b@fF$9dde@j1Vaq#V$6c-v}463ZG6ST-3S zpINAGKqLLWE&U4Vwr{R%czbJw8nz(?Z?6kr<;F}Ge_YkL_a#`4c2u0-sjuVhE&DTG zs7c44`&Qla4HKKsVGGQprNN<20!Rk6bsVc=e~pAcuj}f2FS`%^T+0Jn38>`qEhL6& z(zo!aeST|mzk~HRQ0%Gyt;xOmmRIcbhY;UFD*h>I)kYb#9rWWW8LMQ=rEJ!1M^;Do zq-n*dCUgElBC7b^wJ6@vPE_EFK>EG|P?jGar`0xX!K)%J-B@(NEfh4a9iEYW6>6uy zGiV`+kNKl901g4Lt_KRfeRLI$9Pt!ITT3fT=^ZVue41rrl+!5&a8Dx00)jMsUW!OA zg(+gnh`oac;73&sIis6V_fTFC(U#viL07@&!IF*ldfX^feeSYW$m1FKpSG@kg5=mB z{6td!P?ZTJW99U-!7Z&wi2IKenZDi5m4@=Uq>^mvQ%LR>EJW;D-^Cau$t9A?s35@myP~&`~0WKYim938`j-}@z;-!}e09U;9tK;FF1_J#w&5RY%$0tYeKW_mWXd2$KIZ62d zaq9EJ$wN-PK6+RG5YOn~Fx#9w4Y1- zrl|d7osSYLn4nh9`tJ+;<|np&wfcuk&t`u({vPfc5X<|sRIXfpRL2r$S_0k*3w{S9 z>x6Ro!zbP~mpi@T-jg+(n@R+)wYA?QnHL)J6>9l;s4-GC|6AV{H= zIkB<-JO+6L>+K&hDb00-8=w~TSDV7v_`%T@16~i1ojAt96Aua2^jFYZA!1m?gFX&l zLBa!%Eem66?V;Fwg-H+lN4>;mIG`3gdEVHVDKNP zNglnw)p5|>ztwyAv&{VMD}Iw-Sebuqbp42uH{Z+4-RbmgcK)Txv(ii`YS`iKL4~k* zg_S6&B02S^Z@#*$W!y+`y8%dkoIxQ%b#a`IkU72iri~$^Cx9hgD1cQ&QmqaEWA*8^ zu|XwYuOl|Y)qztzYA^L79#3WQ0LQ!EwNdQOLN68c_Us3M=fUC#QY^`zU(!^jwAF&D zTp+L+@%LpW_1#j6namr}e*A$>+&57AsWN^YkP1qB7rHhD@HG?`hk3NNLYAB3#zXa< zy~;S9ps9d-g^e;<%8&S-b=Z0<0PN?)c0;flESLqu{x2j`b({=I7F!aNzOdjozlK_Y&FKhC~;DHi3if?=3I=?tfdm?^^V0 zTo}Ixg&Y0w*VW|f1lIeXYjd!C9~r+I4~s%g?RzNHsZs;?0X|cQT`kge>_r_aaX@JS594_ zfe>Q`xA}Bk!fUc6SJ6Dem-{~q+`+9P+KAuMwf_o+_@BF;gLCj-+de@&ryY>jb#sQ_ zH8=va1DMqP0qVfGS#((SL4K~o9ocYRn)p-K+$mPiz&6gJE-FM07Y|Yu*=d!OuID*E zuo}xpzsyKy??QD}171js-Ut9}E+YZk_Y{KDjmp=TmviOs+(YQVRjjKjE2AHxAajhmsz$k)aI02%XC{t6&AzeTt#iB=sgM*{-kx(oH&1}o(&e^$7 zOGD4xxNyX;O=9^&f+kD}<^=XoVA6ZXqi0M=$Q?J(CHvVZBcFX5FFe4q7Gim|_HYXR zmfdcnG_2LBk3H<$#Th+ka;qn!Td@2I{W&E#JfMg-DhqD%_QCz$^j{dzh6BK z5+R2BB@O(z&}Y{HUS^0T3USMz36_tDO;Jgs0iY^#0ksJ%e$y0Ddlu6!>}ijrhPy15 z`15Bk-9G**c3HW9l~`Rh{(6-DRtgC6fJIJLzlk<~M^^s)3V&cfiSp84#Cm>UKaIa+ zk?a1T|JfkF{fy@RxFXmvE`n*L#Z-X_D#}1xp`y}~B@oi6Vzb&NAzTaLzJd`pLs3w3 ze2lF&lh_(Dp1J{3EY0#86*I7Y;gNJ5Li6q$ z>~%UmQuSUCOIq%11eD~iLVpH-(WFrENWQpBOW}X?L}Gs+S(gPNu(BDi%+J_Rw%o_X zuohF?4+NVF@=98(5f5noEI=`3#d`xlx}cW<<0APPigje+Q}gW>&1_2CfI1=odR1j; zu6#s@u14qf_9)a3BGRkaAX`Fh9Ha;htlk(VxALWnZd-4%!NBXg7hcoay6EWzHm?tu zod@beZ-)Ak>hIQwCJn~n-iK$DR+r1q%l;kp`Gn#SKI=ynXm73%y!-~Y_{U|RxAL<= zVhzb(5{FfC7R0MdzIBEFoF}LbPMW^aZ6i>c6`I+3thuJ9COF zw5bV-K802dyE@oV+h(zBb(NkG7(cWjdC)fwx8j&~L&3;E4WdvB#4sR^Iqz}@H-_NT zpy%C-MatnHv7J|6=#ejz>Q;=9=z7P@Ffv01jjv;%z6w`b6jl*229;F=Y5E*@Tk1@a zMFaG6M>EkxQ^4WI%KWrvqo_pQG17yJd|Jp<&$~;j|Cil4SX;^e`^oE9)Cd|eXmQG ze_dl&zxuec~oOf#KgbVKP#z*vQ(1srri z%>z0#SK{vJmo>w&qbzSl7wxKJBT|}1 z{xS%xP!Y%;?|@xrdL#}?8kmQJkP3~a3<57iDk!X;9@rz^nK3fh9pG+zelC**eQz;u z`3&Y8VPu14QZ>_W-sInx9qlDQh(ht+giJ~M3U{sp z{82CHh6I2>%0SiFl~`g2fv|A}6!Okk?3;P}{El-wo5&_=nL>E4*q^QN;luXW;| znmOX&HW>0}h`N&q!Ge|-*~Fnb1M(N3<{#NLM@w$_7)Ss*5=NA2` z5BUi>Ps2|>($AQ5zx%#e{%1`*a$I{3uv?QVPgWh0v>Vp|w1!YVz!%xISk{1Z8ei#s z1v6nXuOg_spmzrt6BGhb#=kVt;R+XAyl`bY5i_K-=q#SYXCm)^jA@lB4yx#N8tOeR z9kkM!j*_VB`vny2EVIQXB z;F9E;wq+Fap;N0mQ{8xwc!9hKI6Zjr(SO)G3qrkPM`DLf7o}HA8l)ruT958_^QV|vHlNPmIg5AO0f z((c%EgCy%Q=Wi}8lu}L0G~vHlg7fp~Hm7zoDvVYv>SDAal<6cthQ%%f;iQ$gta$%q zDvNm;9Pm-Q6hsFItZ61slC9$nl4GE-Tuex&KtU6HGMpd&eE9JKY_yL7QT?c@JyQ^D z=+7B~8~gwF?k1ucPgtIr*{O9j_Ao?An-o${*uL{yzuF=nhi1=7WG~>W0Teq%kkpPw zRbP9!esT!N8N>jy9%+6`TA(|0_;b{0I+F>9KovX80ASz-ej!8Xguv~zDJ9<|X5y$C z;K`)-Que;|sJx2Z)9}mK>YXj5mY_^GPR#v-GI~axL1|}c7YbtG9~uaMY?Ib@sLTW6 zjg2_&-I5h0;-FY)gQxEEZ&^x00g728*)Pli&;CI9*k4*sCy@|t6M8%l)|I36!9y%t zcI&F8(tadAK+OTAcM3M38mm>yUr;w@s>!jF-s$bSuA>WDHfdMkCrFaeV1WGdJR{mn zM1z6+cuW)XgWS%Dj%SB(~7U0>^stmI-5c=ZeRQWjR#)cg0{`^;2KQa*XeNQ zE-9*ZcPF2^JD>&&gbd3OyGb0Ak$^AY3T;>6I^0Pj=x*@^p%$>SA?0VTHV^~g+2uvN|j z9QEiUYEl*fmXC2maApB+0vnuF2w5CUWCkw0%VdcemlEyWGKxexUf>oEYrs z{&94D9lqNB17tAf%0r6MGeKQP?mQu-&T%;2MeHI9bv(gNuZV7X&|hW!-!nw}-^WTS zNzS!1z(o3U+T9Zr`7)ymvdb$NKbd$ZZwH@hZ0aRqrw{x;00f;fHsJ9DrokbKU0SDLpeQ*62^e^}nFh*AsZ0a$`vRl!psb^yP{VbO;*BnW+P984pt18@bb zB5XB;bkzTyV~hL$@!%%iTGS5qZ8pR=o`bOUZXb}Ng7DdlXB0UQ1cCRzDbBz{s#6#$ zzuMc!-YkRjNpMJW9f`}$2n16a0QUm;m#p-hxI>xwHC+KOVZ%oqmC#Sr$;tqCHlfzM zt|T6k{97KE0O#bcHxD8FNdig3xR(3}#lW2lKrhdq0ciQb#Xyb`M>E?F z=sZC$`xY}$kk#?RSM(NW?UVV_i&(MbU&0+DTCC@;@t>w0GVNH zBH4doPkT{qlE!}TNE(baooKKUVhlQg-viZ_|G;aY+8=TiY1$%yfOFIxYlTGA5Y9&z zuMs|ApbR2+JR4xOZN4CbC}@(_Q4L(e+xppoGK%j95g>Nr;yD_VE#e0C%;AyQf;zA; z9A}F0S(3nSVN2*A-pfx3{5aLEiBE7@G%T+j*cWU_lW8Ui#sWxWt8HHZ zw1n=r`hXj`hhgHpB>JDyF#xeZ**dCHtc4Wl)6o23rucR6z3;)Vb~yMz2BYD?SP$=} zc>pOVhcWS@0Ema3+kZqOJ8_Tk z4g2*T@P6m5JswUp;NW+_(aI^pbR{}_!f05&fS?7L#Jx5I7=<7~`c$<=00fC;m0#QB zVvHA;Z>u51&Oo`29kacmJlvzD!xsz#nV z3d$XY9MPT&wC4bl$sVO1kWfWXnQET+Y5~C#pJ2j(p=cR&2XMu|6l0<~{J;By_is_m z1*U@^T?6sVhhaB;cJ$6PAzNQ>w+$i&KZVhta0>-`$Ih)#zeo3j+-W7N4iwX`GGy)Y zKyL@26NC%>m91t{`VC+eDE9_-EPrmq*613m+Y%9zl72k^ek}XPK>z>Qo`+=CzClZ=LUkGu_3l{EGI5W3)}S z+dlFqFa$aFS|j~SHCcXdhJc4y;wu0AE%f~EUWg>ZeZ%&j{o!_gaX?rfgW-fNxDF-C z$ra-cTL!}456qUNH+^l)+r5gTzNXs|bH&0EN(|2u5myZgY0ZB4_>|`s##tbL9vAjX z|B2M_`^Ep{U&GDkBp?w)IkS3zD0S`adW8&r*&BmN>ch!%M2K947(wotb+pAf?*SK< z>zb!82#`C|o_YjEedHW~b^T3n^}AQIdVlQwBQ)H-*r+{VaS<{!vFqQ)`rmzVPubEL z0dhga-&m$6oYO&q<#=9zc!B)_2zqp|CySx^%WG6q3kG3($>I}K z{2-|xXGfws^I;8)(`A?x05NoQydf$UAcukgd;W{Jpt=8g2O0W3Iy~2>$>EhAVUd7O z+1zs1+07Uv_cK|Z-A>oihEy?X`uQ?m|bz|o}p*skd zjzh}zg(!Tiign6x)(a&k(U&GgrUS~V{rvZbnc?^B{Ga@TUJ53n z0kEC8xL!lpBA1>~mo>v5muT%@C<$NuTR*h&Sd6TFWJCAHeZN{n^`W0O-#^XKwD1?f zR3WdKZ|P9}TxR&cm|s`R>{gV&Ue2ukA|4NNbJYLbS^WJ9auoymmw&r+w1Rsci;~s# z|M1RVx2>sL`tve2GBeA)>1@9dsW96wk#GJ#+^<=hA~2Mn`;_+a9ETe@6_g#lv+k$Q z{qU}T-O;sUlV+q@>R)JiE^kBTKcj?vJ9of2rsZ-#)+(*8@M{|N<@a9l0YNH*fBTR- zR}4NEb<~r&AnoM0x>nk{?eH1kIJigdhpxS6|LWqmjbEMl-RAFG{$)*56a%k49{%a} zf9#H+*W6#=@MQIV?FoiBO3CLxHpGe%{vu(#@h`A?x7k zKy^FN?f-vA{7pFiIgOy#{9gnXmdxU>EwNfNfBimZf9?vJ{fqi_=byWRUj4K{}fON-3^bq;@>*MB4o{XH9C`u;iHZ8wx{0gqX2w=GD-mo`)xaPoiAgJ>LD zoZ3GqN4DIC3wivnl|YCE`5b;fQxx~>vr0%ap&sN*l}z~eLj$_~^XQr-Uy{$?M}L3# zug{UM{(kU>;GBQaavFE{1Co(`b&-6|n)HuPf6^?_9xkG&JpVrRC*i_3G*3~ALY_xI zUEm~wwScnzboXbm$$a7hKKwg!t}d&i;Wqta!~bks{o9P^?@fm8+hv9jB&kM z{k7)TBrxRX&#(Ra>j12&^pVpQ;@Bn4gU90BZu;z zp3wjJgZ97up<=o9Uu(qF{r>ZdD*U~LDaf9`zx!{u@W20=VhPm1A8c(+{p!*0WBkAG zsrf~&{*ZdK2|Qz$_3+$sH3WD$?(kbdep7zSLS!!fIA~Bj$k%@`uzxPT{b#^XeE{w*s1V%h&FP5%gg|Dj6M z8qyHh`JX!pCcnQJ7*WWC{vjX<9QOau)j#DULi)*_zqj3g0wwB~w)e;WfnY$E^4rlr z_Q*f3)&E+}>D#yeSoH|#T7Qx1rewK((Jh*z{vx%r{?%Hu{9nXxMXvt2*8e$W;a{rU zAIpt(9boJt-T%LLwP}v|i~n_C|6XnIu>Z|h`&ak>SnZ*Unm%tk7*YT4UU7zF|AHOo zI}88ktT+kCBkTIdivKqY-IvjmC{^&T5UuTRj%`PAR=aI~8*VLO>2W&@?E^Q|zpoN?_g5!Ss%nV-g_eFk z!tF#%c*^Z0?+-JzHHvTagySDe?F(8xkkCHMSEP`biDPTqDC8IAB5%$YB#$dhg^%NA z)|qD@lE}wG(rV2EnsT$J)0p|B;)Oz}gvrbBsGa^;Hn>{9SP>{9V0 zr9sD6y8Cd{tz7R1U@}@)5}7Gjmnq)Nnb`3%CC7>*0?GQ!0mPW9)`zRuqF|&=?~~`X zz5)diPpr7}HA>I=BX-q%4kTsArIWo&(H`|J!iW3@*0|tp*X!CwgL2rM`6$+We> zn3TlaDf{y_+Bd=csl6P?(zq)u8*PM1K_<}%V?`Vt%o~4kszx(%iPR295t~xlt7^Fx z?(>EQF7EkqrI=lFDD8+|ggrt_;g1uBEQ-Th4)^xEO`2-Wzcu30I+P|N_iZD%uC9&0 zvnO~9>q&l<#>9zB{dR9dZQwB@soLT z7^U7wYs;L~8t$lcE7JB0L(pLSmNoBzdN<>4yt(YhE)85N5Y#os^wY_xCT&R!(qXtSZDxLVg4ob$)9bLY+s3LI^Y2$J*Sp<9Uk^Pkymn=;WGexmh%&v6Oc4(s|d{5~aLe zO**}b0OM<1$*B|%?~)Ec$449IwltN{Q>>pch^#VK$y}=oMRN&=0y(56Bkxy&GixJX z*)4fWutINYwLwX#YR|4Nb9!p_8_0}dl^Tz7T+M2AvD`7+-;0YJHIy$u~A z&R$&)?FO|wv-~`4FDGWWsK9x?B#VYn!vpDmgh9 z?`Sv;o1GVoG?m1AYZXVw<3b()va=R5rDt~CB#8RVed;v893{bCVS`hr2qK^`!z$Mt zt=zM%k{QPkI5Xl3nhM@PV1DJ^F)edZWp@(@o2X!JnRaA~Ri3`h!8&;xmoB}9^r%fP zZ)#6r3v?U;1`wKrLR#%=IxOUq#mnWzGkL~h4nySci%0r-O{FxIu~9lEoowj52lJ92 zS#fncb+wQq()t%9!uV!sFze0c@Oc1Y-?)7U9h_v+yG{H^=53~h0ii8%6^Q4?$L_H$ zr$?6YqIz?a275WV6!*&v1gVN0HkNbzemCPV=vuL0 z5qrWp7~Jcsd5GOt2pu`#{}11mb+7MmYF{|j z3=fs%clBG}LOCzqRW3#J9viOgkqQ-v(`~Mkbee9sQ~PxMQYTI>ZI0W*8>=a$D+dLo zDa6}5MH|s2d*ozj8j zew;&&jFv}qAyGQl2Rn3}fhE~(Y=o8^tJb>dO167|GkgF;Kc4#SDqeRTPhN8~c0nN% zUn)fiN{5w4pb6n()ahotUouhxC~<3kRAqA*4O1FB#V#4wD+OP0~p>X@iJ(7cLwS`L$;i~zOO>(G9!daIyMYk=D2u}vf<@3kLn@h z_N92QQ4Hv%V-9ag!;@%*0Ns^0*i$i1bs66ION9$+_zoPG?cI1bZfA(<@{^9%j8C=) ztR;iwlm}NC*2Ze1z57$tnFBPSV{ZMWeye!g~`$fTm_8m z%~^NM%P}n8r7ZB7f9+Ab_svL;V!KUHpf=f);a*PU&a!l8ZA*F6BvRM2xjsoqPjt@8 zanl%G$sDK0U2G4dpZMHVswsx@5cEg&q=bZsF!=mBEM5m3bm6l{B$fu)arS9PT6_np zs%CJjjUJGVL~htTKs5GzM`xknu=}Y&WkEMP_4Vj25F6(<+;{mGX zfcomUas%A3cd#$%bCA!nBcV3(8?i;70ZAtw?!G-v8V}$sDwwA%?@*PYDLeYjUn5O^ zO{;2lo0`_m{#$$Lbm^tjR6cA58MMqaYc3 z(K74EjZYaiY$C@ylyv8(`o0L4Nr76zT-J9UL1ePWUM5+pQfYVGU}e1^7OTNmH69IB zgd6YP)~;jmrs4Lb5RgkH|B9Fr>E80esSuz0P3JvQwU^bE;-Qp$zhO4?)7ZT}E88SZ zaQjotRGY?A>s|Wtj-}6FmdLd`+4D$!vasX4>SWJY@zOVJPMDGskZfmu$!#yc3V|T0 zwUX>lVN&^J>1Q%=4E`sP|4FP+q$ z#zJ~&luYfpLbWpNp?t(z$eWtcn7G%Qjby%d2>?Cvbs*f;w?Fh^q^$3A7>tGa(pI6Z z46GF2o)cpFVo^FB@c5Z2K$DA{V0p4<;OG$9ZEG4tq{Y+p?3x z?a4AxxMh8ZA#raIt68sCrgBCd2Nde z(1*%~&F(XjoN_KeYxog!H>MO$a9ovx{{C~(H{-^nc`mu%#+j^+D7csYn^1!f2lXsW z$7|+B)%z05`vKQ7K%?3Nq#el@KW`L0vgs$v*N6l0#^|W%j=y=;X2?!0?{?dCsM&Yl zzUb|4>yfSqiYb=azT@3hXvM5Z7(>j~^;V47xGy{$@crsOoNeK@6~QN`fH4=$tiH$p zDwDkok=;S*BV*DQ)V$zx^Ku(i$kz6U7AGp^Zu8#RIX0-e&U^O_?b%ZbO}*{aqiFp!r)^?b$S?%iS*=m~5ud6Yp9({Wj+>Kf2QDQ)$s_I-xXKBpq(_xS zcb4|lrK^iAur;=}@5LqLse#BW_=zuB4TZT1fRarEMUdxx7_se1D9=F@x%oAWC zlnMuy1`hu?yFQ8q@~EL|o-Wyp`p{`jHU&4z@q5}s0aGljv zj>0VEo+BNG2urBd4XIfhBB`%JcTvQkhwyOicgq)3T;&zzeo`NhCvP3He%-TYks@?%B&5$4oMA8thOwmGUgC-E38O6zaql&z(&R={*vk(x)Hm$`V8*WDxRj&z1B$ z9COO`u9cZ4w|V-L1jrm-oUqIDAV=;d?i?2ym95W@b6~SHO~3sq|76$6dIH@++SBwa z6vf4O%IC-Qtu6c9039$3=)3w@3$KZOv+X%h(-lADKwmN506?J^09#SXuzRFr?W-sG zs}>Bx16v|rATF6Y_~CUTnq$WaYZ#nvvnA!4t*_TlAl*vJe!HH-{K$_ON&KuOzo#NUUE$mVJ#;3CsSZ#?NVJVkq(c0IFWQS(j!#rQU`L?= z4h17cab1Z5PN2NKpdcImC9+!%z4Ef^H|qu;R?IkE*H`Q;{eD6KB@fDu5}+l{C)(6G zmvm~6T9K(gZGNti$M8dRB(%7qK9wD&EDsy(rX*c@$YqG8m!S zuzF}Vuo4=i`?94|W-3QnyXi_c>g7)6X^(2^0ME@t7=c-lJCkm&&0>u0eiV&~Uqb6O zLyt*B>trM0>LGTrXZqT$%i2_kopSS{BmH)X0}u5%ViQfW_niL3{9xsxC{JenOg-c} z>BnznWz&1rIFY)H{R+k8^|=S~#<;xdH$?H5uqjxFumv=O+)HMCW(Y@~$Se-jN#Gw^ zhpeA!RwM|rxLC&+ihOt2;#Cg(_}V0dfr>6JW+r{>Rl`IM9JPFHI8l9sFtI8M#p?8XU`3M(M5Ps9GQF649mvbiEGPYfX} zLbugVVMZNR1#OrB#cK{c*;7j1v7N}%!{A(2ADk5#H7|cr>2GQHGj~D{p8TXMT@GDY zDjKo_`P*qC=_66HIhFUIj;$;9ldN8Q<*F14qyR^gPNzI~4P?B*2lGDcwscOmk0k4B z;p!%fc$n6Ky0UI$jBj$>#OnT3S!KkQIb+LQwwO97+vxP^un}plL%k{R2;6>-A01I2 z-%&@_;CjDj9lt_VwL8DJ`GP2}p0Z6Z6H|pVYD!zPWRd;4z76HR&=PJy4a!3~iu++n zxhYD_rjQCFi13Ehl1~@=W;bu_9p`SB_7+3d$?lz%_I$7gBGkP^>7qWh$BmdDonarV zt-P_Txtn0JH=b;AVIH>}@}cKRWGBf*{K(0oPf&Ttd*3M|A%Bg!oxC2GD|KMQK++?T z>)ZMW!CwDFkdpK@aG~h%*h_ZpiZVdIbYA(s>*g=fdKl>| z)EY^$7TYWLNr42k)fOZk+<3?;&xCOoL zA$v;)LTF;;qy%_S22smC zj>_i!{5tj>IZb3yq;0j~LiAOBJd4+NhZrC0eK!iP*vCOTeIfT;vgNUVy<7HU z@oUsNsSCI#Hia8nP!z=~2 zGeW~&=fLARU*Gxq5es^NHppl>J<WJ?=3wZ;ygDa^1yz^hU+`)?wCeb? z_oOWgHDI?j$`5M8Qcb9M&Sva>Dz(f`5ok_2)SuJOdATYm69|&Fk*r5hZ&U?t&n&$v z>+ZWlU(ykl1~T1?4JxMZKa>{(2ZYA=;z%syi$PB0!z{alj!;V;&BGcNr>|~Sqy1bkZa`PZ^#$E$xoL)UD9Y3}D!A^L$vJa1)K~fWCJI)P8 z_KmpJ4prdSPv=B-&t?-$>04xtP(CbQ>1B^X_pmKUTnbV*uXpTFFPE3FKG~ce&+-<+ zi%e;TV{T^ldi6n$m`^L6_L~*i#mw;%3mhoaQK|=vff?|XGz_Zn4D?g%t+I(8vNbD( zEa$n7UE78;h~MsfvcHtK{TMw8G*Obr+}F7}juM61%%F5-6}-=R{R1SFS0ilvR{aOx zQNyLbUF=h`a+-x6JL<_CM(I`GSw&hr^k3L8z5#UDq-E`BTnix<6~*#EJTN>Q6_ zMIs?&dy5z{W|X`ib2mz#v_J{wSGdhTsW0kcKuIM7t5kDlr+q)ZIl^n@wiOZ2kihHV z$IPltTcBGoOV$Il4@3T}d4`j25sc-8`bC@Ak5Q7F%2}kX!##!`kHCXlRwp9ZrqTM& zNx^ZZV(Y$g%ugrI*NDkrQ(~cx0FDYJ4&~IOGmc+9SYMjAyH^&o!@fWr#7GoZYZUe4 zHU3?Btw^J^8b&1Uf!naJMDGBw5pq_ozS|Cb7_^SAjKaM-paQK!H|uAR-T2(e$U`>a znR6LF)KrWp!ND%CeX&SFI0Sl4aC{;ejQo}VaF>sni|hMoumlOEM5p|WF+7WDutwbk zni>B@kVi>JQtF2&A&bUQ48e?h<>G-g(huRl_(sClD?&nm=L56a)b;>tc(x}pKPf9= z=jvyCo8MF`eL5kr1KoEFDsPx+FWX3n;G-bm!%N`?ms!>%wbXVT**Q5dleppLKD>NqBHdXT=Nz3Htj|xz%k1GpYp2GQpk%YRF=!{Ks5K;lq$<3kw>@p z91lbv{Dq3QP{7+gT|d;{V^b^F?Cy{|vfA^iPb?@ z0Ck57+8g1i?ujIgAHE_Z1@YD;U1LcA&DVp7XL2I_5(I@W*KuPX6SYRwiNShfj7xXs z;Dp-Kv_70swj%LmvaHxb6Ao+M-iu-?zM*?4h|oGOXRS8YP4mft7pU8U)|X| zqC)KJw?}(Vw#I90#LLk=8c}(Pg3B{+sOA+QTJ1@H8bZRC(==0ctnIL1`;i|N5HRRm z%Zib=vQjN5`b;))vAyV<=knZBcc)sZRyZCWr}!-sTZ6oYjZLU5kAI$&eiuG@4i{PB zx@-U!xdpf^=4=Rmq^xT~6-O)ec#l2ttgkW0mznOLCFb~b%wL54n&xqTk)9dsoqj~8 zmhSWO>M3*O&e$DyMD2F>ITGIr>*-HoZ*D(nz{Z54oFTKG!`QL>k$R}(ojRn$YxW67}DWAJ%DDi_>6Ev&$}sLCZ?cD^>hR->afC(+8*^?%h~PULt}kKZ&Y z0$A>8ENMU5&cVDxGzc0ZR)ox-)^(vh^df2FM|BMW7RdcRze;_4AQmD=iS4UEgOmv_ z&tC~$Go`Z?zi*IvU?9Nf5pZq$Eu)^c9W8o}1tjww6u+I6^k)U3Utrk82%%4Y6%W1F znxz{9ujCtVwq7wr_AjytcK^%%YsY?dcluFz++_7+3Pl&zD+E2=tO8X<0^vmSUD2RA zWpw0}G9!o~bxQ2GXRLp~n(0u~bh%`7_;eB^6eD74#S_4wTG8Y|A#z!X-! ztY43{T7xhUdLsKQ;?(Fw6IUpN8ILf%KWB1U;U$5^3;ErXd?2c?HS};rw5Jry3ckExL1iK}19Q%OofT-*ZspZxAuM`%h!Yu?^h zFCMePMcz|=fS%pb>J{$K?3vh8^jDFLL=~c{MG(uk1RM-u6o~3Jwf+r_TKCF0tJ@JSeh`>v)1`ccIVHu?-5-vlw3f_@VEV zn(H13Rl?71qg;nn4PE+`2HBJzA@!esP7iZTwx(m1&`~$L)kiO_kReoat0LTTd-lIn z^OMwwp41;A$8Okqjbclbv5Wr+&3s4pruojSNQ8@r4R*sE$l303wnKovC|dyoMW^J~ zAebg_vps2-2A`U_F6Xao-Rf$2-|;d~Z*TcZOR0yJfZ%*q8#4FTQVFc$q1NFy3S$3s zx$z{Eml5t*dJSYGL(8Q$p&oi-qX(OP{>B?ecJ`E%CDP#P{;281D@{K&dqw+1EX|%ryk##*RzSqi3mKq;n#L|TqW_cJ#2kXJjWeRrcuq6|+B-G995oY_;0;>tz{J=FZin#+ogmhT~tJ}=* zkub;M*)vbgIh~4RnO9ndXv*+qf8-E0&i9LjcPG@yK6tzWkDO+;Ic`8gkdDpfy{9c?bzH|W4wzl=LopB+9Ngd2oAzT= zxU(&@LIeXDGdOMpFDcXlv6)1-QPjuo5kn!dk5u=yK5s6iOAG=1=FE#V@m%SPfoPm* zoFEqsTDzfdhD79ElvY8gs3_lhTSL`R92;GvdwJt^NB)GWT>7g^FDu$-DVpDFKn1cL zHs^Es-EL3%53Mw`X5@h~2nQ8CCiC9)*iqXY-|9oVGcdSap4=O(;WULtS@u+ey%FO) zbF9L>jDZ|{LNtjuYpnAz35)CVeI{{{EQx*6wS@34nATPeN}G%3(oA{axn>8mq~hZ?0)mE3OFx$OD`D>Qcv3vqy5@?o>xb z<;nxVmgid8ndu`T#zOhM75mfM-{fJLN5S8Oli7!S9CBy#&WWgyw0&Ht+?gizJa;F% z&&LV1GGo?L$A@>X6wUC#v(Xj&99Jn%r}f>TdkE5teA*)PGWzrgO}OxBxi?d-a%i3f zp8CLWsG1RWkvS)?NOzyp0R~#EupA%gBw5o(WVYj&>!=M&b)OLgma0H2pNb)@_~eV7J+53)nWu2UU1 zN7!(n-vf7#@XK!iWYWPxsMS1LX3C2d82&&`7ELwiL_ixV+Fmb-BjB9{>t4xl)F;dEAW-+ zwYTS6dO*>Et;{NSW>+Hq3HIUs%6TbOn7F@qBh5e^$guLlM7ZuKhKTv+S#X9O=lF+j zlnpG;@{O_gJWY;vZaY*=6`*p`m^A_r=yuPrn)z&ZVeIWpefl-|j(Zovt_yE-2MvxP z(>UVcYpRQ@Jq|ckNOW&r=1o~SkksUF6a=KqgCate%*(k{N6}0-&@d1ymKKlh0@qIA z0O(*@j_g6L`)PVLg$j4Q?Bz>!C7aWUC-vy@SF6@@rPw^Qce4gg^7Zx(O5(>t4}^`> zmha`lhdcuaMd@I8#qvTFhy{0}1Yo#_&t4w4=lTN9>g`>LYCc>bRz~ohCce<$F64rC zYw~=YNcK&UZing-1#kN@t8au;;UzxKdo!s8u)w-z{#5ry85j}%0uNra!XGVr{v^di zAq6qz+0!j0F=IhF&*gn{-z+_By-D7G^+(McQ?<$)aI%zrY@EIF{#3@#Y`7Lm+xXT; zIdh22elC^e??Q+Eun+0FIjsur(T_)cZN)F=y}RNIzVwLPOeWmm8BJHbE2`6$gs6$k z_0mD^R}k5+kR$E|-mM?o1(BIAx>c`wvnD%AJqeI*waV~QvTc?=^E4i{o7B}~W$ZMb zUpd%X^Q6|(B`5YmZ*3jf@*X+x-z!(@v!p0Rd!_kFdV5`aB=%Q-Z^i%@l?uV0*&{@l zH!`hCR3POqZ~nYPZE_mYtiT}#&+A@DWm*HdQNxHXAO0+z3XOp_ALCt%hRTj7Te!Yo zRS8EyUubksca4g0eFAsugjv# zF;htb-@1-!MTi}mbF*>H0C57oG?X{~y6TiuENF44!ErRz4>D36UX`Ibfq}~|2*6p| zl{cZZudo3LhHraRJT>c`R7nQ8+mufB@Cx4QNqM7MBWTiWaj}#Fjdw8Men(jU{5U8A z(E$XQ$~QV`WbK~eKl5YrF$trkTnkPhb-%sB{}`h;#SF`B%#w?lQTM~!d@vCfK9sAFnk5 zt0)ER?YIIfVZ~V59wR{iex}Wgrk+2FfUcWIn{LsaH^YiAd0})WwOes@7S>O9lSP82@4j0>YlIw3qCK*Xj)ckRBt0egq$$8mB|I z@WQ(_Q?hd|{f0(aIrwTj80txr;#3(Ddxb6i0?IBcVvb@H>eF~Tp`aK{K*;^WIJ^)I zF6{tJ2pqo${h4@*C94Z&CMV;BC_%2*$c~Zc1UqB?NQCzqP#9zB@(t}>rWKulY&!$!lH z7kod?W_0lVsf}~BrE>a^Gq~y*4y9cTt;pShfkjQZzVgai^s~w^pTW655T`osKpc{* z(TzLHfJfqFu+=6d_u>7zGdIQy*-5Pq2ihATFq#1FcsyKc`7o3)9onG#c=bpy1MnZ^nZ z1GE=HaW{AVwrZ~^l8{K<;lOUOqeXpIa+deVBlBq8l+i1?z-Trcz`5q%kBI&FL zHw1FS*U=)S5pGfDz8f!;ehuJfawQ_fCDBAqLE)9(oE_n4Bc?Mb{dKXD6MV0Au&U&9 zuePPUr#HFk@*3C=bcNNY)8A{V5)5ZSt^-(zzLfmi^Pra!HC2yK#flhKF)Y{mARbGu zqWs;&w+?U5_uYr}nMG+*9dK0x^{bGH1wQg`R1@=2yvPz}$5;B@x zI`M&jj`M4Vc+_cIC}E2t=-{vN{GdLakJ{HOSfv?7a!rmNfF#`MoIvbMKhK*;XDD|h z5B8gTMm5`$Dwg&2in5vY7Gx#i2$fefMVLn;)%DOVN7E+aH-3n+u?!LOn(1v#mHCd0 z{JCts0e08mVXhd2V@}E=rn|agOruCnJ|5AQnD|}f=6IRCA|64REZB7kWr7DuEKzQJ zJfF(b^b|z(A(Yd-RcxC5}NM6}3bc%T3a56tN_ktFnBYJmkPBv|= z+IXtN%XJ4-_O&Y^+XQiP7nG8#Zp@XCKh%2OxAf^gOs_Y`^j1AhopE?u(u$l|kIXFU zaG>6~wp9oJaS=be8#^Nd1RPktp7ph#3$$jBb5<$(`~mJK_S!bvquP81UH!Ayg`t4U zytioau1S~|nP=2e`DpeML;*gsqR`U@&uLltxv;{DGr;I*LxYN=?q-ZnU-9hqU{5{r zwGcSqzxyqcm=G~1lUY^Ik^(c?gF#Fb(puWJ<3E_7{}j^wzOgQ+LeRd3-Vod~c;lhF zzZwl*KUC(XfF6t;oGQ)I=&tA;8Q2 zamT9gT|-rd0K`aEsSLfF@MU^d&)^$6Fy1&w5Q;_Kxz!-R&il~Y;h-SPSJ1Fr)$;xd zJ)rrhs|NUJ4a_Q>i|D4Wp6&-$e2ckbIpsIvCbpYa_NnlFoGQ}O$5Bew2m%TbgKA!$ za6SkX`LJJ@J_Lo~$7-HiPfGcF^oma6v*~FP|AfEj~`694q5J z2<)0CeV=KKGX^_n=^Y-&1;n6Tg*cPu@K)$BR9O(1aD)=ZvB+k#C9eHVGYnf-X} zg!`p^|xE|n3qU?FqFp9@c_Kgwd8h8mQK%ODx91B7Z#K-RQnj;}u8#JSJF+J~ah?K{q zvAfnXKaFZg3Po(PTuqi6F+I)cd41TJUu1#^Qd#RE+EF7(NrE<8le6*Y(PkhEL?)5b zln5xQ+`pOQwLrAKVC*(po9BB=XDyaIjPF_Ijxd@X17owO&czZQU#0SUFHzD+1SWNR z{l&iAO$pjL*O*hKJ`uTM$Lz4A2L*KGh4n&R(mchwG9KnfsT1TS^VeAlZd%BIdTqJh zEU3uk<%Lrh`8GdgzXl({*^#0Bx>Utl*T1O@2S9CkthcfIjy=-Gv)#{RM(%TtkVjQ7 z{a0=Op4S~i#13S4$E#2#tTo>UZ3j63(xniuxl z6ICNS2~iY##Ov**2~ZKBw*5rU*Via{dvAX}ZBeekpsv3-BzpeXh+1u5D7zPDKT&v|I$zTp0 zoS)3~lv^YqSauuhP6Sll4j-m;ue;+Zzwf1dNz7i7&*K`gV`nr=Hro$vAs>=4Av1Sb z|E7m)jD3BBxX{gi?>XL3k-TX`?vc6HG?B5+H9T^lwva$T#y%1PxHgX?2^^G(HZtm_oc%Xha#HZouJ{VQ)_2RibuH%}WwJs6>2{n`Ucn?KPbybaXt9pl&2 zMIAqTbwq8OQC=b$sbbY(+x~uHhujdF^H$CXfn2`Rsu3&q;{kzt4Sd2ISevjT8X6kW zIml)ksjS;MFQxE}(45LqEde2^+InOmZ{T^vni9*p5KgZ{sp^&QYwIDGv35|`2$w|1 zus`JI4kch`p+NlL6-gk3%42b3m9@6u79h)!SCD>2Edpc6?v8BDn~3iAfh;B0$BA)F z$dNLkd^5^fDgNQ{wfyWD98Fa6L3HNjzP!Xt9h+c$|B_ljMdanRDP-WTPda>?$X52Q zgD4P%7R7Q1Wgx=U9~zG*+>t82*~U@4*vq$BKd}I~sNu z1N?*J)=0>$p^=tq*(eOxjhB1zyybf(4j>-7mk&)ppp!=T6k3`L`BV^46WCH?@ILDH zLPw}1LcIWYaIbZ}jtmn028rPF6i`FwJUHtfk+;%umQeFU_E)c_zFsDNEBQr znl%H3?Jg|}gAwrKCAtplxer!G$7$LLpNamcs0PZME`-B=$|DaJ zEhwI(ZF_8B`4Cc(MV}Gte1USjBN0pMpQt>^K*7&Yd&EP)3hcaq@vA}&%1brTV8&(g znW3C&!N7kx0-c3JJJyIsBmKYWN!Z%~TzNMt8|Am_?L$eHYUsS$hV8cEyM-4PrV!Ao z1B_^bMG?tD;?KEs9}(+8D{NEfJIN?k1JC^ZJbgcNFZqoD!ObmM(sp^wmfju6 zD2znX3O!t~myaz8XUIVhL&=c^`S!Lh9RhPP>>fMHmkyOv_y-Wk%N&!>Yz2B3Y~l9B zbD(z`N>OsTVIn4YTLrw|qd4W1NhkQhoyj@_6NX>z@ljF=4M{H9b?-kB_a7~vec#X9 z4dUPHS-0;`=g$5}PEs1+jaSQu6>-7@Ae#Ygqvm-sF;7SFnl-X>@`EbXKl5Fy-2e*w z^5bB*zR7%}{4KhV8Si$R%lr7^gl=t+8Q(g%?lVZ?DffcAzKiD!d`9mL>5OXbx77xv z9tD@02*37>$65HW)4}I_i+)cbxEAV`l{0EY!rn{+ttpVCXEn?A`RFzoUb~a58+PUp zLP6H6toXSSp8YN?Tt!sK93ysFVxw6>zMO*df*1GlZ7H=m97|w3X|rNnd&wVQS9T9G zhOf-n7w2B0%WN);oun7%bySB^rHHJAm9-HOw}kUk(f9>rJz=%)@`r+W+laL5OX0YP z>Qj93ZvR+v4l=)_+%nkN!vc;31OR?zE=nSIpOD*SK!P5IAr_gV>Y3)w>yf;^7Zw)1 zPdHj&3cc99w2gyZsNKUR*DzS1RE5&*+S#|2D&3?d(R*N8708e{%K-d=ejy|4d53wC z&%7aF+{X&J;#zFM8-x;J-+OoaUX#B%nX*RW07DW}6s>@^F9)yz9+f+!1jX}~r2c9B zuschZj6hhsP2>P02zQdN+^zz2f70S%x9c^Cb7axKElOwDEG+9ltV{kH=bKT^y9cfW z`h4~v^+Qa%A=G+nncMV3&W-KKMc5j@EB)#28`}0vY%aQI(g0-oyrLAPmty*t0K|AgC>-+MgMpW9icatJN{U>X) ztYozqX_1L7E2UrUG2)f?&O~772XXJx1`d z`1#`RFe3HH+MxT~%@j!Tx-PK=Vvif3aBTaToc-gnlWS?I$n&@7Dmh=vl?bQ9Ggpzi zLQc)7y2hiBAO)2Fg}L|Ia+O<`1mCCzLPF*e??HgDcL+&<0O5o%PhT-}?NjG;-&c=b zBlo{EWpLAcF1`q|GJIYIl%53@%~QZ_iY?ZPp^L>|LZu;_jiZTXh@eeI3k044cD0)b zFQ0mw-JV_Gl<6$V(3UI5{UQ3~b4$kSX3DH4c)=M>O&Cu>PB5NwH5~5m0~s50ZrR$> zN^Zr3&)E;z<6~#EyO;6rN()>m-{c&w6d7N|0Ftk?bR_)4FfVT``r z|Ja#}8teKIo^+0maLkL0tjgdmfJ%faalJg@9*cHhn%UtInSd>j`4ITO8mONObtE~C zVPG}>kYJrs!U00E6|o~P^ZNO{i-4pOC0kk6a~vW1pIDdMt6y3~HPTr3p^8x9x=(gB zt^cBk^*AnDnb>*5NyF9b@UTn}YK(Zo@G0x7|_4>-?dHu`x}%c`228qcW3UV!c)Sk6mQntI4l{pZ=B)# zJ#s()^*4?umY}_&;RxRD)T_IwctnxUriO42mZYgqJCs8ofWv>#>F~Q^@$!^VkZ^K9 z>CGF^YTaZ>@(BV*u*mVn-dI20-}(OY_jUcG+?l;vhhu*h9Fq=#x_;*|xT+2x{fa}W zsPfg$=WI@)s2x$stYBUnho|jf-AujZ*t{l>mOK<+r$7<$^R#IGAbHz8xA*VrczGlz zld6E!h|HR_Uq06dqwf=TZe8M_=kN%+o1OD;?lg5Ec2`$@tVZt2B)=V5O;BBAwTMUM zn+pE@-I+qfN{3|RILtU69==%Q`O7d1vUWuhFgx>{nN3JO|0a+7jt~+KKS$##Zn1#% zs7k=cUB=a68)P@ljpgp*a7qyEnYk{;FflalWvi8$&CZZ;yt5t4+}SULpy>- z>n1w=Wb`U*9L~8&O!9U2DVf}42W5453!u08yx#onm)y5U4{ttMV_8;FR?OZjo6XFy ztj;9yW+ULb<3DOGIUdQK;Si&88nld))sXYn1hW$y4lHq%u6q(V*_;pW(_BeB!S%QN z15dmJL({)czO^cfdGPryCh?0ZvOAz#r)U5%npwvq^A_5D5GHk`V@BPY}a8)sTezedwNJgJR%Vz+>!uT4B2qW?X{5AH7#AN^Z z12Iy0)XE=FQ~BL#?i}m;wR_3?(4;+}Tt-LxtZQysB+?c3$T#tQ`;zRAWZN=$-*~dV zX{QiQBO|2epBK{qu)`@uu8YkyK(R%kuK1vkFFo;WQdM}9&-VE2&a7Ci<|CL0W5h#n z$X+6;1AGfulOvi><|76tk9=ne?_q&0iXWQGvgQG5INuuzsR7yV1Bc`(<-7aFHWb|0 z|9(Y7VTVs{QVyg(crT|kaS0|_Hjvnpw6R%Vk2!8V_WcaM*e?rW!P695!P}g_*sJL4PBX6Dxj`{c-Ba=nB)9YKCDy^*K-zpR9`JD&g7{_sE8=V3F*S^q-<3-Yf2wfi6M{+G;3dw8#{~`B2;d00o{eQs*`*^<6>5p#y|IGmZf0+xG0^cjV z>VI6Y!grY3ip;P7!v%{bIQ$uEz-0I(iDUmK7c6~wfu%0k??GV2JVPHnHj^ANUIw01 z_O4Q{Zo;C=^!9uYxfg@@)V%-=wR&w@0byG1bA{=w&OO?YT>Nv9U#J+aMOE;>%J8-z zJz>*0P+lE)tF5IZsnOLZb(jUtf4{9AsJcD}AVRkMB#Ol!@c!{UTu9>M{+wR>_s2fn z_F&k2ZA{Q!Xy$c4J($aOpT5&y8RfK{d@xWt2J+(sFwW7bB-+nEQFok-x{|9RD{$}H zN_P&O5sVq0bHsXlpPpxzJS%*HtyXlfJL2G!g^+_7D8D)VrYpyr`nt8BH}y-JAo5f! z7I4>c)b3=w&yZZLc%2*^uae9bHAcGS9BA`-$1jxO|nGCkGZ^XWpRv!e|oMszcYP+3F5*-{J=H0QI&qfO_TGS@>^?+wb zeO+Ml{19k0{L5O=w35Z--LA|EkTvOcTb|JF+r*?a(@0-2{EMt0}G`DshM+VI=-*isqXTbUYX7o~Wg5X

    OtjEjnjM(#nMM+m@l4QA(k~aiGRe|7~A5# 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

    i4R)sF-oHOR8Xra--XeSw@j^X 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 `|sxEjL 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 z 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৖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≤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�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

    ~TOFF2)%hsgJ`!{^LUO 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�y`lG{p+1w*Q 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�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 z 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

    X?+zn)ddd6P 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%0D$={r2PP3iqDJjypUyZ|AgT`NQS8F@7azdF1d7*q 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

    ONDR1q)ep-nsLFo4`}|H5f%Bq6el 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

    wRE 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

    kpkp@bqIFQ;mb{4kq;4d~v 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