diff --git a/fabric-chaincode-integration-test/build.gradle b/fabric-chaincode-integration-test/build.gradle index 9e6ba9111..9d47ffb1f 100644 --- a/fabric-chaincode-integration-test/build.gradle +++ b/fabric-chaincode-integration-test/build.gradle @@ -1,6 +1,5 @@ dependencies { implementation project(':fabric-chaincode-docker') - testImplementation 'org.hyperledger.fabric-sdk-java:fabric-sdk-java:1.4.4' implementation project(':fabric-chaincode-shim') implementation group: 'org.json', name: 'json', version: '20180813' } diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/contractinstall/ContractInstallTest.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/contractinstall/ContractInstallTest.java index 3c9cd58b1..d8a0c3100 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/contractinstall/ContractInstallTest.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/contractinstall/ContractInstallTest.java @@ -28,15 +28,15 @@ public static void setUp() throws Exception { public void TestInstall(){ InvokeHelper helper = InvokeHelper.newHelper("baregradlecc","sachannel"); - String text = helper.invoke("org1",new String[]{"whoami"}); + String text = helper.invoke("org1", "whoami"); assertThat(text, containsString("BareGradle")); helper = InvokeHelper.newHelper("baremaven","sachannel"); - text = helper.invoke("org1",new String[]{"whoami"}); + text = helper.invoke("org1", "whoami"); assertThat(text, containsString("BareMaven")); helper = InvokeHelper.newHelper("wrappermaven","sachannel"); - text = helper.invoke("org1",new String[]{"whoami"}); + text = helper.invoke("org1", "whoami"); assertThat(text, containsString("WrapperMaven")); } diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/ledgertests/LedgerIntegrationTest.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/ledgertests/LedgerIntegrationTest.java index c20bd27a4..6b9ed0020 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/ledgertests/LedgerIntegrationTest.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/ledgertests/LedgerIntegrationTest.java @@ -29,7 +29,7 @@ public static void setUp() throws Exception { public void TestLedgers(){ InvokeHelper helper = InvokeHelper.newHelper("ledgercc","sachannel"); - String text = helper.invoke("org1",new String[]{"accessLedgers"}); + String text = helper.invoke("org1", "accessLedgers"); assertThat(text, containsString("success")); } diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SACCIntegrationTest.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SACCIntegrationTest.java index a7e2ca31b..f9cae0c30 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SACCIntegrationTest.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SACCIntegrationTest.java @@ -28,17 +28,17 @@ public static void setUp() throws Exception { public void TestLedger(){ InvokeHelper helper = InvokeHelper.newHelper("shimcc", "sachannel"); - String text = helper.invoke("org1",new String[]{"putBulkStates"}); + String text = helper.invoke("org1", "putBulkStates"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[]{"getByRange","key120","key170"}); + text = helper.invoke("org1", "getByRange","key120","key170"); assertThat(text, containsString("50")); - text = helper.invoke("org1",new String[]{"getByRangePaged","key120","key170","10",""}); + text = helper.invoke("org1", "getByRangePaged","key120","key170","10",""); System.out.println(text); assertThat(text, containsString("key130")); - text = helper.invoke("org1",new String[]{"getMetricsProviderName"}); + text = helper.invoke("org1", "getMetricsProviderName"); System.out.println(text); assertThat(text, containsString("org.hyperledger.fabric.metrics.impl.DefaultProvider")); } diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SBECCIntegrationTest.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SBECCIntegrationTest.java index f125d7db2..d93c3fafa 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SBECCIntegrationTest.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/shimtests/SBECCIntegrationTest.java @@ -9,15 +9,8 @@ import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertThat; -import java.io.IOException; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.spec.InvalidKeySpecException; - import org.hyperleder.fabric.shim.integration.util.FabricState; import org.hyperleder.fabric.shim.integration.util.InvokeHelper; -import org.hyperledger.fabric.sdk.exception.InvalidArgumentException; -import org.hyperledger.fabric.sdk.exception.ProposalException; import org.junit.BeforeClass; import org.junit.Test; @@ -31,134 +24,132 @@ public static void setUp() throws Exception { } @Test - public void RunSBE_pub_setget() throws NoSuchAlgorithmException, InvalidKeySpecException, NoSuchProviderException, - IOException, ProposalException, InvalidArgumentException { + public void RunSBE_pub_setget() { final String mode = "pub"; final InvokeHelper helper = InvokeHelper.newHelper("shimcc", "sachannel"); String text; - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "foo"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "foo"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("foo")); - text = helper.invoke("org1",new String[] {"EndorsementCC:addorgs", mode, "org1MSP"}); + text = helper.invoke("org1", "EndorsementCC:addorgs", mode, "org1MSP"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:listorgs", mode}); + text = helper.invoke("org1", "EndorsementCC:listorgs", mode); assertThat(text, containsString("org1MSP")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val1"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val1"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val1")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val2"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val2"); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val2")); - text = helper.invoke("org1",new String[] {"EndorsementCC:addorgs", mode, "org2MSP"}); + text = helper.invoke("org1", "EndorsementCC:addorgs", mode, "org2MSP"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:listorgs", mode}); + text = helper.invoke("org1", "EndorsementCC:listorgs", mode); assertThat(text, containsString("org2MSP")); assertThat(text, containsString("org1MSP")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val3"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val3"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val3")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val4"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val4"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val4")); - text = helper.invoke("org1",new String[] {"EndorsementCC:delorgs", mode, "org1MSP"}); + text = helper.invoke("org1", "EndorsementCC:delorgs", mode, "org1MSP"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:listorgs", mode}); + text = helper.invoke("org1", "EndorsementCC:listorgs", mode); assertThat(text, containsString("org2MSP")); assertThat(text, not(containsString("org1MSP"))); - text = helper.invoke("org1",new String[] {"EndorsementCC:deleteval", mode}); + text = helper.invoke("org1", "EndorsementCC:deleteval", mode); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:recordExists", mode}); + text = helper.invoke("org1", "EndorsementCC:recordExists", mode); assertThat(text, containsString("false")); } @Test - public void RunSBE_priv() throws NoSuchAlgorithmException, InvalidKeySpecException, NoSuchProviderException, - IOException, ProposalException, InvalidArgumentException { + public void RunSBE_priv() { final String mode = "priv"; final InvokeHelper helper = InvokeHelper.newHelper("shimcc", "sachannel"); String text; - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "foo"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "foo"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("foo")); - text = helper.invoke("org1",new String[] {"EndorsementCC:addorgs", mode, "org1MSP"}); + text = helper.invoke("org1", "EndorsementCC:addorgs", mode, "org1MSP"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:listorgs", mode}); + text = helper.invoke("org1", "EndorsementCC:listorgs", mode); assertThat(text, containsString("org1MSP")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val1"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val1"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val1")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val2"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val2"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val2")); - text = helper.invoke("org1",new String[] {"EndorsementCC:addorgs", mode, "org2MSP"}); + text = helper.invoke("org1", "EndorsementCC:addorgs", mode, "org2MSP"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:listorgs", mode}); + text = helper.invoke("org1", "EndorsementCC:listorgs", mode); assertThat(text, containsString("org2MSP")); assertThat(text, containsString("org1MSP")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val3"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val3"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val3")); - text = helper.invoke("org1",new String[] {"EndorsementCC:setval", mode, "val4"}); + text = helper.invoke("org1", "EndorsementCC:setval", mode, "val4"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:getval", mode}); + text = helper.invoke("org1", "EndorsementCC:getval", mode); assertThat(text, containsString("val4")); - text = helper.invoke("org1",new String[] {"EndorsementCC:delorgs", mode, "org1MSP"}); + text = helper.invoke("org1", "EndorsementCC:delorgs", mode, "org1MSP"); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:listorgs", mode}); + text = helper.invoke("org1", "EndorsementCC:listorgs", mode); assertThat(text, containsString("org2MSP")); assertThat(text, not(containsString("org1MSP"))); - text = helper.invoke("org1",new String[] {"EndorsementCC:deleteval", mode}); + text = helper.invoke("org1", "EndorsementCC:deleteval", mode); assertThat(text, containsString("success")); - text = helper.invoke("org1",new String[] {"EndorsementCC:recordExists", mode}); + text = helper.invoke("org1", "EndorsementCC:recordExists", mode); assertThat(text, containsString("false")); } diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Bash.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Bash.java index 1ebc87347..b135a48b5 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Bash.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Bash.java @@ -14,7 +14,7 @@ * * */ -public class Bash extends Command { +public final class Bash extends Command { public static BashBuilder newBuilder(){ return new BashBuilder(); diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Command.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Command.java index d6a7d1f5d..a18a282ec 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Command.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Command.java @@ -7,13 +7,13 @@ package org.hyperleder.fabric.shim.integration.util; import java.io.BufferedReader; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintStream; import java.lang.ProcessBuilder.Redirect; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -22,25 +22,21 @@ public class Command { - protected List cmd; - protected Map env; + protected final List cmd; + protected final Map env = new HashMap<>(); Command(List cmd, Map additionalEnv){ this.cmd = cmd; - // this.env = new HashMap(System.getenv()); - this.env = new HashMap(); this.env.putAll(additionalEnv); } Command(List cmd) { - this.cmd = cmd; - this.env = new HashMap(); - // this.env = new HashMap(System.getenv()); + this(cmd, Collections.emptyMap()); } - public class Result { - public ArrayList stdout; - public ArrayList stderr; + public static final class Result { + public List stdout; + public List stderr; public int exitcode; } @@ -62,7 +58,7 @@ public Result run(boolean quiet) { processBuilder.environment().putAll(env); final Result result = new Result(); - System.out.println("Running:" + this.toString()); + System.out.println("Running:" + this); try { processBuilder.redirectInput(Redirect.INHERIT); @@ -103,7 +99,7 @@ public Result run(boolean quiet) { CompletableFuture> readOutStream(InputStream is, PrintStream stream) { return CompletableFuture.supplyAsync(() -> { try (InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr);) { - ArrayList res = new ArrayList(); + ArrayList res = new ArrayList<>(); String inputLine; while ((inputLine = br.readLine()) != null) { if (stream!=null) stream.println(inputLine); @@ -121,6 +117,7 @@ public String toString() { } static public class Builder implements Cloneable { + @SuppressWarnings("unchecked") public Builder duplicate() { try { return (Builder) this.clone(); diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/CommandSingleton.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/CommandSingleton.java deleted file mode 100644 index 5adfb2a06..000000000 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/CommandSingleton.java +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright 2020 IBM Corp. All Rights Reserved. - -SPDX-License-Identifier: Apache-2.0 -*/ -package org.hyperleder.fabric.shim.integration.util; - -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.concurrent.Semaphore; - -import org.hyperleder.fabric.shim.integration.util.Docker.DockerBuilder; -import org.hyperleder.fabric.shim.integration.util.DockerCompose.DockerComposeBuilder; - -/** Utility class to run the setup script once */ -public class CommandSingleton { - - private static boolean done = false; - - private static Semaphore flag = new Semaphore(1); - - public static void setup() { - - try { - // things have not been setup up yet - flag.acquire(); - if (done) { - flag.release(); - return; - } - // get current working directory for debug and reference purposes only - Path currentRelativePath = Paths.get(""); - String s = currentRelativePath.toAbsolutePath().toString(); - - // create the docker-compose command - DockerComposeBuilder composebuilder = DockerCompose.newBuilder() - .file("src/test/resources/first-network/docker-compose-cli.yaml"); - - // close down anything running... - composebuilder.duplicate().down().build().run(); - - // ...and bring up - DockerCompose compose = composebuilder.up().detach().build(); - compose.run(); - - // the cli container contains a script that does the channel create, joing - // and chaincode install/instantiate - DockerBuilder dockerBuilder = new Docker.DockerBuilder(); - Docker docker = dockerBuilder.exec().container("cli").script("./scripts/script.sh").build(); - docker.run(); - done = true; - flag.release(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } -} \ No newline at end of file diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Docker.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Docker.java index 769eedcbb..f500d3330 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Docker.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Docker.java @@ -12,13 +12,13 @@ * * */ -public class Docker extends Command { +public final class Docker extends Command { public static DockerBuilder newBuilder(){ return new DockerBuilder(); } - static public class DockerBuilder implements Cloneable { + public static final class DockerBuilder implements Cloneable { boolean exec; String container; String script; diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/DockerCompose.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/DockerCompose.java index d841e0150..3beaac556 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/DockerCompose.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/DockerCompose.java @@ -12,13 +12,13 @@ * * */ -public class DockerCompose extends Command { +public final class DockerCompose extends Command { public static DockerComposeBuilder newBuilder(){ return new DockerComposeBuilder(); } - static public class DockerComposeBuilder extends Command.Builder{ + public static final class DockerComposeBuilder extends Command.Builder{ String composeFile; boolean up = true; diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/FabricState.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/FabricState.java index 0954ca470..59909a2a1 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/FabricState.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/FabricState.java @@ -11,18 +11,16 @@ import java.util.Map; import java.util.concurrent.Semaphore; -import org.hyperleder.fabric.shim.integration.util.Docker.DockerBuilder; -import org.hyperleder.fabric.shim.integration.util.DockerCompose.DockerComposeBuilder; import org.hyperleder.fabric.shim.integration.util.Bash.BashBuilder; -public class FabricState { +public final class FabricState { private static FabricState state; - private static Map channelStarted = new HashMap<>(); + private static final Map channelStarted = new HashMap<>(); // sempaphore to protect access - private static Semaphore flag = new Semaphore(1); + private static final Semaphore flag = new Semaphore(1); public static FabricState getState() { if (state == null) { @@ -49,7 +47,7 @@ public Map orgEnv(String org) { Path currentRelativePath = Paths.get(""); String s = currentRelativePath.toAbsolutePath().toString(); - Map env = new HashMap(); + Map env = new HashMap<>(); env.put("CORE_PEER_MSPCONFIGPATH", Paths.get(s, "src/test/resources/_cfg/_msp/" + org, org + "admin/msp").toString()); diff --git a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Peer.java b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Peer.java index 59290fbb0..99c19111c 100644 --- a/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Peer.java +++ b/fabric-chaincode-integration-test/src/test/java/org/hyperleder/fabric/shim/integration/util/Peer.java @@ -17,13 +17,13 @@ * * */ -public class Peer extends Command { +public final class Peer extends Command { public static PeerBuilder newBuilder(){ return new PeerBuilder(); } - static public class PeerBuilder extends Command.Builder { + public static final class PeerBuilder extends Command.Builder { String tlsArgs; String orderer; String channel; @@ -78,7 +78,7 @@ public PeerBuilder argsTx(List args){ return this; } - public PeerBuilder argsTx(String argsArray[]){ + public PeerBuilder argsTx(String[] argsArray){ this.args = Arrays.asList(argsArray); return this; }