diff --git a/.ci/ci_check.sh b/.ci/ci_check.sh new file mode 100755 index 000000000..1c5468009 --- /dev/null +++ b/.ci/ci_check.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -e + +curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/build_chain.sh && chmod u+x build_chain.sh +bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/ci/download_bin.sh) -b dev +echo "127.0.0.1:4 agency1 1,2,3" > ipconf +./build_chain.sh -e bin/fisco-bcos -f ipconf -p 30300,20200,8545 -v 2.0.0 +./nodes/127.0.0.1/start_all.sh +./nodes/127.0.0.1/fisco-bcos -v +cp nodes/127.0.0.1/sdk/* src/integration-test/resources/ +mv src/integration-test/resources/applicationContext-sample.xml src/integration-test/resources/applicationContext.xml +./gradlew verifyGoogleJavaFormat +./gradlew build +./gradlew test +./gradlew integrationTest \ No newline at end of file diff --git a/.ci/ci_check_commit.sh b/.ci/ci_check_commit.sh new file mode 100755 index 000000000..3045fddb6 --- /dev/null +++ b/.ci/ci_check_commit.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +scan_code_script="python ~/cobra/cobra.py -t " + +LOG_ERROR() { + content=${1} + echo -e "\033[31m${content}\033[0m" +} + +LOG_INFO() { + content=${1} + echo -e "\033[32m${content}\033[0m" +} + +execute_cmd() { + command="${1}" + eval ${command} + ret=$? + if [ $ret -ne 0 ];then + LOG_ERROR "FAILED of command: ${command}" + exit 1 + else + LOG_INFO "SUCCESS of command: ${command}" + fi +} + +scan_code() +{ + # Redirect output to stderr. + exec 1>&2 + for file in $(git diff-index --name-status HEAD^ | grep -v .ci | awk '{print $2}'); do + execute_cmd "${scan_code_script} $file -f json -o /tmp/report.json" + trigger_rules=$(jq -r '.' /tmp/report.json | grep 'trigger_rules' | awk '{print $2}' | sed 's/,//g') + echo "trigger_rules is ${trigger_rules}" + rm /tmp/report.json + if [ ${trigger_rules} -ne 0 ]; then + echo "######### ERROR: Scan code failed, please adjust them before commit" + exit 1 + fi + done +} + +install_cobra() { + git clone https://github.com/WhaleShark-Team/cobra.git ~/cobra + pip install -r ~/cobra/requirements.txt + cp ~/cobra/config.template ~/cobra/config +} + +install_cobra +scan_code diff --git a/.travis.yml b/.travis.yml index 96b23cc98..8a26138bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,36 +6,53 @@ branches: matrix: fast_finish: true include: - - os: linux - dist: xenial - sudo: required + - language: python + python: 3.6 + dist: xenial + before_cache: + cache: + before_install: + script: | + bash .ci/ci_check_commit.sh -language: java -jdk: - - openjdk8 + - language: java + jdk: openjdk8 + os: linux + dist: xenial + sudo: required + + - language: java + jdk: openjdk9 + os: linux + dist: xenial + sudo: required + + - language: java + jdk: openjdk10 + os: linux + dist: xenial + sudo: required + + - language: java + jdk: openjdk11 + os: linux + dist: xenial + sudo: required + + # - language: java + # jdk: openjdk11 + # os: osx + # before_install: + # - brew install gradle && gradle wrapper before_cache: - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ - cache: directories: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ - before_install: - gradle wrapper - script: | - curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/build_chain.sh && chmod u+x build_chain.sh - bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/ci/download_bin.sh) -b release-2.0.0 - echo "127.0.0.1:4 agency1 1,2,3" > ipconf - ./build_chain.sh -e bin/fisco-bcos -f ipconf -p 30300,20200,8545 -v 2.0.0 - ./nodes/127.0.0.1/start_all.sh - ./nodes/127.0.0.1/fisco-bcos -v - cp nodes/127.0.0.1/sdk/* src/integration-test/resources/ - mv src/integration-test/resources/applicationContext-sample.xml src/integration-test/resources/applicationContext.xml - ./gradlew verifyGoogleJavaFormat - ./gradlew build - ./gradlew test - ./gradlew integrationTest + bash .ci/ci_check.sh diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/src/main/java/org/fisco/bcos/channel/handler/ChannelConnections.java b/src/main/java/org/fisco/bcos/channel/handler/ChannelConnections.java index 2efc79021..9b271633d 100644 --- a/src/main/java/org/fisco/bcos/channel/handler/ChannelConnections.java +++ b/src/main/java/org/fisco/bcos/channel/handler/ChannelConnections.java @@ -33,7 +33,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLException; - import org.fisco.bcos.channel.protocol.EnumSocketChannelAttributeKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -465,7 +464,9 @@ public void reconnect() { socketChannel.remoteAddress().getAddress().getHostAddress(); int port = socketChannel.remoteAddress().getPort(); - AttributeKey attributeKey = AttributeKey.valueOf(EnumSocketChannelAttributeKey.CHANNEL_CONNECTED_KEY.getKey()); + AttributeKey attributeKey = + AttributeKey.valueOf( + EnumSocketChannelAttributeKey.CHANNEL_CONNECTED_KEY.getKey()); String connectTimePoint = ctx.getValue().channel().attr(attributeKey).get(); String host = hostAddress + ":" + port; diff --git a/src/main/java/org/fisco/bcos/channel/handler/ChannelHandlerContextHelper.java b/src/main/java/org/fisco/bcos/channel/handler/ChannelHandlerContextHelper.java index 9e93d0d88..05d5be58b 100644 --- a/src/main/java/org/fisco/bcos/channel/handler/ChannelHandlerContextHelper.java +++ b/src/main/java/org/fisco/bcos/channel/handler/ChannelHandlerContextHelper.java @@ -20,7 +20,8 @@ public static EnumChannelProtocolVersion getProtocolVersion(ChannelHandlerContex int port = socketChannel.remoteAddress().getPort(); String host = hostAddress + ":" + port; - AttributeKey attributeKey = AttributeKey.valueOf(EnumSocketChannelAttributeKey.CHANNEL_PROTOCOL_KEY.getKey()); + AttributeKey attributeKey = + AttributeKey.valueOf(EnumSocketChannelAttributeKey.CHANNEL_PROTOCOL_KEY.getKey()); if (ctx.channel().hasAttr(attributeKey)) { ChannelProtocol channelProtocol = ctx.channel().attr(attributeKey).get(); diff --git a/src/main/java/org/fisco/bcos/channel/protocol/EnumSocketChannelAttributeKey.java b/src/main/java/org/fisco/bcos/channel/protocol/EnumSocketChannelAttributeKey.java index bebe0b071..a02b1efdf 100644 --- a/src/main/java/org/fisco/bcos/channel/protocol/EnumSocketChannelAttributeKey.java +++ b/src/main/java/org/fisco/bcos/channel/protocol/EnumSocketChannelAttributeKey.java @@ -1,21 +1,20 @@ package org.fisco.bcos.channel.protocol; public enum EnumSocketChannelAttributeKey { - - CHANNEL_PROTOCOL_KEY("CHANNEL_PROTOCOL_KEY"), - CHANNEL_CONNECTED_KEY("CHANNEL_CONNECTED_KEY"); - - private EnumSocketChannelAttributeKey(String key) { - this.key = key; - } - - private String key; + CHANNEL_PROTOCOL_KEY("CHANNEL_PROTOCOL_KEY"), + CHANNEL_CONNECTED_KEY("CHANNEL_CONNECTED_KEY"); - public String getKey() { - return key; - } + private EnumSocketChannelAttributeKey(String key) { + this.key = key; + } - public void setKey(String key) { - this.key = key; - } + private String key; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } } diff --git a/src/main/java/org/fisco/bcos/channel/protocol/parser/HeartBeatParser.java b/src/main/java/org/fisco/bcos/channel/protocol/parser/HeartBeatParser.java index b26505f78..203a2efc6 100644 --- a/src/main/java/org/fisco/bcos/channel/protocol/parser/HeartBeatParser.java +++ b/src/main/java/org/fisco/bcos/channel/protocol/parser/HeartBeatParser.java @@ -38,9 +38,9 @@ public byte[] encode(String value) throws JsonProcessingException { break; case VERSION_1: { - result = value.getBytes(); + result = value.getBytes(); } - break; + break; default: break; } @@ -62,7 +62,7 @@ public BcosHeartbeat decode(String data) break; case VERSION_1: { - bcosHeartbeat.setHeartBeat(Integer.parseInt(data)); + bcosHeartbeat.setHeartBeat(Integer.parseInt(data)); } break; default: diff --git a/src/main/java/org/fisco/bcos/web3j/protocol/core/Request.java b/src/main/java/org/fisco/bcos/web3j/protocol/core/Request.java index 45122a058..821798893 100644 --- a/src/main/java/org/fisco/bcos/web3j/protocol/core/Request.java +++ b/src/main/java/org/fisco/bcos/web3j/protocol/core/Request.java @@ -106,7 +106,7 @@ public CompletableFuture sendAsync() { public Flowable flowable() { return new RemoteCall<>(this::send).flowable(); } - + @JsonIgnore public TransactionSucCallback getCallback() { return callback; diff --git a/src/main/java/org/fisco/bcos/web3j/tx/Contract.java b/src/main/java/org/fisco/bcos/web3j/tx/Contract.java index c083f4427..d347e9ea6 100644 --- a/src/main/java/org/fisco/bcos/web3j/tx/Contract.java +++ b/src/main/java/org/fisco/bcos/web3j/tx/Contract.java @@ -95,8 +95,9 @@ public static TransactionManager getTheTransactionManager( NodeVersion.Version nodeVersion = web3j.getNodeVersion().send().getNodeVersion(); version = nodeVersion.getVersion(); supportedVersion = nodeVersion.getSupportedVersion(); - - if (EnumNodeVersion.BCOS_2_0_0_RC1.getVersion().equals(version) || EnumNodeVersion.BCOS_2_0_0_RC1.getVersion().equals(supportedVersion)) { + + if (EnumNodeVersion.BCOS_2_0_0_RC1.getVersion().equals(version) + || EnumNodeVersion.BCOS_2_0_0_RC1.getVersion().equals(supportedVersion)) { version = EnumNodeVersion.BCOS_2_0_0_RC1.getVersion(); logger.info("fisco-bcos version:{}", version); } else { @@ -406,9 +407,11 @@ protected void asyncExecuteTransaction(Function function, TransactionSucCallback gasProvider.getGasLimit(function.getName()), callback); } catch (IOException e) { - e.printStackTrace(); + // e.print_Stack_Trace(); + logger.error(" IOException, message:{}", e.getMessage()); } catch (TransactionException e) { - e.printStackTrace(); + // e.print_Stack_Trace(); + logger.error(" TransactionException, message:{}", e.getMessage()); } } @@ -423,7 +426,8 @@ protected String createTransactionSeq(Function function) { gasProvider.getGasLimit(function.getName())); return signedTransaction; } catch (IOException e) { - e.printStackTrace(); + // e.print_Stack_Trace(); + logger.error(" IOException, message:{}", e.getMessage()); return ""; } } diff --git a/src/test/java/org/fisco/bcos/channel/test/parallel/parallelok/PerformanceDTCallback.java b/src/test/java/org/fisco/bcos/channel/test/parallel/parallelok/PerformanceDTCallback.java index 969e5379e..ee326291e 100644 --- a/src/test/java/org/fisco/bcos/channel/test/parallel/parallelok/PerformanceDTCallback.java +++ b/src/test/java/org/fisco/bcos/channel/test/parallel/parallelok/PerformanceDTCallback.java @@ -54,8 +54,7 @@ public void setCollector(PerformanceDTCollector collector) { static Logger logger = LoggerFactory.getLogger(PerformanceDTCallback.class); - public PerformanceDTCallback() { - } + public PerformanceDTCallback() {} @Override public void onResponse(TransactionReceipt receipt) { diff --git a/src/test/java/org/fisco/bcos/channel/test/parallel/precompile/PerformanceDTCallback.java b/src/test/java/org/fisco/bcos/channel/test/parallel/precompile/PerformanceDTCallback.java index 9e66666fb..0bacb4f08 100644 --- a/src/test/java/org/fisco/bcos/channel/test/parallel/precompile/PerformanceDTCallback.java +++ b/src/test/java/org/fisco/bcos/channel/test/parallel/precompile/PerformanceDTCallback.java @@ -1,4 +1,5 @@ package org.fisco.bcos.channel.test.parallel.precompile; + import java.math.BigInteger; import org.fisco.bcos.channel.client.TransactionSucCallback; import org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt; @@ -53,8 +54,7 @@ public void setCollector(PerformanceDTCollector collector) { static Logger logger = LoggerFactory.getLogger(PerformanceDTCallback.class); - public PerformanceDTCallback() { - } + public PerformanceDTCallback() {} @Override public void onResponse(TransactionReceipt receipt) {