From a55db080ccc6b4954046d5d46c4bb91f521b72b2 Mon Sep 17 00:00:00 2001 From: caseone <421325991@qq.com> Date: Wed, 3 Mar 2021 17:28:03 +0800 Subject: [PATCH 01/10] governance.sql modify (#741) --- weevent-governance/src/main/resources/script/governance_h2.sql | 2 +- .../src/main/resources/script/governance_mysql.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/weevent-governance/src/main/resources/script/governance_h2.sql b/weevent-governance/src/main/resources/script/governance_h2.sql index a00e1455..4b094b6b 100644 --- a/weevent-governance/src/main/resources/script/governance_h2.sql +++ b/weevent-governance/src/main/resources/script/governance_h2.sql @@ -160,6 +160,6 @@ CREATE TABLE t_timer_scheduler ( alter table t_broker add CONSTRAINT brokerUrlDeleteAt UNIQUE (broker_url, delete_at) ; alter table t_rule_engine add CONSTRAINT ruleNameDeleteAt UNIQUE (rule_name, delete_at); alter table t_topic add CONSTRAINT topicNameBrokerGroupDelete UNIQUE (topic_name,broker_id,group_id,delete_at); -alter table t_file_transport_channel add CONSTRAINT topicBrokerGroupDelete UNIQUE (topic_name,broker_id,group_id); +alter table t_file_transport_channel add CONSTRAINT topicBrokerGroupDelete UNIQUE (topic_name,broker_id,group_id,node_address,role); alter table t_topic_historical add CONSTRAINT brokerIdGroupIdEventId UNIQUE (brokerId, groupId, eventId); alter table t_file_transport_status add CONSTRAINT topicBrokerGroupFileName UNIQUE (broker_id,group_id,topic_name,file_name); \ No newline at end of file diff --git a/weevent-governance/src/main/resources/script/governance_mysql.sql b/weevent-governance/src/main/resources/script/governance_mysql.sql index a031b4d4..b24efabf 100644 --- a/weevent-governance/src/main/resources/script/governance_mysql.sql +++ b/weevent-governance/src/main/resources/script/governance_mysql.sql @@ -158,6 +158,6 @@ CREATE TABLE t_timer_scheduler ( ALTER TABLE t_broker ADD CONSTRAINT brokerUrlDeleteAt UNIQUE (broker_url, delete_at) ; ALTER TABLE t_rule_engine ADD CONSTRAINT ruleNameDeleteAt UNIQUE (rule_name, delete_at); ALTER TABLE t_topic ADD CONSTRAINT topicNameBrokerGroupDelete UNIQUE (topic_name,broker_id,group_id,delete_at); -ALTER TABLE t_file_transport_channel ADD CONSTRAINT topicBrokerGroupDelete UNIQUE (topic_name,broker_id,group_id); +ALTER TABLE t_file_transport_channel ADD CONSTRAINT topicBrokerGroupDelete UNIQUE (topic_name,broker_id,group_id,node_address,role); ALTER TABLE t_topic_historical ADD CONSTRAINT brokerIdGroupIdEventId UNIQUE (brokerId, groupId, eventId); ALTER TABLE t_file_transport_status ADD CONSTRAINT topicBrokerGroupFileName UNIQUE (topic_name,broker_id,group_id,file_name); \ No newline at end of file -- Gitee From 4f60113dd68063cd3b40fc76fc0f8ee3afa89d52 Mon Sep 17 00:00:00 2001 From: caseone <421325991@qq.com> Date: Mon, 8 Mar 2021 15:46:36 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=20(#743)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- weevent-broker/src/main/resources/fisco.yml | 2 - .../src/main/resources/weevent.properties | 2 +- weevent-build/config.properties | 2 - weevent-build/install-all.sh | 7 ++- .../modules/broker/install-broker.sh | 27 +++++++----- .../modules/governance/install-governance.sh | 6 +-- weevent-build/package.sh | 1 + .../core/config/WeEventCoreConfig.java | 2 - .../weevent/core/fisco/util/Web3sdkUtils.java | 2 +- .../core/fisco/web3sdk/FiscoBcosDelegate.java | 6 +-- weevent-core/src/main/resources/fisco.yml | 2 - .../fisco/FiscoBcosBroker4ProducerTest.java | 5 ++- .../core/fisco/FiscoTopicAdminTest.java | 6 ++- .../weevent/file/inner/AMOPChannel.java | 43 ++++++++++++++++--- weevent-file/src/main/resources/fisco.yml | 1 - .../weevent/file/WeEventFileClientTest.java | 11 ++++- .../governance/GovernanceApplication.java | 8 ++++ .../governance/service/TopicService.java | 19 +++++++- .../src/main/resources/fisco.yml | 1 - .../src/main/resources/governance.properties | 6 +-- 21 files changed, 112 insertions(+), 49 deletions(-) diff --git a/build.gradle b/build.gradle index 40c0baf6..03129fdf 100644 --- a/build.gradle +++ b/build.gradle @@ -104,7 +104,7 @@ List lombok = [ allprojects { group "com.webank.weevent" - version "1.5.0" + version "1.6.0" apply plugin: "java-library" apply plugin: "maven" diff --git a/weevent-broker/src/main/resources/fisco.yml b/weevent-broker/src/main/resources/fisco.yml index 6d1c9164..79b5ca1b 100644 --- a/weevent-broker/src/main/resources/fisco.yml +++ b/weevent-broker/src/main/resources/fisco.yml @@ -7,8 +7,6 @@ timeout: 10000 poolSize: 10 maxPoolSize: 200 keepAliveSeconds: 10 -web3sdkEncryptType: ECDSA_TYPE -#web3sdkEncryptType: SM_TYPE consumerHistoryMergeBlock: 8 consumerIdleTime: 1000 diff --git a/weevent-broker/src/main/resources/weevent.properties b/weevent-broker/src/main/resources/weevent.properties index 84921181..0384c6da 100644 --- a/weevent-broker/src/main/resources/weevent.properties +++ b/weevent-broker/src/main/resources/weevent.properties @@ -10,7 +10,7 @@ stomp.heartbeats=30 mqtt.broker.tcp.port=7001 mqtt.broker.keepalive=60 mqtt.broker.security.ssl=false -mqtt.broker.security.ssl.client_auth=true +mqtt.broker.security.ssl.client_auth=false mqtt.broker.security.ssl.ca_cert:mqtt_ssl/cacert.pem mqtt.broker.security.ssl.server_cert:mqtt_ssl/cert.pem mqtt.broker.security.ssl.server_key:mqtt_ssl/key.pem \ No newline at end of file diff --git a/weevent-build/config.properties b/weevent-build/config.properties index 636e170a..8fa6e1ff 100644 --- a/weevent-build/config.properties +++ b/weevent-build/config.properties @@ -4,8 +4,6 @@ JAVA_HOME=/usr/local/jdk1.8.0_191 # Required module fisco-bcos # support 2.x fisco-bcos.version=2.0 -# FISCO-BCOS node channel, eg: 127.0.0.1:20200;127.0.0.2:20200 -fisco-bcos.channel=127.0.0.1:20200 # The path of FISCO-BCOS 2.0 that contain certificate file ca.crt/sdk.crt/sdk.key fisco-bcos.node_path=~/fisco/nodes/127.0.0.1/sdk/ diff --git a/weevent-build/install-all.sh b/weevent-build/install-all.sh index eee6e0ca..2c824273 100644 --- a/weevent-build/install-all.sh +++ b/weevent-build/install-all.sh @@ -13,7 +13,6 @@ governance_port=7009 processor_port=7008 zookeeper_connect_string= block_chain_version= -block_chain_channel= block_chain_node_path= database_type= mysql_ip= @@ -23,6 +22,8 @@ mysql_password= current_path=$PWD +fisco_config_file=$PWD/fisco.yml + function yellow_echo (){ local what=$* echo -e "\e[1;33m${what} \e[0m" @@ -49,7 +50,6 @@ function properties_get(){ function set_global_param(){ java_home_path=$(properties_get "JAVA_HOME") block_chain_version=$(properties_get "fisco-bcos.version") - block_chain_channel=$(properties_get "fisco-bcos.channel") block_chain_node_path=$(properties_get "fisco-bcos.node_path") if [[ "${block_chain_node_path:0:1}" == "~" ]];then block_chain_node_path=$(realpath -m ${HOME}/${block_chain_node_path:1}) @@ -126,7 +126,6 @@ function check_param(){ check_port $(echo ${zookeeper_connect_string} | cut -d ":" -f2) fi if [[ -d ${block_chain_node_path} ]]; then - check_telnet ${block_chain_channel} echo "param ok" else echo "path not exist, ${block_chain_node_path}" @@ -160,7 +159,7 @@ function install_module(){ yellow_echo "install module broker" cd ${current_path}/modules/broker - ./install-broker.sh --out_path ${out_path}/broker --listen_port ${broker_port} --block_chain_node_path ${block_chain_node_path} --channel_info ${block_chain_channel} --version ${block_chain_version} --zookeeper_connect_string ${zookeeper_connect_string} + ./install-broker.sh --out_path ${out_path}/broker --listen_port ${broker_port} --block_chain_node_path ${block_chain_node_path} --version ${block_chain_version} --zookeeper_connect_string ${zookeeper_connect_string} --fisco_config_file ${fisco_config_file} check_result "install broker" if [[ ${governance_enable} = "true" ]];then diff --git a/weevent-build/modules/broker/install-broker.sh b/weevent-build/modules/broker/install-broker.sh index 01e41613..c825f5e3 100644 --- a/weevent-build/modules/broker/install-broker.sh +++ b/weevent-build/modules/broker/install-broker.sh @@ -8,9 +8,9 @@ while [[ $# -ge 2 ]] ; do --out_path) para="$1 = $2;";out_path="$2";shift 2;; --listen_port) para="$1 = $2;";listen_port="$2";shift 2;; --block_chain_node_path) para="$1 = $2;";block_chain_node_path="$2";shift 2;; - --channel_info) para="$1 = $2;";channel_info="$2";shift 2;; --version) para="$1 = $2;";version="$2";shift 2;; --zookeeper_connect_string) para="$1 = $2;";zookeeper_connect_string="$2";shift 2;; + --fisco_config_file) para="$1 = $2;";fisco_config_file="$2";shift 2;; *) echo "unknown parameter $1." ; exit 1 ; break;; esac done @@ -19,33 +19,38 @@ echo "param out_path: ${out_path}" echo "param listen_port: ${listen_port}" echo "param version: ${version}" echo "param block_chain_node_path: ${block_chain_node_path}" -echo "param channel_info: ${channel_info}" echo "param zookeeper_connect_string: ${zookeeper_connect_string}" +echo "param fisco_config_file: ${fisco_config_file}" + #copy file function copy_file(){ mkdir -p ${out_path} cp -r ./* ${out_path}/ + cp ${fisco_config_file} ${out_path}/conf rm -f ${out_path}/install-broker.sh } -if [[ -z ${channel_info} ]];then - echo "channel_info is empty." - exit 1 -fi - copy_file -sed -i "s/^.*nodes=.*$/nodes=${channel_info}/g" ${out_path}/conf/fisco.properties + echo "set channel_info success" -if [[ -f ${block_chain_node_path}/ca.crt ]] && [[ -f ${block_chain_node_path}/sdk.crt ]] && [[ -f ${block_chain_node_path}/sdk.key ]]; then - rm -rf ${out_path}/conf/ca.crt ${out_path}/conf/sdk.crt ${out_path}/conf/sdk.key - cp ${block_chain_node_path}/ca.crt ${block_chain_node_path}/sdk.crt ${block_chain_node_path}/sdk.key ${out_path}/conf/ +if [[ -d ${block_chain_node_path} ]]; then + rm -rf ${out_path}/conf/conf + mkdir -p ${out_path}/conf/conf + cp -rf ${block_chain_node_path}/* ${out_path}/conf/conf else echo "ca.crt or sdk.crt or sdk.key is not exist." exit 1 fi +if [[ -f ${fisco_config_file} ]]; then + cp -rf ${fisco_config_file} ${out_path}/conf/ +else + echo "fisco_config_file is not exist." + exit 1 +fi + #deploy contract cd ${out_path} ./deploy-topic-control.sh diff --git a/weevent-build/modules/governance/install-governance.sh b/weevent-build/modules/governance/install-governance.sh index b63b2f6b..580ea8a0 100644 --- a/weevent-build/modules/governance/install-governance.sh +++ b/weevent-build/modules/governance/install-governance.sh @@ -8,9 +8,9 @@ function governance_setup() { cp -r ./* ${out_path}/ install_top_path=$(dirname ${out_path}) - cp ${install_top_path}/broker/conf/ca.crt ${out_path}/conf/ - cp ${install_top_path}/broker/conf/sdk.* ${out_path}/conf/ - cp ${install_top_path}/broker/conf/fisco.properties ${out_path}/conf/ + rm -rf ${out_path}/conf/conf + cp -rf ${install_top_path}/broker/conf/conf ${out_path}/conf + cp -rf ${install_top_path}/broker/conf/fisco.yml ${out_path}/conf/ rm -f ${out_path}/install-governance.sh diff --git a/weevent-build/package.sh b/weevent-build/package.sh index 7df24e26..bd84a847 100644 --- a/weevent-build/package.sh +++ b/weevent-build/package.sh @@ -97,6 +97,7 @@ function copy_install_file(){ cd ${current_path} cp ${current_path}/config.properties ${current_path}/install-all.sh ${out_path} + cp ${current_path}/fisco.yml ${current_path}/install-all.sh ${out_path} cp -r ${current_path}/bin ${out_path} mkdir -p ${out_path}/modules/gateway diff --git a/weevent-core/src/main/java/com/webank/weevent/core/config/WeEventCoreConfig.java b/weevent-core/src/main/java/com/webank/weevent/core/config/WeEventCoreConfig.java index ab691b40..3281265f 100644 --- a/weevent-core/src/main/java/com/webank/weevent/core/config/WeEventCoreConfig.java +++ b/weevent-core/src/main/java/com/webank/weevent/core/config/WeEventCoreConfig.java @@ -27,8 +27,6 @@ public class WeEventCoreConfig { private Integer keepAliveSeconds; - private String web3sdkEncryptType; - private Integer consumerIdleTime; private Integer consumerHistoryMergeBlock; diff --git a/weevent-core/src/main/java/com/webank/weevent/core/fisco/util/Web3sdkUtils.java b/weevent-core/src/main/java/com/webank/weevent/core/fisco/util/Web3sdkUtils.java index 99efc184..26fd6c59 100644 --- a/weevent-core/src/main/java/com/webank/weevent/core/fisco/util/Web3sdkUtils.java +++ b/weevent-core/src/main/java/com/webank/weevent/core/fisco/util/Web3sdkUtils.java @@ -61,7 +61,7 @@ public class Web3sdkUtils { taskExecutor.initialize(); if (StringUtils.isBlank(fiscoConfig.getWeEventCoreConfig().getVersion())) { - log.error("empty FISCO-BCOS version in fisco.properties"); + log.error("empty FISCO-BCOS version in fisco.yml"); systemExit(1); } diff --git a/weevent-core/src/main/java/com/webank/weevent/core/fisco/web3sdk/FiscoBcosDelegate.java b/weevent-core/src/main/java/com/webank/weevent/core/fisco/web3sdk/FiscoBcosDelegate.java index fad93c19..d9ae442f 100644 --- a/weevent-core/src/main/java/com/webank/weevent/core/fisco/web3sdk/FiscoBcosDelegate.java +++ b/weevent-core/src/main/java/com/webank/weevent/core/fisco/web3sdk/FiscoBcosDelegate.java @@ -32,7 +32,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; /** - * Detect FISCO-BCOS version from configuration 'fisco.properties' and then proxy all the invoke to the target. + * Detect FISCO-BCOS version from configuration 'fisco.yml' and then proxy all the invoke to the target. * Parameter groupId in all interface: * default 1L in 2.x, meanings first group * There is 2 different caches for block data. One is local memory, another is redis. @@ -76,11 +76,11 @@ public class FiscoBcosDelegate { config.getWeEventCoreConfig().getKeepAliveSeconds()); if (StringUtils.isBlank(config.getWeEventCoreConfig().getVersion())) { - log.error("the fisco version in fisco.properties is empty"); + log.error("the fisco version in fisco.yml is empty"); throw new BrokerException(ErrorCode.WEB3SDK_INIT_ERROR); } if (0 == config.getConfigProperty().getNetwork().size()) { - log.error("the fisco nodes in fisco.properties is null"); + log.error("the fisco nodes in fisco.yml is null"); throw new BrokerException(ErrorCode.WEB3SDK_INIT_ERROR); } diff --git a/weevent-core/src/main/resources/fisco.yml b/weevent-core/src/main/resources/fisco.yml index 2ce28b37..f841d678 100644 --- a/weevent-core/src/main/resources/fisco.yml +++ b/weevent-core/src/main/resources/fisco.yml @@ -7,8 +7,6 @@ timeout: 10000 poolSize: 10 maxPoolSize: 200 keepAliveSeconds: 10 -web3sdkEncryptType: ECDSA_TYPE -#web3sdkEncryptType: SM_TYPE consumerHistoryMergeBlock: 8 consumerIdleTime: 1000 diff --git a/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoBcosBroker4ProducerTest.java b/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoBcosBroker4ProducerTest.java index 67864776..01fb0a34 100644 --- a/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoBcosBroker4ProducerTest.java +++ b/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoBcosBroker4ProducerTest.java @@ -40,6 +40,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import static org.fisco.bcos.sdk.model.CryptoType.ECDSA_TYPE; + /** * FiscoBcosBroker4Producer Tester. * @@ -57,6 +59,7 @@ public class FiscoBcosBroker4ProducerTest extends JUnitTestBase { private FiscoConfig fiscoConfig; private FiscoBcosDelegate fiscoBcosDelegate; private long transactionTimeout = 30000; + private int cryptoType = ECDSA_TYPE; @Before public void before() throws Exception { @@ -456,7 +459,7 @@ public class FiscoBcosBroker4ProducerTest extends JUnitTestBase { } private CryptoKeyPair getExternalAccountCryptoKeyPair() { - if (fiscoConfig.getWeEventCoreConfig().getWeb3sdkEncryptType().equals("ECDSA_TYPE")) { + if (cryptoType == ECDSA_TYPE){ return (new ECDSAKeyPair()).generateKeyPair(); } else { return (new SM2KeyPair()).generateKeyPair(); diff --git a/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoTopicAdminTest.java b/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoTopicAdminTest.java index 4dde6b4c..3d094b5b 100644 --- a/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoTopicAdminTest.java +++ b/weevent-core/src/test/java/com/webank/weevent/core/fisco/FiscoTopicAdminTest.java @@ -30,6 +30,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import static org.fisco.bcos.sdk.model.CryptoType.ECDSA_TYPE; + /** * FiscoBcosTopicAdmin Tester. * @@ -50,6 +52,8 @@ public class FiscoTopicAdminTest extends JUnitTestBase { private final long transactionTimeout = 10; private FiscoConfig fiscoConfig; + private int cryptoType = ECDSA_TYPE; + @Before public void before() throws Exception { log.info("=============================={}.{}==============================", @@ -1103,7 +1107,7 @@ public class FiscoTopicAdminTest extends JUnitTestBase { } private CryptoKeyPair getExternalAccountCryptoKeyPair() { - if (fiscoConfig.getWeEventCoreConfig().getWeb3sdkEncryptType().equals("ECDSA_TYPE")) { + if ( cryptoType == ECDSA_TYPE) { return (new ECDSAKeyPair()).generateKeyPair(); } else { return (new SM2KeyPair()).generateKeyPair(); diff --git a/weevent-file/src/main/java/com/webank/weevent/file/inner/AMOPChannel.java b/weevent-file/src/main/java/com/webank/weevent/file/inner/AMOPChannel.java index 69ab998d..43048162 100644 --- a/weevent-file/src/main/java/com/webank/weevent/file/inner/AMOPChannel.java +++ b/weevent-file/src/main/java/com/webank/weevent/file/inner/AMOPChannel.java @@ -35,6 +35,7 @@ import org.fisco.bcos.sdk.amop.AmopMsgOut; import org.fisco.bcos.sdk.amop.AmopResponse; import org.fisco.bcos.sdk.amop.topic.AmopMsgIn; import org.fisco.bcos.sdk.amop.topic.TopicType; +import org.fisco.bcos.sdk.client.protocol.response.NodeInfo; import org.fisco.bcos.sdk.client.protocol.response.Peers; import org.fisco.bcos.sdk.client.protocol.response.Peers.PeerInfo; import org.fisco.bcos.sdk.crypto.keystore.KeyTool; @@ -115,15 +116,43 @@ public class AMOPChannel extends AmopCallback { public Set getSubscribers(String topic) { Integer groupId = Integer.parseInt(WeEvent.DEFAULT_GROUP_ID); - Set subscribers = new HashSet<>(); - Peers peers = this.bcosSDK.getClient(groupId).getPeers(); - log.info("peers:{}", peers.getPeers()); - for (Peers.PeerInfo peer : peers.getPeers()){ - if(peer.getTopic().contains(topic)){ - subscribers.add(peer.getIpAndPort()); + Set subscriberIPs = new HashSet<>(); + Set subscriberNodeIds = new HashSet<>(); + + try { + List peers = this.bcosSDK.getClient(groupId).getPeers().getPeers(); + log.info("getSubscribers: peers {}, {}", topic, peers); + for (Peers.PeerInfo peer : peers){ + if(peer.getTopic().contains(topic)){ + subscriberIPs.add(peer.getIpAndPort()); + subscriberNodeIds.add(peer.getNodeID()); + log.info("subscribers peer {}, {}", topic, peer.getNodeID(), peer.getIpAndPort()); + } + } + } catch (Exception e) { + log.error("getPeers error:{} {}", topic, e.toString()); + } + + + List connectedNodes = this.bcosSDK.getConfig().getNetworkConfig().getPeers(); + log.info("getSubscribers: nodes {}", connectedNodes); + for (String nodeIp : connectedNodes){ + NodeInfo.NodeInformation nodeInfo = null; + try { + nodeInfo = this.bcosSDK.getClient(groupId).getNodeInfo(nodeIp).getNodeInfo(); + } catch (Exception e) { + log.error("getNodeInfo error:{} {} {}", topic, nodeIp, e.toString()); + continue; + } + log.info("getSubscribers: node {}, {}, {}", topic, nodeIp, nodeInfo); + if(nodeInfo.getTopic().contains(topic)){ + subscriberIPs.add(nodeInfo.getIpAndPort()); + subscriberNodeIds.add(nodeInfo.getNodeID()); + log.info("subscribers node {}, {}", topic, nodeInfo.getNodeID(), nodeInfo.getIpAndPort()); } } - return subscribers; + log.info("getSubscribers:{} {}", subscriberIPs, subscriberNodeIds); + return subscriberNodeIds; } // Receiver call subscribe topic diff --git a/weevent-file/src/main/resources/fisco.yml b/weevent-file/src/main/resources/fisco.yml index d2c2ee6f..8a3d59d6 100644 --- a/weevent-file/src/main/resources/fisco.yml +++ b/weevent-file/src/main/resources/fisco.yml @@ -7,7 +7,6 @@ timeout: 10000 poolSize: 10 maxPoolSize: 200 keepAliveSeconds: 10 -web3sdkEncryptType: ECDSA_TYPE consumerHistoryMergeBlock: 8 consumerIdleTime: 1000 diff --git a/weevent-file/src/test/java/com/webank/weevent/file/WeEventFileClientTest.java b/weevent-file/src/test/java/com/webank/weevent/file/WeEventFileClientTest.java index db199434..2b3913f8 100644 --- a/weevent-file/src/test/java/com/webank/weevent/file/WeEventFileClientTest.java +++ b/weevent-file/src/test/java/com/webank/weevent/file/WeEventFileClientTest.java @@ -3,6 +3,7 @@ package com.webank.weevent.file; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Set; import com.webank.weevent.client.BrokerException; import com.webank.weevent.client.SendResult; @@ -355,7 +356,6 @@ public class WeEventFileClientTest { @Test public void testGetPemFile() throws BrokerException { -// WeEventFileClient.genPemFile(fiscoConfig.getWeEventCoreConfig().getWeb3sdkEncryptType()); WeEventFileClient.genPemFile("SM_TYPE"); Assert.assertTrue(true); } @@ -368,4 +368,13 @@ public class WeEventFileClientTest { boolean ret = weEventFileClient.isFileExist("conf/ca.crt", this.topicName, this.groupId); Assert.assertTrue(ret); } + + @Test + public void testGetSubscribers() throws BrokerException { + WeEventFileClient weEventFileClient = new WeEventFileClient(this.groupId, this.localReceivePath, this.fileChunkSize, this.fiscoConfig); + Set subscribers = weEventFileClient.getSubscribers(this.topicName); + System.out.println("subscribers:" + subscribers); + Assert.assertTrue(true); + } + } diff --git a/weevent-governance/src/main/java/com/webank/weevent/governance/GovernanceApplication.java b/weevent-governance/src/main/java/com/webank/weevent/governance/GovernanceApplication.java index 5e638719..bdb68baf 100644 --- a/weevent-governance/src/main/java/com/webank/weevent/governance/GovernanceApplication.java +++ b/weevent-governance/src/main/java/com/webank/weevent/governance/GovernanceApplication.java @@ -5,6 +5,7 @@ import java.net.UnknownHostException; import javax.net.ssl.SSLException; +import com.webank.weevent.core.config.FiscoConfig; import com.webank.weevent.governance.common.GovernanceConfig; import lombok.extern.slf4j.Slf4j; @@ -64,6 +65,13 @@ public class GovernanceApplication { governanceConfig = config; } + @Bean + public FiscoConfig fiscoConfig(){ + FiscoConfig fiscoConfig = new FiscoConfig(); + fiscoConfig.load(""); + return fiscoConfig; + } + @Bean public ServletRegistrationBean weeventGovernanceServletBean(WebApplicationContext wac) { DispatcherServlet ds = new DispatcherServlet(wac); diff --git a/weevent-governance/src/main/java/com/webank/weevent/governance/service/TopicService.java b/weevent-governance/src/main/java/com/webank/weevent/governance/service/TopicService.java index ea9cf343..f8daf036 100644 --- a/weevent-governance/src/main/java/com/webank/weevent/governance/service/TopicService.java +++ b/weevent-governance/src/main/java/com/webank/weevent/governance/service/TopicService.java @@ -5,8 +5,10 @@ import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -25,6 +27,7 @@ import com.webank.weevent.governance.entity.TopicPage; import com.webank.weevent.governance.entity.TopicPageEntity; import com.webank.weevent.governance.enums.IsDeleteEnum; import com.webank.weevent.governance.repository.TopicRepository; +import com.webank.weevent.governance.utils.Utils; import com.fasterxml.jackson.core.type.TypeReference; import lombok.extern.slf4j.Slf4j; @@ -59,6 +62,9 @@ public class TopicService { @Autowired private CommonService commonService; + @Autowired + private FiscoConfig fiscoConfig; + private final String SPLIT = "-"; public Boolean close(Integer brokerId, String topic, String groupId, HttpServletRequest request, HttpServletResponse response) @@ -97,7 +103,7 @@ public class TopicService { TopicPage result = new TopicPage(); result.setPageIndex(pageIndex); result.setPageSize(pageSize); - result.setNodeAddress(governanceConfig.getNodeAddressList()); + result.setNodeAddress(this.getNodeAddressList()); if (brokerEntity == null) { return result; } @@ -116,7 +122,7 @@ public class TopicService { TopicPage topicPage = invokeBrokerCGI(request, url, new TypeReference>() { }).getData(); - topicPage.setNodeAddress(governanceConfig.getNodeAddressList()); + topicPage.setNodeAddress(this.getNodeAddressList()); if (topicPage == null || CollectionUtils.isEmpty(topicPage.getTopicInfoList())) { return result; } @@ -265,4 +271,13 @@ public class TopicService { } } + private List getNodeAddressList() { + Set nodeAddressList = new HashSet<>(); + nodeAddressList.add(Utils.list2String(fiscoConfig.getFiscoNodes())); + if (governanceConfig.getNodeAddressList() != null) { + nodeAddressList.addAll(governanceConfig.getNodeAddressList()); + } + + return new ArrayList<>(nodeAddressList); + } } diff --git a/weevent-governance/src/main/resources/fisco.yml b/weevent-governance/src/main/resources/fisco.yml index f3f7c904..5207732c 100644 --- a/weevent-governance/src/main/resources/fisco.yml +++ b/weevent-governance/src/main/resources/fisco.yml @@ -7,7 +7,6 @@ timeout: 10000 poolSize: 10 maxPoolSize: 200 keepAliveSeconds: 10 -web3sdkEncryptType: ECDSA_TYPE consumerHistoryMergeBlock: 8 consumerIdleTime: 1000 diff --git a/weevent-governance/src/main/resources/governance.properties b/weevent-governance/src/main/resources/governance.properties index ed045f7e..c420b449 100644 --- a/weevent-governance/src/main/resources/governance.properties +++ b/weevent-governance/src/main/resources/governance.properties @@ -10,6 +10,6 @@ file.transport.path=./logs acount.name=admin acount.password=admin123456 -nodeAddressList[0]=127.0.0.1:20200 -nodeAddressList[1]=127.0.0.1:20201 -nodeAddressList[2]=127.0.0.1:20202,127.0.0.1:20203 \ No newline at end of file +#nodeAddressList[0]=127.0.0.1:20200 +#nodeAddressList[1]=127.0.0.1:20201 +#nodeAddressList[2]=127.0.0.1:20202,127.0.0.1:20203 \ No newline at end of file -- Gitee From a83eb8ba20612e37f39dc3d61498c3734e76d23f Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Tue, 9 Mar 2021 17:10:21 +0800 Subject: [PATCH 03/10] bug fix: code update --- .../src/main/resources/application-dev.properties | 2 ++ .../src/main/resources/application-prod.properties | 2 ++ weevent-governance/web/src/components/fileTranspoart.vue | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/weevent-governance/src/main/resources/application-dev.properties b/weevent-governance/src/main/resources/application-dev.properties index 55c72434..23ed1116 100644 --- a/weevent-governance/src/main/resources/application-dev.properties +++ b/weevent-governance/src/main/resources/application-dev.properties @@ -1,6 +1,8 @@ spring.application.name=weevent-governance server.port=7009 logging.config=classpath:log4j2.xml +# database config +spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_governance spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=root diff --git a/weevent-governance/src/main/resources/application-prod.properties b/weevent-governance/src/main/resources/application-prod.properties index 17d2b813..1ecc78e3 100644 --- a/weevent-governance/src/main/resources/application-prod.properties +++ b/weevent-governance/src/main/resources/application-prod.properties @@ -1,6 +1,8 @@ spring.application.name=weevent-governance server.port=7009 logging.config=classpath:log4j2.xml +# database config +spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_governance spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=root diff --git a/weevent-governance/web/src/components/fileTranspoart.vue b/weevent-governance/web/src/components/fileTranspoart.vue index b79aab8d..cd168ee5 100644 --- a/weevent-governance/web/src/components/fileTranspoart.vue +++ b/weevent-governance/web/src/components/fileTranspoart.vue @@ -490,11 +490,11 @@ export default { if (e.role === '0') { vm.downLoadList[name] = setInterval(fun => { vm.downStatus(e) - }, 1000) + }, 2000) } else { vm.downLoadList[name] = setInterval(fun => { vm.upStatus(e) - }, 1000) + }, 2000) } } }, -- Gitee From 19b84818c4c4fd48dc773c9bd4860a1fe8b180e1 Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Wed, 10 Mar 2021 09:57:49 +0800 Subject: [PATCH 04/10] =?UTF-8?q?bug=20fix=EF=BC=9Aadd=20database=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- weevent-broker/src/main/resources/application-dev.properties | 2 ++ weevent-broker/src/main/resources/application-prod.properties | 2 ++ 2 files changed, 4 insertions(+) diff --git a/weevent-broker/src/main/resources/application-dev.properties b/weevent-broker/src/main/resources/application-dev.properties index 207f91be..fccc9022 100644 --- a/weevent-broker/src/main/resources/application-dev.properties +++ b/weevent-broker/src/main/resources/application-dev.properties @@ -20,6 +20,8 @@ spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid spring.resources.add-mappings=false +# database config +spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_broker spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=root diff --git a/weevent-broker/src/main/resources/application-prod.properties b/weevent-broker/src/main/resources/application-prod.properties index 207f91be..fccc9022 100644 --- a/weevent-broker/src/main/resources/application-prod.properties +++ b/weevent-broker/src/main/resources/application-prod.properties @@ -20,6 +20,8 @@ spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid spring.resources.add-mappings=false +# database config +spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_broker spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=root -- Gitee From 28de2866c13def608cfb2560b866e2fbb12f846d Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Wed, 10 Mar 2021 09:59:05 +0800 Subject: [PATCH 05/10] bug fix:add config --- .../src/main/resources/application-dev.properties | 3 +++ .../src/main/resources/application-prod.properties | 3 +++ 2 files changed, 6 insertions(+) diff --git a/weevent-processor/src/main/resources/application-dev.properties b/weevent-processor/src/main/resources/application-dev.properties index a9f4e160..e7de06d2 100644 --- a/weevent-processor/src/main/resources/application-dev.properties +++ b/weevent-processor/src/main/resources/application-dev.properties @@ -12,6 +12,9 @@ spring.http.encoding.force=true spring.messages.encoding=UTF-8 spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid + +# database config +spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_processor spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=root diff --git a/weevent-processor/src/main/resources/application-prod.properties b/weevent-processor/src/main/resources/application-prod.properties index a9f4e160..e7de06d2 100644 --- a/weevent-processor/src/main/resources/application-prod.properties +++ b/weevent-processor/src/main/resources/application-prod.properties @@ -12,6 +12,9 @@ spring.http.encoding.force=true spring.messages.encoding=UTF-8 spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid + +# database config +spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_processor spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=root -- Gitee From 28e4915ac059ab7474b80ae9b8c4ddde6f57a0f2 Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Wed, 10 Mar 2021 10:29:46 +0800 Subject: [PATCH 06/10] bug fix: edit properties database config --- .../src/main/resources/application-dev.properties | 8 +++++++- .../src/main/resources/application-prod.properties | 8 +++++++- .../src/main/resources/application-dev.properties | 8 +++++++- .../src/main/resources/application-prod.properties | 8 +++++++- .../src/main/resources/application-prod.properties | 10 ++++++++-- 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/weevent-broker/src/main/resources/application-dev.properties b/weevent-broker/src/main/resources/application-dev.properties index fccc9022..5d8f8dcb 100644 --- a/weevent-broker/src/main/resources/application-dev.properties +++ b/weevent-broker/src/main/resources/application-dev.properties @@ -20,7 +20,13 @@ spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid spring.resources.add-mappings=false -# database config +#mysql database config +#spring.jpa.database=mysql +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_broker?useUnicode=true&characterEncoding=utf-8&useSSL=false +#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +#spring.datasource.username=xxxx +#spring.datasource.password=yyyy +#h2 database config spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_broker spring.datasource.driver-class-name=org.h2.Driver diff --git a/weevent-broker/src/main/resources/application-prod.properties b/weevent-broker/src/main/resources/application-prod.properties index fccc9022..5d8f8dcb 100644 --- a/weevent-broker/src/main/resources/application-prod.properties +++ b/weevent-broker/src/main/resources/application-prod.properties @@ -20,7 +20,13 @@ spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid spring.resources.add-mappings=false -# database config +#mysql database config +#spring.jpa.database=mysql +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_broker?useUnicode=true&characterEncoding=utf-8&useSSL=false +#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +#spring.datasource.username=xxxx +#spring.datasource.password=yyyy +#h2 database config spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_broker spring.datasource.driver-class-name=org.h2.Driver diff --git a/weevent-governance/src/main/resources/application-dev.properties b/weevent-governance/src/main/resources/application-dev.properties index 23ed1116..f14a4de8 100644 --- a/weevent-governance/src/main/resources/application-dev.properties +++ b/weevent-governance/src/main/resources/application-dev.properties @@ -1,7 +1,13 @@ spring.application.name=weevent-governance server.port=7009 logging.config=classpath:log4j2.xml -# database config +#mysql database config +#spring.jpa.database=mysql +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_governance?useUnicode=true&characterEncoding=utf-8&useSSL=false +#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +#spring.datasource.username=xxxx +#spring.datasource.password=yyyy +#h2 database config spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_governance spring.datasource.driver-class-name=org.h2.Driver diff --git a/weevent-governance/src/main/resources/application-prod.properties b/weevent-governance/src/main/resources/application-prod.properties index 1ecc78e3..b50f8460 100644 --- a/weevent-governance/src/main/resources/application-prod.properties +++ b/weevent-governance/src/main/resources/application-prod.properties @@ -1,7 +1,13 @@ spring.application.name=weevent-governance server.port=7009 logging.config=classpath:log4j2.xml -# database config +#mysql database config +#spring.jpa.database=mysql +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_governance?useUnicode=true&characterEncoding=utf-8&useSSL=false +#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +#spring.datasource.username=xxxx +#spring.datasource.password=yyyy +#h2 database config spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_governance spring.datasource.driver-class-name=org.h2.Driver diff --git a/weevent-processor/src/main/resources/application-prod.properties b/weevent-processor/src/main/resources/application-prod.properties index e7de06d2..18e16296 100644 --- a/weevent-processor/src/main/resources/application-prod.properties +++ b/weevent-processor/src/main/resources/application-prod.properties @@ -13,10 +13,16 @@ spring.messages.encoding=UTF-8 spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid -# database config +#mysql database config +#spring.jpa.database=mysql +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_processor?useUnicode=true&characterEncoding=utf-8&useSSL=false +#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +#spring.datasource.username=xxxx +#spring.datasource.password=yyyy +#h2 database config spring.jpa.database=h2 spring.datasource.url=jdbc:h2:./WeEvent_processor -spring.datasource.driverClassName=org.h2.Driver +spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=root spring.datasource.password=123456 spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource -- Gitee From 6c45e21cd6797b59a40a75ec181f7847a217ffd8 Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Wed, 10 Mar 2021 14:53:48 +0800 Subject: [PATCH 07/10] bug fix: config update --- .../src/main/resources/application-dev.properties | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/weevent-processor/src/main/resources/application-dev.properties b/weevent-processor/src/main/resources/application-dev.properties index e7de06d2..5d6aeff2 100644 --- a/weevent-processor/src/main/resources/application-dev.properties +++ b/weevent-processor/src/main/resources/application-dev.properties @@ -13,10 +13,16 @@ spring.messages.encoding=UTF-8 spring.pid.fail-on-write-error=true spring.pid.file=./logs/${spring.application.name}.pid -# database config +#mysql database config +#spring.jpa.database=mysql +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_broker?useUnicode=true&characterEncoding=utf-8&useSSL=false +#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +#spring.datasource.username=xxxx +#spring.datasource.password=yyyy +#h2 database config spring.jpa.database=h2 -spring.datasource.url=jdbc:h2:./WeEvent_processor -spring.datasource.driverClassName=org.h2.Driver +spring.datasource.url=jdbc:h2:./WeEvent_broker +spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=root spring.datasource.password=123456 spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource -- Gitee From 566ab6ce1f40bab71b8e65b40f83558b84cfb29c Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Wed, 10 Mar 2021 16:05:32 +0800 Subject: [PATCH 08/10] bug fix: install-broker.sh update --- .../modules/broker/install-broker.sh | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/weevent-build/modules/broker/install-broker.sh b/weevent-build/modules/broker/install-broker.sh index c825f5e3..f3b2e950 100644 --- a/weevent-build/modules/broker/install-broker.sh +++ b/weevent-build/modules/broker/install-broker.sh @@ -71,6 +71,46 @@ else fi echo "set lister_port success" +if [[ ${database_type} != "h2" ]];then + switch_database_to_mysql "${application_properties}" + + if [[ -z ${mysql_ip} ]];then + echo "mysql_ip is empty." + echo "set mysql_ip failed" + exit 1 + else + sed -i "s/127.0.0.1:3306/${mysql_ip}:3306/" ${application_properties} + fi + echo "set mysql_ip success" + + if [[ -z ${mysql_port} ]];then + echo "mysql_port is empty." + echo "set mysql_port failed" + exit 1 + else + sed -i "s/3306/${mysql_port}/" ${application_properties} + fi + echo "set mysql_port success" + + if [[ -z ${mysql_user} ]];then + echo "mysql_user is empty." + echo "set mysql_user failed" + exit 1 + else + sed -i "s/xxxx/${mysql_user}/" ${application_properties} + fi + echo "set mysql_user success" + + if [[ -z ${mysql_pwd} ]];then + echo "mysql_pwd is empty" + echo "set mysql_pwd failed" + exit 1 + else + sed -i "s/yyyy/${mysql_pwd}/" ${application_properties} + fi + echo "set mysql_pwd success" +fi + if [[ -n ${zookeeper_connect_string} ]];then sed -i "/spring.cloud.zookeeper.connect-string=/cspring.cloud.zookeeper.connect-string=${zookeeper_connect_string}" ${out_path}/conf/application-prod.properties else @@ -79,4 +119,22 @@ else fi echo "set zookeeper_connect_string success" +# init db, create database and tables +cd ${out_path} +./init-processor.sh +if [[ $? -ne 0 ]];then + + echo "Error,init mysql fail" + exit 1 +fi +echo "init db success" + +function switch_database_to_mysql() { + mysql_config_line=$(cat -n $1|grep 'spring.jpa.database=mysql'|awk '{print $1}'|head -1) + sed -i ''$mysql_config_line','$((mysql_config_line+4))'s/^#//' $1 + + h2_config_line=$(cat -n $1|grep 'spring.jpa.database=h2'|awk '{print $1}'|head -1) + sed -i ''$h2_config_line','$((h2_config_line+4))'s/^/#/' $1 +} + echo "broker module install success" -- Gitee From 4aeb3ead8dfefb38f1f210e6dd302779a610b879 Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Wed, 10 Mar 2021 16:13:17 +0800 Subject: [PATCH 09/10] bug fix: initial/InitialDb.java update --- .../webank/weevent/broker/db/InitialDb.java | 42 +++++++++++-------- .../weevent/governance/initial/InitialDb.java | 42 +++++++++++-------- .../weevent/processor/db/InitialDb.java | 13 ++++-- 3 files changed, 59 insertions(+), 38 deletions(-) diff --git a/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java b/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java index 6a9ad8b0..4ef31154 100644 --- a/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java +++ b/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java @@ -39,26 +39,34 @@ public class InitialDb implements AutoCloseable { } private void createDataBase() throws ClassNotFoundException, IOException, SQLException { - String goalUrl = properties.getProperty("spring.datasource.url"); - this.user = properties.getProperty("spring.datasource.username"); - this.password = properties.getProperty("spring.datasource.password"); - String driverName = properties.getProperty("spring.datasource.driver-class-name"); - boolean flag = driverName.contains("mariadb"); - if (flag) { - databaseType = "mysql"; - } - // first use dbself database - int first = goalUrl.lastIndexOf("/"); - int end = goalUrl.lastIndexOf("?"); - this.dbName = flag ? goalUrl.substring(first + 1, end) : goalUrl.substring(first + 1); - // get mysql default url like jdbc:mysql://127.0.0.1:3306 - String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + try { + String goalUrl = properties.getProperty("spring.datasource.url"); + this.user = properties.getProperty("spring.datasource.username"); + this.password = properties.getProperty("spring.datasource.password"); + String driverName = properties.getProperty("spring.datasource.driver-class-name"); + boolean flag = driverName.contains("mariadb"); + if (flag) { + databaseType = "mysql"; + } + int first = goalUrl.lastIndexOf("/") + 1; + int endTag = goalUrl.indexOf("?"); + if (endTag == -1) { + endTag = goalUrl.length(); + } + this.dbName = goalUrl.substring(first, endTag); + // get mysql default url like jdbc:mysql://127.0.0.1:3306 + String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); + Class.forName(driverName); - Class.forName(driverName); + List tableSqlList = readSql(); - List tableSqlList = readSql(); + runScript(defaultUrl, flag, tableSqlList); + } catch (Exception e) { + log.error("create database error,{}", e.getMessage()); + throw e; + } - runScript(defaultUrl, flag, tableSqlList); } private Properties getProperties() throws IOException { diff --git a/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java b/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java index f5db466d..ed18a053 100644 --- a/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java +++ b/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java @@ -39,26 +39,34 @@ public class InitialDb implements AutoCloseable { } private void createDataBase() throws ClassNotFoundException, IOException, SQLException { - String goalUrl = properties.getProperty("spring.datasource.url"); - this.user = properties.getProperty("spring.datasource.username"); - this.password = properties.getProperty("spring.datasource.password"); - String driverName = properties.getProperty("spring.datasource.driver-class-name"); - boolean flag = driverName.contains("mariadb"); - if (flag) { - databaseType = "mysql"; - } - // first use dbself database - int first = goalUrl.lastIndexOf("/"); - int end = goalUrl.lastIndexOf("?"); - this.dbName = flag ? goalUrl.substring(first + 1, end) : goalUrl.substring(first + 1); - // get mysql default url like jdbc:mysql://127.0.0.1:3306 - String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + try { + String goalUrl = properties.getProperty("spring.datasource.url"); + this.user = properties.getProperty("spring.datasource.username"); + this.password = properties.getProperty("spring.datasource.password"); + String driverName = properties.getProperty("spring.datasource.driver-class-name"); + boolean flag = driverName.contains("mariadb"); + if (flag) { + databaseType = "mysql"; + } + int first = goalUrl.lastIndexOf("/") + 1; + int endTag = goalUrl.indexOf("?"); + if (endTag == -1) { + endTag = goalUrl.length(); + } + this.dbName = goalUrl.substring(first, endTag); + // get mysql default url like jdbc:mysql://127.0.0.1:3306 + String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); + Class.forName(driverName); - Class.forName(driverName); + List tableSqlList = readSql(); - List tableSqlList = readSql(); + runScript(defaultUrl, flag, tableSqlList); + } catch (Exception e) { + log.error("create database error,{}", e.getMessage()); + throw e; + } - runScript(defaultUrl, flag, tableSqlList); } private Properties getProperties() throws IOException { diff --git a/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java b/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java index bd4cda52..74f3f487 100644 --- a/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java +++ b/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java @@ -44,18 +44,23 @@ public class InitialDb implements AutoCloseable { String goalUrl = properties.getProperty("spring.datasource.url"); this.user = properties.getProperty("spring.datasource.username"); this.password = properties.getProperty("spring.datasource.password"); - String driverName = properties.getProperty("spring.datasource.driverClassName"); + String driverName = properties.getProperty("spring.datasource.driver-class-name"); boolean flag = driverName.contains("mariadb"); if (flag) { databaseType = "mysql"; } int first = goalUrl.lastIndexOf("/") + 1; - this.dbName = goalUrl.substring(first); + int endTag = goalUrl.indexOf("?"); + if (endTag == -1) { + endTag = goalUrl.length(); + } + this.dbName = goalUrl.substring(first, endTag); // get mysql default url like jdbc:mysql://127.0.0.1:3306 String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); Class.forName(driverName); - List tableSqlList = readCEPSql(); + List tableSqlList = readSql(); runScript(defaultUrl, flag, tableSqlList); } catch (Exception e) { @@ -74,7 +79,7 @@ public class InitialDb implements AutoCloseable { } - private static List readCEPSql() throws IOException { + private static List readSql() throws IOException { InputStream resourceAsStream = InitialDb.class.getResourceAsStream("/cep_rule_" + databaseType + ".sql"); StringBuffer sqlBuffer = new StringBuffer(); List sqlList = new ArrayList<>(); -- Gitee From 97cdffab8bceecf333d6b148debe513444aa2482 Mon Sep 17 00:00:00 2001 From: yangaobiao <312710721@qq.com> Date: Wed, 10 Mar 2021 16:23:28 +0800 Subject: [PATCH 10/10] bug fix: config code update --- .../webank/weevent/broker/db/InitialDb.java | 46 ++++++++----------- .../modules/broker/install-broker.sh | 2 +- .../weevent/governance/initial/InitialDb.java | 46 ++++++++----------- .../weevent/processor/db/InitialDb.java | 46 ++++++++----------- .../main/resources/application-dev.properties | 4 +- 5 files changed, 63 insertions(+), 81 deletions(-) diff --git a/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java b/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java index 4ef31154..cc754749 100644 --- a/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java +++ b/weevent-broker/src/main/java/com/webank/weevent/broker/db/InitialDb.java @@ -39,34 +39,28 @@ public class InitialDb implements AutoCloseable { } private void createDataBase() throws ClassNotFoundException, IOException, SQLException { - try { - String goalUrl = properties.getProperty("spring.datasource.url"); - this.user = properties.getProperty("spring.datasource.username"); - this.password = properties.getProperty("spring.datasource.password"); - String driverName = properties.getProperty("spring.datasource.driver-class-name"); - boolean flag = driverName.contains("mariadb"); - if (flag) { - databaseType = "mysql"; - } - int first = goalUrl.lastIndexOf("/") + 1; - int endTag = goalUrl.indexOf("?"); - if (endTag == -1) { - endTag = goalUrl.length(); - } - this.dbName = goalUrl.substring(first, endTag); - // get mysql default url like jdbc:mysql://127.0.0.1:3306 - String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; - log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); - Class.forName(driverName); - - List tableSqlList = readSql(); - - runScript(defaultUrl, flag, tableSqlList); - } catch (Exception e) { - log.error("create database error,{}", e.getMessage()); - throw e; + String goalUrl = properties.getProperty("spring.datasource.url"); + this.user = properties.getProperty("spring.datasource.username"); + this.password = properties.getProperty("spring.datasource.password"); + String driverName = properties.getProperty("spring.datasource.driver-class-name"); + boolean flag = driverName.contains("mariadb"); + if (flag) { + databaseType = "mysql"; } + int first = goalUrl.lastIndexOf("/") + 1; + int endTag = goalUrl.indexOf("?"); + if (endTag == -1) { + endTag = goalUrl.length(); + } + this.dbName = goalUrl.substring(first, endTag); + // get mysql default url like jdbc:mysql://127.0.0.1:3306 + String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); + Class.forName(driverName); + + List tableSqlList = readSql(); + runScript(defaultUrl, flag, tableSqlList); } private Properties getProperties() throws IOException { diff --git a/weevent-build/modules/broker/install-broker.sh b/weevent-build/modules/broker/install-broker.sh index f3b2e950..b53c9aa1 100644 --- a/weevent-build/modules/broker/install-broker.sh +++ b/weevent-build/modules/broker/install-broker.sh @@ -121,7 +121,7 @@ echo "set zookeeper_connect_string success" # init db, create database and tables cd ${out_path} -./init-processor.sh +./init-broker.sh if [[ $? -ne 0 ]];then echo "Error,init mysql fail" diff --git a/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java b/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java index ed18a053..11d01c71 100644 --- a/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java +++ b/weevent-governance/src/main/java/com/webank/weevent/governance/initial/InitialDb.java @@ -39,34 +39,28 @@ public class InitialDb implements AutoCloseable { } private void createDataBase() throws ClassNotFoundException, IOException, SQLException { - try { - String goalUrl = properties.getProperty("spring.datasource.url"); - this.user = properties.getProperty("spring.datasource.username"); - this.password = properties.getProperty("spring.datasource.password"); - String driverName = properties.getProperty("spring.datasource.driver-class-name"); - boolean flag = driverName.contains("mariadb"); - if (flag) { - databaseType = "mysql"; - } - int first = goalUrl.lastIndexOf("/") + 1; - int endTag = goalUrl.indexOf("?"); - if (endTag == -1) { - endTag = goalUrl.length(); - } - this.dbName = goalUrl.substring(first, endTag); - // get mysql default url like jdbc:mysql://127.0.0.1:3306 - String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; - log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); - Class.forName(driverName); - - List tableSqlList = readSql(); - - runScript(defaultUrl, flag, tableSqlList); - } catch (Exception e) { - log.error("create database error,{}", e.getMessage()); - throw e; + String goalUrl = properties.getProperty("spring.datasource.url"); + this.user = properties.getProperty("spring.datasource.username"); + this.password = properties.getProperty("spring.datasource.password"); + String driverName = properties.getProperty("spring.datasource.driver-class-name"); + boolean flag = driverName.contains("mariadb"); + if (flag) { + databaseType = "mysql"; } + int first = goalUrl.lastIndexOf("/") + 1; + int endTag = goalUrl.indexOf("?"); + if (endTag == -1) { + endTag = goalUrl.length(); + } + this.dbName = goalUrl.substring(first, endTag); + // get mysql default url like jdbc:mysql://127.0.0.1:3306 + String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); + Class.forName(driverName); + + List tableSqlList = readSql(); + runScript(defaultUrl, flag, tableSqlList); } private Properties getProperties() throws IOException { diff --git a/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java b/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java index 74f3f487..3add6a21 100644 --- a/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java +++ b/weevent-processor/src/main/java/com/webank/weevent/processor/db/InitialDb.java @@ -40,34 +40,28 @@ public class InitialDb implements AutoCloseable { } private void createDataBase() throws Exception { - try { - String goalUrl = properties.getProperty("spring.datasource.url"); - this.user = properties.getProperty("spring.datasource.username"); - this.password = properties.getProperty("spring.datasource.password"); - String driverName = properties.getProperty("spring.datasource.driver-class-name"); - boolean flag = driverName.contains("mariadb"); - if (flag) { - databaseType = "mysql"; - } - int first = goalUrl.lastIndexOf("/") + 1; - int endTag = goalUrl.indexOf("?"); - if (endTag == -1) { - endTag = goalUrl.length(); - } - this.dbName = goalUrl.substring(first, endTag); - // get mysql default url like jdbc:mysql://127.0.0.1:3306 - String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; - log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); - Class.forName(driverName); - - List tableSqlList = readSql(); - - runScript(defaultUrl, flag, tableSqlList); - } catch (Exception e) { - log.error("create database error,{}", e.getMessage()); - throw e; + String goalUrl = properties.getProperty("spring.datasource.url"); + this.user = properties.getProperty("spring.datasource.username"); + this.password = properties.getProperty("spring.datasource.password"); + String driverName = properties.getProperty("spring.datasource.driver-class-name"); + boolean flag = driverName.contains("mariadb"); + if (flag) { + databaseType = "mysql"; } + int first = goalUrl.lastIndexOf("/") + 1; + int endTag = goalUrl.indexOf("?"); + if (endTag == -1) { + endTag = goalUrl.length(); + } + this.dbName = goalUrl.substring(first, endTag); + // get mysql default url like jdbc:mysql://127.0.0.1:3306 + String defaultUrl = flag ? goalUrl.substring(0, first) : goalUrl; + log.info("dbName:{},defaultUrl:{}, {}", this.dbName, defaultUrl, databaseType); + Class.forName(driverName); + + List tableSqlList = readSql(); + runScript(defaultUrl, flag, tableSqlList); } private Properties getProperties() throws Exception { diff --git a/weevent-processor/src/main/resources/application-dev.properties b/weevent-processor/src/main/resources/application-dev.properties index 5d6aeff2..18e16296 100644 --- a/weevent-processor/src/main/resources/application-dev.properties +++ b/weevent-processor/src/main/resources/application-dev.properties @@ -15,13 +15,13 @@ spring.pid.file=./logs/${spring.application.name}.pid #mysql database config #spring.jpa.database=mysql -#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_broker?useUnicode=true&characterEncoding=utf-8&useSSL=false +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/WeEvent_processor?useUnicode=true&characterEncoding=utf-8&useSSL=false #spring.datasource.driver-class-name=org.mariadb.jdbc.Driver #spring.datasource.username=xxxx #spring.datasource.password=yyyy #h2 database config spring.jpa.database=h2 -spring.datasource.url=jdbc:h2:./WeEvent_broker +spring.datasource.url=jdbc:h2:./WeEvent_processor spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=root spring.datasource.password=123456 -- Gitee