From 0c218822c904e9c3e26955849400090f07433be0 Mon Sep 17 00:00:00 2001 From: GME Date: Fri, 16 Nov 2018 18:09:37 +0100 Subject: [PATCH] Auto stash before merge of "develop" and "origin/develop" --- src/main/java/Application/App.java | 7 +++ src/main/java/blockchain/utility/Util.java | 2 + .../query/QueryForChannelsTest.java | 45 ++++++++++++++++++ src/test/java/blockchain/query/QueryTest.java | 4 +- .../blockchain/utility/UtilEnrollTest.java | 6 +-- target/classes/Application/App.class | Bin 0 -> 532 bytes target/classes/blockchain/utility/Util.class | Bin 6156 -> 3819 bytes .../query/ChaincodeTransactionTest.class | Bin 6364 -> 6700 bytes .../query/QueryForChannelsTest.class | Bin 0 -> 1476 bytes .../blockchain/query/QueryTest.class | Bin 4634 -> 4638 bytes .../blockchain/utility/UtilEnrollTest.class | Bin 2077 -> 1388 bytes 11 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 src/main/java/Application/App.java create mode 100644 src/test/java/blockchain/query/QueryForChannelsTest.java create mode 100644 target/classes/Application/App.class create mode 100644 target/test-classes/blockchain/query/QueryForChannelsTest.class diff --git a/src/main/java/Application/App.java b/src/main/java/Application/App.java new file mode 100644 index 0000000..9ebf319 --- /dev/null +++ b/src/main/java/Application/App.java @@ -0,0 +1,7 @@ +package Application; + +public class App { + public static void main(String [ ] args){ + System.out.println("Welcome"); + } +} diff --git a/src/main/java/blockchain/utility/Util.java b/src/main/java/blockchain/utility/Util.java index 621e99f..82db643 100644 --- a/src/main/java/blockchain/utility/Util.java +++ b/src/main/java/blockchain/utility/Util.java @@ -97,6 +97,7 @@ public class Util { } } + /* public static CAEnrollement getEnrollement(String keyFolderPath, String keyFileName, String certFolderPath, String certFileName) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException, CryptoException { PrivateKey key = null; String certificate = null; @@ -131,4 +132,5 @@ public class Util { CAEnrollement enrollment = new CAEnrollement(key,certificate); return enrollment; } + */ } diff --git a/src/test/java/blockchain/query/QueryForChannelsTest.java b/src/test/java/blockchain/query/QueryForChannelsTest.java new file mode 100644 index 0000000..e98709a --- /dev/null +++ b/src/test/java/blockchain/query/QueryForChannelsTest.java @@ -0,0 +1,45 @@ +package blockchain.query; + +import blockchain.client.FabricClientWrapper; +import blockchain.configuration.Config; +import blockchain.user.UserContext; +import blockchain.utility.Util; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Logger; +import org.hyperledger.fabric.sdk.Enrollment; +import org.hyperledger.fabric.sdk.Peer; +import org.junit.Test; + +import java.io.File; +import java.util.Set; + +public class QueryForChannelsTest { + private static Logger logger = Logger.getLogger(QueryForChannelsTest.class); + @Test + public void TestAQueryPeerChannels(){ + BasicConfigurator.configure(); + + try{ + //TEST + UserContext admin = new UserContext(); + File pkFolder = new File(Config.ADMIN_KEY_PATH); + File[] pkFile = pkFolder.listFiles(); + File certFolder = new File(Config.ADMIN_CERT_PATH); + File[] certFile = certFolder.listFiles(); + admin.setName(Config.ADMIN); + admin.setMspId(Config.ORG1_MSP); + admin.setAffiliation(Config.ORG1); + //Enrollment enrollAdmin = Util.getEnrollement(Config.ADMIN_KEY_PATH, pkFile[0].getName(), Config.ADMIN_CERT_PATH, certFile[0].getName()); + //admin.setEnrollment(enrollAdmin); + //END TEST + + //FabricClientWrapper fabricClientWrapper = new FabricClientWrapper(admin); + //Peer peer = fabricClientWrapper.getClient().newPeer(Config.ORG1_PEER_0,Config.ORG1_PEER_0_URL); + //Set channels = fabricClientWrapper.getClient().queryChannels(peer); + //logger.info(channels); + + }catch(Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/test/java/blockchain/query/QueryTest.java b/src/test/java/blockchain/query/QueryTest.java index da92875..ad83de3 100644 --- a/src/test/java/blockchain/query/QueryTest.java +++ b/src/test/java/blockchain/query/QueryTest.java @@ -21,8 +21,8 @@ public class QueryTest { public void TestAQueryChannels() { BasicConfigurator.configure(); - UserContext user = Util.readUserContext(Config.ORG1,Config.ADMIN); - //UserContext user = Util.readUserContext(Config.ORG1,"User-org1"); + //UserContext user = Util.readUserContext(Config.ORG1,Config.ADMIN); + UserContext user = Util.readUserContext(Config.ORG1,"User-org1"); try{ diff --git a/src/test/java/blockchain/utility/UtilEnrollTest.java b/src/test/java/blockchain/utility/UtilEnrollTest.java index 63d812b..5954fc0 100644 --- a/src/test/java/blockchain/utility/UtilEnrollTest.java +++ b/src/test/java/blockchain/utility/UtilEnrollTest.java @@ -22,10 +22,10 @@ public class UtilEnrollTest { File certFolder = new File(Config.ADMIN_CERT_PATH); File[] certFile = certFolder.listFiles(); logger.info("----- GET ENROLLEMENT ----"); - Enrollment enrollAdmin = Util.getEnrollement(Config.ADMIN_KEY_PATH, pkFile[0].getName(), Config.ADMIN_CERT_PATH, certFile[0].getName()); + //Enrollment enrollAdmin = Util.getEnrollement(Config.ADMIN_KEY_PATH, pkFile[0].getName(), Config.ADMIN_CERT_PATH, certFile[0].getName()); - logger.info("KEY : "+enrollAdmin.getKey()); - logger.info("CERT : "+enrollAdmin.getCert()); + //logger.info("KEY : "+enrollAdmin.getKey()); + //logger.info("CERT : "+enrollAdmin.getCert()); }catch (Exception e){ diff --git a/target/classes/Application/App.class b/target/classes/Application/App.class new file mode 100644 index 0000000000000000000000000000000000000000..1c1ad9e12a397c2e4f34aa9336186619b8e08d0a GIT binary patch literal 532 zcmZuu%SyvQ6g|^d+8FK2*7u{XstdCbTvP-RTm=;>b>V6nhdL#XlBR;6r3(cYet;h( zo}@ypn8m$w&%JZbxs%VY_YVL^*fUYUatRGIi&!zSiZui41~vo=CpysasX(^9-xJ84 zhxbaL?C3yUPW--#Ze-shQgcFAdOaEGr2YYO@q-=q$bu!U^_<5qcY z=qm#|7Ix91>pwOGDl_e?{!qE`9MpXp$I9pG;e?IG)Tj>aYr2f-RY{+l)KiXmnChcs z$m5EQ_J13qg*+cU`7+=*ii{;zHnU*PAG|?4r)`t5kb+q(@N7*7m={@3Bd z*GMX=+(V(N8b#Tje72B@_jG6SafeHM?r@m_MJS$Y5n_-5hbs(dt~v~H%}qxZS=G1> zUvS+Wip+_8$#umH_hDd$M86hQ^{;DxwUaqu{qOK$mTj7Zc*dz&`X22 zWv4TGrR?;z!#8~E{;K0{Ao@y(@A%%G8;vb0_v+hIovlgfo9%3!Z0S)=hx57KRJuJg z@=x@xa{rxDyEh@X0Ti}TN>E6!2q<=$L`m^Ve0cFa)Lj7qmWz#eWK3=oIO7St&KnX% zd6SjGEE^e``lnLM-QM!QN+xZPscaTe-(nR(`JP>@78K$LE!47xFn6TgT0s$>3BQi@ z1Xa*SWin`-OZZ&9k5W=^-dgJTB$7k*Q^y7<5mqJY*(iHyb&^f8NPsP}R0q??7$%~5 zTeDTOP4kZTdl&wuVS{FSXqvHG3-4hNb~bQpBr?jLDRsWK@jzmW(Kk zyyvNNtfJPabFcEgug+r8-DnaPDHlvAk)1eAn8|a6>G!!|AN}Z~-zJd7BOk#Nc1UOQ zJYlCGC96I5)CrVC#6Q?YlYAB}Menm)7^6-du~GJWN8F>?8}*K+JzFQIEPpX>7^Te9 m;5izLeg0jVCsWN6tw{XDk`aRDJ}F}VU#OQQ+%IH+1OEY1ZOaM( literal 6156 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 diff --git a/target/test-classes/blockchain/query/ChaincodeTransactionTest.class b/target/test-classes/blockchain/query/ChaincodeTransactionTest.class index 3d75b9c6f30d193ef45a664f64285adeb3e3a840..deb57c0aaa353ea3b6dbba888891604cdeb0574a 100644 GIT binary patch delta 1749 zcmZ`)X>^lC6umELGGD(;+mIGY3zSw$Xj-tA6etZ_*|fE_6j9tYw6R-Apb1q#jktk3 z__^SY8&yP>MgoE&;EuQ=E{Gc{ii$fbsFXJ;hxT}mKQi-X=DqvwdvoW@o}!h-k?lt| zZU#_H<8+M1H9D@vbpi`DEYfhjjvH{JhMNR#)}i4R4Y#U!v5qCUO<9J9+cn&w<4)YA zVX20@m3fbbdo|pr%=>jbfCtsEObrjI;bC>~h>l0`m>$7$wCOxNuHy-;(D0<1R|-6( zVU>o}8rGAWX1NYw-p`-r8_u zFfgfeOO^)$zLp7oZz$vo5lW0AOW(}#{$Oo$+#&Zr5ylqt;k;b}A979HM}dz7b_;wg zut(q%flmcK6Zo7qK*AV?xINitIclapj2E5X_rXbm>|Bni@tsK|*>BI%NBB$>LTBueI1 zjSmLHp>T_LR+TT@5UdNOSSiI$cAk3J5s~DeR6%KydQvYz>5_U=hNMjDLr8A&wt5Ta zgd6>Zm5rgWq`uV8PFWn;-;Vi`vMEQ>2{b@bE)5jqlsXNfJV7qPaD$TiWdDEr87!X) zjB2fS_F$ArjKNqzLnNI@1%e7CokUrZil`sKWdzA(ku;Rt(REsz#XL06rS8^{DZQf0 zl3gZqF%2_z*fY%@8XnzmFCjKY7`cwsIPGyv|krf?ijmwQ%m_oBP%t-*y*UEbR&g-)u}c15=kRzl*AR>LCnK^V@>KX8e{BB z-A!YSt!b5Y9)7l9-Rr6}wk&M3fOs6wt3sYh?dGost!2Z62|QZkn`xNHw(NAkBuwTN z;baarsbJF*2219x1Y>s31CbbpZh^ZrDI+O{;^}SBss_g}d@V=VSV2elZ6(C9ThNzr zdc%x9eA1s0vXPD)wg$k7Tz-oKnV=I@7=$yBhx6fr5BX?D1;RKL3s8wge7YE?@ynlr zcGU0_of^SzoQ{1s8wYVNC!E76L+C)5%xH}lvJ@$t>;O(dITw)5Z>ECb%$#@+Lsl_8 zCw4JtHJ9b)Ps0=jwlbAXn99h4Jyu~FQ_`5mLY#@|NMthea2Ds(5ou@Gb2zn)*%aVB z<}I0u6&JvZBqox88K~vN+^=K3wBZoyxHiJY+>u^<)`?Mn9HW6T8u_dY<_@kcNuWuf zS->waQy?G^6qqG2Tc9N(5E2Lr%n@8K=SzpF(;XymNdhiq9CfdA0lTiG!ZzO`Msi*y z0b4spmMROk) z9M@q^oC1*O@NB@SC`Kp>)J=;$`J%3hgIBP$`Wj4>GWh U9aKAG?6e*m@J!s=h8OVSQNY<`?f?J) delta 1543 zcmYk6dti@c6vsd3x9#`5dw-AZXBP{Fxo*O+(IodM+9H%vs@WEs*=GA$=(2RxP4cFD zBuPq%)reB*hA!4s3F)RQMMYQZyqoaPdCqyBbH3+$F7LY{Ye$djEr-`_0J5aJ%c)%D zay8Y4YaC`fTfJ8)aIY`!^TqwXc))*n(B&Z(y45V=VOPasmq%FQ@Th+-H9Y39%;9l|<^IJJe%zBG zR`67UvaJd6EYG>rvc}ie8lDf)m30XS8+`30-~VO9D=t0R7)v&s< zSw5z}w=|d;+-CWNPrY5i9;yA~i29muyd@@k#2&uYyq53y-tq%KT7F`$WuG7RGruSa%YJ?{{BAkOAyf4vS)YBh(cw}OaLw-S&jAw0OOEK(V%$Scn+j7%;osEiLvbXa2a z2!@$q#fW1h)`}}3Bi2e2iL(+fVIi(KuPQHNdZef%Bd4e`Vx_4hge6fUlftN(EX}N> z$O%@OOA8^fxQFjwl2X>FyABw9(81aClW zx2U$#uBJS8Sxndt*X~seDaos>EUXlIdi9}HZ+(1XO-_7zpiO(}AS9>dG_Y#OGIC;Z zVSc1<`goUY=~%O%X|_aVODC@`VWpRnlsi8u#VbfE3a42~moApewOlHRcsrANNjEPs zdAnqI`;v1Cvh`a)m&x^csurWVPFv*wwKDV+|F-iQWR)rb2C57;TqZI|b=&B`V1}qA zoUXwEKR8gOU`_Pykhiee-s*A7aB{oUlDSHqLOSOCy0Fm=aHX_Vw-lmip)ak7qqSOX zRJNrf?Z~9P`gI^zt#j$b1kxxZohb|_!U$$_7IVm9o_Z{2B&!)k9p|u}(d=QI=Bl82 zKjj=?nyyl11Mj(-CXU?6r=Um5MdT$7)z`YnW_ZO(`K&LW{%^0EvHTkx`6T3+Nc8xdLb8SI&I34hJ|$N zCvdU$-1oe&g^eAnf}4pn3f{_tCumoI|V0>Rd~&T6!Owwxa0M7)2X<+{8mn zr>X%)ck2kuv305Cloc9uY+b6+t{uNGGyQ1o-mIg`mfAo8ViU60(x-+jpMq%1|6jNy v9nTeN1-O!5^-NH0k^Wo{&|Er8S2>yHI-bTZu2kP=Sf${3z>EI@^=L26 diff --git a/target/test-classes/blockchain/query/QueryForChannelsTest.class b/target/test-classes/blockchain/query/QueryForChannelsTest.class new file mode 100644 index 0000000000000000000000000000000000000000..d9e78fe5132288bb2721eb42788500cb3116b1b2 GIT binary patch literal 1476 zcmZ`(Z&MRT9DX)`xXXDc1OY*<#g+<$dIhPqK(Qe;s7(M3Wya~N<5-5oe)#L{djLz=u`q^33-_>O;A;z6EE>3P z;2RSUEadU6T9!?$n3z)DRTJN-ea*x}wSRA*Y+)Gd1}YYQz@q|2P&Ke2Fc3t|ri=w9 zYEj&D+_vi-N{7a!Bd4ZaD-2roLqA;;$j;2}3gjx$z7)7p^Fz7WY3<2)$K4BPDb^y- z4R+nwSNf?jmmd0wz@6G&5P8Smq3egvFC7`ba-ONR8pV}EHwLfCDe&SMz!c@Lg1hqepwefg3iRM=w3uPW>okxxq&2ddGFQt(zsyB=UJDO#PPJ^%I{g zl*2GeT@_9ehBV1X9kS`1c5AMB!6~~|BkIJS?BSdEKX&e_Zfs0o(!gUIPcSKPy^q)P zWC+;({R`ac3-+S$z;AY94bCBb)C9&`N!uwaq7{zBIhL=IG>WA<^{I^?QDckeV)VTz z!V(*GJQXmu;^soVv29~hsX30;f{iUDk7z*uCDO*W>SVeP+{Y)xz%v`q(XcU&Yozqw zdRu!((n|$yUzp@|H}Sn*hpOL*lTkQpU)}CZ-}N@q*bkd4YS0UTpQM@wf#I3i3ln1` zGTn4rtYA{AC+#Qu965^Rg9AVCHL;wuHVdYDP26Pq$Uljr+URRT9j zR%So?NHN7HJ;vWcz*59e%2MW}aJ^2=;V!u6=T0DAQ^?>3*8y!D!cEF{F94t57BzuS znViwdf3Vm9Z5wZpd57$a6Xa^|kbhA$PGHvOyC`gG)uOtbo5<0yoG%qGbzzr^gI!!M z6|ZzL^c&1tsf*%k7U%DTGXJEkhH)Q*EPs{SHC!UzG4Tdw|C4ialNeeYd4sFJV^q;8`sf^{_7!azEc^{jz*_YH literal 0 HcmV?d00001 diff --git a/target/test-classes/blockchain/query/QueryTest.class b/target/test-classes/blockchain/query/QueryTest.class index f0e4fddcda5355b4d746a8b21144d31ca459e955..bb3dde58eafcf4095b8b7237f0ba0103b481ad96 100644 GIT binary patch delta 30 lcmbQGGEZfL11lG2XmM(hZhld^;bu2h1#U*k&FKQ083B?f2=4#@ delta 26 hcmbQIGD~HH11lSAVoGji-exaW1#U)(&DjE*83AqM2eJSF diff --git a/target/test-classes/blockchain/utility/UtilEnrollTest.class b/target/test-classes/blockchain/utility/UtilEnrollTest.class index d94a6a3c09858c4acbe00bad26df029101af45b1..12bd5ce2cccc6e663ab30b2dab343a0340dbe29a 100644 GIT binary patch delta 506 zcmYk2yH8Y65XOJ!-raldUaq)2c7X+1koWRl0c8c_bEX2IxwcGR7!yIp7-m>UUy=k}UHwR1P4Xy6bZ_2#e{qQknnH6{7U%0FE#!j6! z1VfZa3HidBAlsy9RNly^OFuEk0v^q>K{Z)Ji*Wp(K!H|8hBh^O)#h`FrInj;--7bz z?}TfEKd3zx$EVDs?)0l_Bh-kMRn#EVsPQ?e<>{76NsKa`Vi%dBgNm}r)H&^t1fbe)0w8-WMdtmz47uyaCgsG=l&D literal 2077 zcma)7>r&fB6#f?5NVXLq210?PF}bvuK-ALo5}-83HKfIu6g#vu=|z?ovsjiKNzRlP z$PE3_JVt+~oiVhT=>znI`mfWok_jd*(@HbDdoFt}-`TVK=ik5o0pJdvBya_H6Ij4v z9G9`A;^PFC@ri!lPWl-VQm|(kaUL`_4kCwaJ^8m9J6lj8N$|E zzOaOUpg*KJZ@Z3VmAU7Wr(ro~*SH^Yd4tz`~?10v8&^1x-b+7LFw+d<-c2Tkr;yh>Q;yGF$ortVeidKiX`f?P53 zG8#Iu47;Z1e=vE|7miJ`3nkw$>l;Qh$ePe5M7LVDFB*JXc!J=_+P32xQk~Ek3Y_k@ z2v)t5y1Haq9heg(r{$VF%xm~8NVjGF8q%0ju%qE?Olf!%S1GbN`K3$c>{dBl&X>w* zNh^4y;W55p(7J(RxY|_?)3J9&t>p&M>A8Sn7;AV4mh0UDOopX%N_#L|uc03WJi%Q?^o}A<5xWL$8XX!NwHBWLLi3$4{cK!9kN@ z>Kv8R6H0|U^{`pl=O&%bYdwv#VtB#~VU(acbZ+A(7|V2fHiVr~@I#~me%unC9~6n<;&i5`5tJJDi$;T7k4$H}Om|FBMCW8q{YG2Q^rGmFtz)3q z`>N_DcbVA8Rjv9h4s3sk4Ke#8#u3=I&;v_pM{cLxN zIm__8#mu=^GN$O2xI#|{Lqc{xts=ChOM%8~MCmj$nqxCZU@vIVhwC)<2h1dH&{_)> za1(D4MfV_W?vtC@J;X>8cz%q&Ul2(}+lakH|4vFhLcDORjl@PkCW$Q05xEeRY8t7f z)Y-^<8y8Z^@o2C(#=t_1q%SeJbA+MP#WqsovEMMv(8fp`qqM0@e5oTIlj2k;{u!!t zI{t!!jNlm#=^cv%=`3J?!W<%M7)gv^l>P}^qV&cvLt66~rzdg}HA3qdrFTe3{YWVN zL>dx;`%q}d6HFsRwkPOHnZYdr;RY(0C0>N+$Cx8tlysMIn{bVhg(%*^y8(R9JMhhu zwK)3z!l8oqqV%GNSieuRiVt3uMV3c?@zlgICVxdlmWJL&8pG1aqI^hHA3pjA=Xwu)