From 174d194e529baec610b1c19bd1b09defddc5c2e8 Mon Sep 17 00:00:00 2001 From: Mark Murphy Date: Mon, 27 Aug 2012 09:44:22 -0400 Subject: [PATCH] command line "server" for sending GCM messages --- Push/GCMCommand/.classpath | 8 ++ Push/GCMCommand/.project | 17 +++ Push/GCMCommand/dist/gcm-cmd.jar | Bin 0 -> 4330 bytes Push/GCMCommand/gcm | 2 + Push/GCMCommand/gcm.jardesc | 19 +++ Push/GCMCommand/libs/commons-cli-1.2.jar | Bin 0 -> 41123 bytes Push/GCMCommand/libs/gcm-server.jar | Bin 0 -> 19718 bytes Push/GCMCommand/libs/json_simple-1.1.jar | Bin 0 -> 16046 bytes .../com/commonsware/android/gcm/cmd/GCM.java | 126 ++++++++++++++++++ 9 files changed, 172 insertions(+) create mode 100644 Push/GCMCommand/.classpath create mode 100644 Push/GCMCommand/.project create mode 100644 Push/GCMCommand/dist/gcm-cmd.jar create mode 100755 Push/GCMCommand/gcm create mode 100644 Push/GCMCommand/gcm.jardesc create mode 100644 Push/GCMCommand/libs/commons-cli-1.2.jar create mode 100644 Push/GCMCommand/libs/gcm-server.jar create mode 100644 Push/GCMCommand/libs/json_simple-1.1.jar create mode 100644 Push/GCMCommand/src/com/commonsware/android/gcm/cmd/GCM.java diff --git a/Push/GCMCommand/.classpath b/Push/GCMCommand/.classpath new file mode 100644 index 000000000..bbbad2cd3 --- /dev/null +++ b/Push/GCMCommand/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Push/GCMCommand/.project b/Push/GCMCommand/.project new file mode 100644 index 000000000..920aa8961 --- /dev/null +++ b/Push/GCMCommand/.project @@ -0,0 +1,17 @@ + + + GCMCommand + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Push/GCMCommand/dist/gcm-cmd.jar b/Push/GCMCommand/dist/gcm-cmd.jar new file mode 100644 index 0000000000000000000000000000000000000000..e73447a564dec0a73fe0f9ce6a4efb8c89212481 GIT binary patch literal 4330 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 literal 0 HcmV?d00001 diff --git a/Push/GCMCommand/gcm b/Push/GCMCommand/gcm new file mode 100755 index 000000000..fe33eac55 --- /dev/null +++ b/Push/GCMCommand/gcm @@ -0,0 +1,2 @@ +#!/bin/bash +java -cp libs/commons-cli-1.2.jar:libs/gcm-server.jar:libs/json_simple-1.1.jar:dist/gcm-cmd.jar com.commonsware.android.gcm.cmd.GCM "$@" diff --git a/Push/GCMCommand/gcm.jardesc b/Push/GCMCommand/gcm.jardesc new file mode 100644 index 000000000..8b4b3eb44 --- /dev/null +++ b/Push/GCMCommand/gcm.jardesc @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Push/GCMCommand/libs/commons-cli-1.2.jar b/Push/GCMCommand/libs/commons-cli-1.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..ce4b9fffe40c41669797cd806ac989471b2acd84 GIT binary patch literal 41123 zcma&N1GFx|k|lg>+qP}nwr$(CZQHi)v2EMNy~mjQx?j({e*fRIrq(Ka--=w7mARuT zV#iJeXH`8_d9c8AS zZ|Bfu13|O+x-(~ncU;|}aLXkX2xm=p?%+!#rGcRMKK8AL$(Ci>s9TMMt;2)Lm6yfM zwp9ukRyQI|XJx~~x~kH7hPg$5iWdr~N+bXt2I;ftZXdxz1C)$nOXGye1XNRam*AlYpw%~6 zjgep1+?D$DHOtW4swgDIn>40|HwCe5QT3w>CQiJ0F~#FAXk$NJZOl(R>B&g1gy!`?H3kd)K=l=$nzhD5ccQXIqSo!~2K>yRi(818y!u0=Q zi2UCTjqPo1?d_cZrNPC&-5dS?zk#uh<^OI3@gE&#DDl3xfd>H4qxm=J%18=}$|;M| zxp=tjXlXldjiUO^)vr61DO-Y-U8U2%e0=FFvN;>K(_`;W_I?7P@9OV;^`J$sqoNRwW*UwDnTaazb zvBg@XUJnD1HmC{(Zy&$v?mjP@|jqM;?AeV~4#Y<>W7fK@`wE#2=Fz>|x zhW7w%b?RZoaA_!`3~8bAv5>d`k`LaC(*>Q9T52nMO8N{ost?DVI)FVptZgh2=il5F z7$&I}3kS!a=}E!F9f^eYosgc<+W^`&ACRsHxqaOW#fYIG<-pBU_M0Seby1*k{=>oHUo=l^7KipFH?h@TAfkuQOt8dj?TpiRa=|T(w6F3H9v{% z7P6#<7D!B09U5*Y%}A65kfLT`iWX`|cLw5Tmxu6%rWV5XQ=n?_o#H_}89xOOAAhZG zEiB&cr-_-~J2tY{0`6?U0@`%^@@cwmEiQBrWFCo0qo1e;Si_ixBxD07v{|AuB~c887iEM{~B12 zCogCSrNCa3yA!9shwzhZ0eS=~sGJNJ2yh>I%f% zKY*~eq4dy5);wV_uqA{Bwe5|7<_Pdgv4!Uz5(;pGaMp{Er+e2Mn2k@6iQUjAqt>CU z#_x}Umnsn4zUBaOh<{?cFMml|2NQgVbvf^eQ)(RKWq2p_!l-tjc0xZL^edmz1q0i! z0ki@zDN}{d(uq`rDSPlFLeW@XzlRj@U_aY94mC_wh9e5Cp*Lh+Qc&t=>RrLTcDj60 z=7Hl-m0$dYFn0R1I%M(ONBq!drLiJ~`=tD5QK_Ur_Z*|Psftqo&jo+N0XqUMCRwiS zl8HkX7-2&zO@$G@rQGG4Ny&rnb%+ z;u{9Hy>Fmq0=6!xaA7W3dQ#~1U6i@B;&7c0{44zhNJIs;&Ne_Ph^6L4l*%~nc7ay9 zFvs$?q9G(@rPw?9`j^IAMy*I)Dt7O0$|9 zFk+cG>;r_jV=tXJGnd4!+Gae2FI!`=KxfL*R$K$V5TdV07%z4tgjzG|x^@(g`dRZ5 z3g6+{!#W`_zoe%VFcDvycy<&nMYAG;yZ|ODAty!dU2@WV<(_y%K3F>~?0WVTE7C5_ z7e+*1Ry2O1+CiKB;RA3p(p6$~b^J>6j7*vtClz%?5)pHP00dxe$d_jHXGghaVc^CSzCph_NJbl2Qby_yLQ-bV+`=T}|K1%{O_%aa!{>sz7pCMS` zc2H`9F|U{-nEzz*p&mjpEhnB z4MdO=wb+i$!Pl;GTCy9O+5-9W3lz9k`gyPDw@8}?OO*PEfZqX$B5Lweap)nyj^S6; zv=wtC_EkB1M)7qJt#)*2tnd8KLU0LC##~&c^V({HcBJ1j1ZUVU(JBo@?QNr-=q3z2 zVwPgZ@}HPI^rFNscFVwct%}-oKn9HkK8GOU6|Xq`in0bHx%REeIZT{q2yv*N3rNbK zj4~r-i5L{h7Gl0-A!5WQ8T6iks*bMxD57_v8i{lWZBTtM1L(ETiw*KM7*Ktg(cG!> zVW%yw)bNlSaf%QQ3gC9k1I6YVc%2}Y#5Qa|D*Iu}n*P%Vf$#Dpl+RNxGM}ENDRR<9eTAY7kcL=|8aa5FiIc`b% z%9*g9w@ths_sJA3uZtV}&kEy45Q3fs-7(0wdAn@9Lpm@PDUh{aXfcHwb1r60+nQB@ zNi+~WoL2{x-2t$0@#(fW>@t9g`eCG38t)f$324-yJe3m@A)yusOSAd0;|XTZonb0p z(=)J(%@YJCRl^`?RWNzTvXYr+;VK;-B;}<4EL*IQ2C4o2W&b(9(!4VB^*HkfCh5+R zz}tB9jW@x`{Ns2dRj@x(hO?38jT#wMOCFLh1@%t`<@vH^GZBSk&XbuDPX!{=z2G^- z$k{q8vh(hs`Hj>77!wvLZkzI3$}YX+2GlSFn=kHiir|>Zl}VwbN~gK&DNM)+&zSl;|)C-t-jS9Xg6e7eqz=kHlyc+#|Lil+$+?n${ z1977QQr7$juDfA`e!1D~r|fZ{_65grFdh+W{kTHe@lt1o6bXF$Y?-HIVDeU#Bx+m@w)uoeDPtU&aprm@jw=vy zxR3Nq+%L#|J=R76cJw>$ilVrjGCad#CF2iiq-N+Ojy(>X=5d>h)Y!&699`0~cy2s+ zr;JP6$BQTbr7X`ZQ7bdRA)<^fwS(uxwfgCR=))V>mGszyGMFVd=^NZMM5UQn1-P6l z6nzjwEEBp1Y{u?=KuQh9HWBUf3yOPqKH&;t<@l;;g1i8Btl_HK7N2^TZSU9a0DfQ; zFrY&OG-f;7~2(CAb({SN=uvp=e z61J79J@Fg+_=W=Rd&o2wCrT8*rNcigR={dtyNZK=z0^iafytZ6Z#Ls)`|SF#vnc>= z%lfB>QruR#_ls?4_yPVwx^Rq;MOE3r>M6NY>*x=Me5Tt^BA z9HX=NV~?gHo#`FxKoj`2Yet-Sk@;y>r(79s!%x2C+3)T~!bf&?j9h>9=tXCDe`h$(%*ZK8)zj?XpN95Pv?S6u2(fMigY483B5&m}b{MDuRbOj7ef8^!}4(I)2 z=SXh1x3{xfQ{TDyXloeE4qf06pKaCUT9A!-3srsql-FF=j&;F_+Yxp?C{FQ>bZGXZ zl*h&eo&yn&y|2YBOUv7wEkK2rzP`b{o@LU4?Ov>$X(0MML7LTx~2!{ zT%J7vj|RBU%3>XoOQ<|IR%=ie4P-tc9)_#cmZhOyNf+&*tve&e>FD?@`N3~M1kn6F zb{C^KH>$Al%N-9 z-z(JpYU75P1O-96Pf7r2h*`HM;YkQs=x7@D_o!p*3Ac02VWZkn?So^n^ePVVXv}Bq zZ4WcE&I~yi`rK|Lc_NZ|mhz2j@*Et$kRqEey`xk_j)BOCb!GN~6Kj$zuUq7{ z0wT{78N@D-!Tss;er#%R{{V+bkRMOP6VoAst{Qw6ouu{8JD5oTyO2lcK=c{Rs~sI0 z=_*KzkbvH{XCjnq8VbIf#7_BzmyhP_wX3#4;mIsUUeIERv(ttgv--YmD-jQ11u?9t zIu)PDoUuZ@A9xh^ircG|BvwSDW_Ce0L-weAVMKe6$hzR^lsc^g-Zc82{zX7RM^s_@QRU( zZ4c*r6Jp%+05l1NCCI;yv{C_WSY2{Q8AZ7Fqxi-q$ts zNA;I`b|q8%yQKZQZ)S9qZ`P;_7Q%TeU`^vfSo}eiVu@UzT2*CEKv1BhTtWZf_7o^0 z=jSW?W(Xga%=?vFgrG=;6?b1va$anDZxqCLL=Yf4eLo*Oi=JB_ zY^iw+Vk#w^#4f+)Ld(pYm}?<|DZ-GCay?F8@NM7LK0iRJrKCB-b9qPjpIOYP2{Eg3 zdya!r!S8-$m{0$by+DuTja4aG6$nAO7BC~QxK&$m2#x{}1+=as_K(jNk_T6JFFJ_o zAAtX&6aF(hkL;Bv_xqd5*Zkf8!2$el{z*<=d!(D@9#~5uYh5saO$J(yd+$y~5XgwUH6aMT}M}!$7 z9Yd|(nrXUs_vjQ%beU-OG*17B+jb9rXt)J|nKIA)XgPq^+t@;bH4HC$JZz?gOSOvrgDdwyZUETfkq>gl^__0_iFY+_C}Pwk_K zW@QL-40|{V<+oO^9!&qmXTsoiIT#~mZ3e?LSQRz~wklvwYc?&6mI;IG8uTQQtcfSIr18V4 z9oEUrwClu=AnxF+$yq>R-x{KANRi`4Dj!mWmbg6Od?wh#(x+||Z^+`E6#8gR*9QUv zEaId=C`|Rc$VFz!8MhD|zc^m2l;;wy){%izr)kZiy%0fwDV-nSqs(D#;*u&$90+uq zz@A6wfXohXGP|F|QKD{3w~qe27@p$PkLdXu!1uxfJW>c;Qfo1bg_7wF?!B}=`NCiy zK#cBJ{D6)jzVHu7i6ljX)Q^U>hG61#7m|^f`0o%DRZkhurhbe!<&Y>6O(~*;ao@51 zH9Sux&~}tUM8K|)-$@M4QjhZw$L{51dx{kszy3S2rx5gBME^3p3V+c}@joM5$k5r+ zSi#WA+0^Mj!5pe6D-Fzu;JZ}c+PbO5F9?DPZ>zZGEvg`>kVd8ARZ;E|yESg7?)wma=@l2m^eFAqSzUPTb^3XToO23e|17|KU{oL$RT=unBr zS$GOL(Vc8De&o#t1G{veGB?N<9a>v%A{Z|s#Br~J(_u6HiRkW&Dk?=*hY$4GBAN0p55dX||qMH5Gc zh^`e=Ki5)Sx&w4AJQu0CX^>)X24*jiB(P;~J7Q=Q=YlR4#2V|dOR zuD26`wRM9D)tU%XjB=0VQdBqd`L!Y(Y#^Bq&W;4C-EqnwazJySQfx)t07v zRm%oa+L9j}>oV-74JfQL>yw>j>of3wp9;+-FdO>6WPH|Nrv3ji6~ccxQbRiv8B06U z|D1|g^$&lP71WAfxad$)=7CT{rVY z1!^Pdizzj0{q^uo^_CSZN*a+W+SQ=aXUqK6ws&j(FX(sSiGW@7vtyAKwR4fa?3WFl+~r5n(JI4yEv`2S!xLPT+^hX@Zot!R1+i+*FHdr?^Z!Sv8qbrzZ-byl3QBcoT=1s~mh zzhb<-VdNrDr4ePJOKqWrcF{ZTqPMz)_dE+Tk*Ag@^Wmots@v6jU>@p(Jmm*rSV9~` z=DFxy8(KYtVB|lqhzK%7Dw}vgI?OdR@Emd?bWqWAn!iAy0d*GohAW)atE zX-Nu@!VPvxriV-`7icCO?lT_+RoBylwu;e+K|*~du?|{8Xm&-R4ymNpASE->wB3$u zhM1pxd|1!7ff6?LuFub6-EgJFt{?v&oO9t8>JvICqtJAC7;T*=dlcjYRIsN|?Uf;n~RiQwh3 z8xzCDAI=D}uCG9- zTe8f3!8!A6&gb?LPqp(VOi`Hm%{6v@qFlWLwSbmMk#1=5t! zg4kjXLZv1?X`LxoYKxRC-MzY;_WmQ55VmJE1~a_YBbe~2uOw$hBQ-Sl>32@z_~y2V z(gfsNTOjZUMe`74v;k3J0jow|#dyGI^N_M-H0nrtEIw1|C}Llml3XDqn0u;Y=`{E4 z8q~CHu^t$iw9z8sQbb~2?9zp#GD%jtShNc^uFtr9zCZTf>-z4n8*2Swb)^+8+kLE^umMJUWOXe?0o*6T0k03+b56+Sk~dbX zbH&rXCVGZ3wNCErEe4j^H}4hA)hGu5Ie&q)#9Ya#y;qK z>SkZh7MNEd^a3j83h37N*#g&9*S^@xK$b0-p+r$+CzfjhEe8p#=Fu=$*>g9U3d36) z!?_{VoAoGLmafog`!Tq#KZH{66e|Rg-PJ-co2N4k#ttn~Fdku?3fh#!MhFPsZSh>Y zDMqx2I6O*2c~GNzs#e#?sxc=Mmjb;PAmlgKv5JYy z&K~VSjeVRh6rU))dAZf7cw19oKE1VlJX}v5r;aR>e&`=#3m8aWFVlvd;M`_(y=YlO ztwxm&J*2}6P@wdM-f)8Oj%ttgyNA`83j5?%w0XuYd1Fx1PV)H$ALN+%J=hnh8g#}N z#GKZdao(h+mTTQD!kV;Xk{eu-hV^!?7qF(g_oyT&9O6rQhF-l`zEddF}`Y0`RHsjDX8X{oWGBBOKJC{m zCc7(S;{uD=318G<*JPT`QnL=@%3|dZ7fTjsSbIy=e#$8>Skd*JYtVSH^#}O2t&6Gt zw1_PS8=E5BZwuEba?Q;J1p1*vVFvmN&B)#iPwY=2A&X2AesLog-;{``Z&(qD`tUjl+fo$yAquPs znJ@TVEUKxR!eblP2KFu2bQp0gY5c30m}ZQJ7{o@BB{i@JcEb%XrD# za_JM0rde(y(#upmk+Unhc*v=VE*#htVFfCJktholL0qEEAp##A?htECaAu}TiC$S$ z&+4|-Aj>>47QuDWFI*sEzT!%RAT9Q}si_9d)E@RnikNXm`QDF(DmUjC6Y;(xX6u0$u#P0@M#BW_#DxlaqBefQsRPl$YvJKb!&x- zOa!mR#R>3e@UVl2`P$L?@iU9Ph)y*|)m2|?*<6KXcM*^~cRKODLRWt#Oj7sC@4ioR5y+g%(rM3o@8h=n#rLJ}`~CL= zGC*-hk_f#R3XVKcP$EYRi4w+6C^AO$QHe%R?l9$XGR7FUk*8J$q#;xgYo&oy%o0=_ zB}ef-O)!roH(S10#ARnS%pzyI5o3u|n=vg5`x=e?h)y+f5@n}pv){^Zo5tG!r1}lM zp@XC=RoG_3H0v})H+FX2G4@H0ya>->mIAY|^c>z^OL0=J4x zzxL^<8%Zv4{2rm@5zZuSnDtUH_HG=A zTjYpvWP@U_c!7=bLe^IV`-(8;e}J2p5sbne6tp7IROwlQHFCoc7YU!grifGgHew5C zM-UCl4U~J6QrI8?gN#OWrsz1i_y6zCFKqAuQTW&C5C86eWi$UF^7*HP=f9LW{}9?p znA$jq**n=9y11A+kud%<3yqP58e~8S-FsEn?naQ`FX~|N0xLY96qQF9n#W%(DN($) zqT>k&M=Gw{ehUMCVw`^Q*u4c{lOPsBL=sY3Z&uD(%YuyNy`pQcOWkeOW`87tbaZ6x zGt#eyU>=<8QW}@5iVAJAwU(t%sT-NIZX*pyz>6_#UuwGRB%j_BDlDZOd01|E47tX~ zP8(qDXCGpKU>STJad_DyLQJG_Fbzl>D|P{kUN#~Y7DuW>eoeC5qM4Xelc6J)15J|mFgTE4c&SW=i|_8KfcjJ5*^3G9RS@O9USyd+MKYe6 zH0f}LhZT%lf|aW6hIQ^$`&OLi_I2!r8L?usq;%PU;W*IFW3Zf8^-}8@6_D+Fb*UnH z6GEd^(F{O%Bik-4IBU1~p>B}D6-2ns6|cHZ!LWb7<(L6-*f8Vv3(HM^?wANX-0&;^ zrh9!PFV+{GkBZG=m;A>SsOxrymx-pdtPqO$hsw#i%kg5tHN=Z{mNHSj%c(3)YOq7O zTg}PDm?CCxAkxOgC^Lc!f8H&vcf#QdC~CWpXed zoHWy|R{iO`t=or2M7PvcS45&v(rq89UEyof#&^B3y3(@7Z`*0>_LZFL++)`_3xhQI z&}RRof9rnRdzSa~>nzWEwsT?%-~VC?z-rihy8{TnqXCfr^i(?*G!}iZFd+_fuSbD#)+`aC~H(+*umwkCUt&c`*znl_8z@iWb zXweF|Le9{cSR=zTOmKF&JV(Zp)6pY@F6@(O1-i!^qCG;WZ4Pw&j!<S1E3k&SH`<5ebh+ZUX&vgT>0RrcU+<{hInjxoyFlRJ{~ z3Wq4EQ&=bDLo+sZRXN7+Un_Eo!axv^wY>4{u6$D;DDG!Y%<-vfTqB^-<%?a6}+d9*-z1lQruyBpTgjl#nl>i{W%LWD{dJ6e-Bt(#a zc2^5cSlHGPurZ*~y-!l(oN*@X#%fq_Nc5OGZ@z{jGdl#iz2~r`TF+t#meBG6U*6>3djpcJT48 zEA?_?#KFB!mkgphTWw=UI9C?eH=AgTM;A4JS#6Z1y-QUBubp8(T-(SjWMMNz`)+ zn8`fINKVATK9|6jr>%~8YYhVTu((BCK*LJIkQaZg7$2FyegvHxuyiU2)K=(_7qAX@ zNeBTNTVUd?BSqFj+F!&sP#WhRe7hcaqG0gQ? zl#{ueIQR0b&osZh;WUl-qaj`cI|)zSI7)`C)GYU1gL0`n=jTMU79=2Q=hqh3%^bVH zDuO2QhzUJCWjOoLGpLZ60QAHK-nA|gRyyGqc9o=@nrqo9aHC(~!fWjs8lK$P8tDM9 zDO-bnK2Cb>PwRyfei<9mO=Lpn?M{ZpGKN0x-rrL6HDLROB*H*uh@r51vQ>knF%7r7B6TW%hm zs=>ED#XN_RIgitd1IsL_h{Yf{&5<<6?h+dD()psKmhyx1w};Z~dB`IjSz8H7+n8s* zZq5zy)L7*fUm2gSXTy7Vh81jxcpj0+a9TjxyVJS0vvohhX z4iI&2k!U(C$K?LsjLj^HIv0>H%7&~w2$(W#c6Tuu?mZO6I+WNkq*D|kwy|!aUF$sg zYY#AaC#R&kEeCSA^$4N$2c}Uvow>s3=~1dCnN28WnC+KG5BG4-vf&!F(X2+aLwe=L z@VD*}Zn`>TTsTI(bad$0IEPTWHYnLHjhZ2#Qu5x$E{&otTq5aoL`B-@yvzHdpUre$ zk^p@{^_N6a4WjuSNsazPgzu1BCoVFkYY0MWto={H+rt_c3F{(bnr#AOcH5FT(5^nv zd#fX=HZi#!ieuOw%46If>gbMc%&j#wGU$?e-jx`uBWjJZ=vy0V_6K{ep9wjl*9hE| z2c*7-R=PUGb*>RtE{?q&fk-PNJt0l~8J*hgzZJ6zwipP1xaf^lt*+WU zY$%ZAZxax`jG9b9RE&ovl%cR610_5RzBM{!k!y!03J;cJWM+51h9Y-m1Qy*XIu=Cl z65%P2sbBQGU3mM8iD&KGd0$r`nkCIl=5>-t$m0TZWH4dJo84 zr6yNXl$|ie-c&P>5t2!%O?gmZ1!OcxO#;l7XK9?I!p)h`m=wfGu_oHm?v5>IGfllP z4->XCv0379djg!a&u|DTB8Y?W79QGO1=*qULRG&!Lyk60?{P)tS^DXf~M36v9g#Ck$yBP8fC*UKsk_CfpGI9Y=hh2S$DVj1NYBz8qgnZ$8~019ZUn z-Yr5=h6`qI$w_}ri5ncxYD)5vsY#d`$^o;?fH`VB=p>{pDM953YLS28@b+{Ir z!htuI`EhPv4EaDPscL==kA}>_SZmwqH(k@`j*?K}fT@(hWqk=OsM`UVvRdmkaNB;f zLSBQ&#>svj3jrJSxVba1VsqeiIct0@@Ua>4_?Z*X-`_l$$m6t~ffgGAar0Tl<^WFC zas*mz3Fyv1ov``*pb`Ghb_8`c1b6dU z?qh&X?U2WLIRZKx0({eu$Mw#@4<^8GthH}5m^4oIas+uc1o&qlkL;a+$EJXYa_b>i zFaqCfWG>sg#!GPAmfIK1(8H~I!y=7T! z9Q{9E~x#xC6&F#jOPKdh9gK)B9~Er$>mEEM?CJiic(wAF>x$l3i(py)5Cs zsU_aUD0wX$^2NB6;}7m2L9aLsE+LZ@ZGZm(5pJ#q!m>4#YD@C#xR@D`I>o9uffxnxPw|hV~{{w@-3;xhXNg*Xy`iq zK`j%A);$%iM=Dy66trF`X#HZy7|PbToO>n8k3i)#A>mIkG}g zkX+M-<^~%#SiXl`(53-RqkwE$P-qE89#N&Zj6yOg&)?q6kyVyQ%+XbrM>koXW-uFk6iuXH=!V2eP`vIYu_Ad%D~Pe1V*XSO>l>=Fl%>uv^Smn#Y4#2f9_9<_!QU z!s#*CMO@Yb;swkGS@PRI4t|6Ya|leo{6x~@>o zu~6dCs6I9>W`fL}L>W%0TrWg1PG>@Pr$k*Z25FSfj2%nC;wjG|k2j8hX-1TGz#w*E zu%^t3SK>VFC*rCoeob;YI$AZvZHK$+aMc)doaU)HI^CfvX?Vx^W0N5Uc{Jsb2Ui^> zm5+We?;-;AQ#jV6eK*g=w|KijT(Jf0KF*#W+kYlN41JEFRW&VK!89uXZBaI17Mj5V zCupplg-pH&`9{Yi^Oi;GMhI`hS?7d^Gf8wz9j#cxV$ii1(K+eFLP6~ixftVC8cWj& zg=iX!`X{&rzAcIjm(w)Wu2Y+kvaMKXF3hY`JJseL)n{e<2AXBaZBs)iBWP4jm{`LF zNclWhi1$|FI737p&3NA^x!R9i>Y~|$9V)mF%-9a{!-1F?1F6{!^SHXqCa5grK(T9I zxl6I`_W_S7LUamYjZ%_Exy=abUtiZm=>=C>}>4@bT$Ww(J^AGDRp8OzSr(I(s26Gzsxv6YO2fmqE~ zbgZN8ch(-8!>(`#M+pjMz~zl#KyS%ZeY17bo5BFyLyf#t&6JOQrRVwFuKe3&V5BK0 z;keM!=|LqkL&|0+yG$7AtP&2Ijq_WXk+q35o%&v*4O`k7hVL^a+?RJ+pDlngG{rsX#;eMLe1n>j z;saq#%`*k-+)9dR$(qhtYL{X^zF z%e-HANJVd$36K4m)9#Iqb95}8Z@osdz}h)XMxGgD_Xp*OFaU4olDvo zOzv6q@Jlyq?iYs?JGxLT)s*p$YDq*d1NaW0Uve8aMAcFSbaJfBTVHa&Y@KZd3H(9+ zezNkzG7m8yh5P~QI|IH37i+>_X)Qw*L@cgv9O2Cn-k>_qtM94y224)6DHQd{?LCnR zPiSdWc1NL3K2pMW3p*Zxw~Kn>dnds?blwo=sQJgFC+Y8HPt;!%AGLi-KJk7je-l8Z z@I&Q4Hr^+rt5-y2R96*gwnn;E3IDFLV=TEe%Fd#%Q|~=gb8YI7{}b(dsq!GoN|2`# zU7Fq}FtPv@)q>Obcpis4_G_^|`f%dKba-_{$0oV?%?LZT=@(jrnGNIX@J33027P=l z^U0Nn?@q+ENM@g0isw-zlRb~(XsmnG*aPmPKX;ExoRIGU=gSkC^5_ z?1hS!v)?@gKku_%xn}NhPaykDkSXcJ;kq*e#=KO;qK>xp(^g9FeOQo>|Jp>(J&L?q`g9N2;!LdhsA*Hl(Ud~DDdoH{O@8Q9gJKi@o1b>&YAgD4 zlGc_7RHa2DjtQf_gDcziC631m7E1M5u}W^VrxoqxGIXPWZUmSs@Wxepr>^`k^uCW0hjcf`fywrWdw%O*T2`pip1)06=rG0_xkvH^0ra&xZYPE@5Ap5X<2cqzMH<_8B~(QcIQ z)or@L<~8+8R(&W;nR&%+#>&>>wa`<)bY33@b0lF(Y!eW-L-zVDHsY_VNs$NGd1p0u?16jHvu zL3RxO7Rf!Q7I9j=tV)IFWkmOHKL>9m=GmQiX|%cDt_Ndsav`b z`Q1{2mM|VqSale$hz~ISo#b)3{6INhu+s}8^)j)AiLzJZP2Q3ke>TnSfFG}yzVr(s z+tf(4B4AS>CHZy~Eac#u`Tua>|5)g{igyzG__r9i^S220f0261S~@#h+L;SFnY-GW z+PVC@)Kh88Zb<-vH#<5PV@b$js+Q2MaG#?T4AP^ZLP_vmNGdUkO7(JTb*CfRh`R|F z#2*xi1WCdN06#RNRaP5OXk_YoV`Ia4cKS9xU;h_yM>s3+Swls!WkCowYs<0~rp92C z5IZb}MvZbusj=voEf_6U2@@2i)(*w9F5mucqC+nQL=l5yZ=XwhbC4^QFOhJj9mDk2 zPWvaW`v=eOom`f*!e6_)rWHKVaG*mr>S2c~3>*j#*nacnGR4@QJ-?=mE1yN1lJF+} z4iL)@Z6?WZ59Y^^K*+_@OWx~^2)sy=1HW;e!(f9={z5d9_KRqj?(aU6_POib^~kVB zay^NYUe1~AtR~~X#VHtQe=TpW>pvnja(6ij8a?|BUWzs+^$+VzhQ+l*j0*!*k=;}o z9CQ2MXDt|NW!oMzMKOQpWrV}$Uqtnn(SYk+3m+${pT}b!5lfV31U8w)77iRvS z8Qy<_=s(K}{|+IQEhS_@1YTqy%{0<}B)X{df&xjl20cVTML`7uND2s2K3YQvX;RJY z9gP(K!)*H=t5l~2D*k@^`;9pSZ#HTWAhox}CFicQ-?AvApWR8eQRfAKZw(bPK7jC&7-&`#5%5A7CK2c|;*8Op zo3raIQE|ggm%|=b=cVg1*ObeS;FyQq=7 zQ%~}Qxr9J(ImBjRb6UyjVu@QK>ZZS0(gu7;Ud+TGcJO_%vKuv}`K zTxZdv6}$L%U1$!>o)a(NR7u&nEm7m7Q8P6*4>jI2qblD!y=tARm>kkOx)8hX0%F7k z$Z*62bdtO=xp$mfaR|6Yt+YkALH;=OK9A;xF!CXJ0Nvx}lx9ajbikSJpedvCVbr_M z5}!Ip;SFI!bXLeS=m7C7gVi{kKoPz;F&MSSP#(A#)Hu{KX}Y z!*sFYBqU!fOzB9QV0^x++PgU z!96)8I_XIk`0|XaNOW|B;y`%VI^uN?Kr(y+MuC*=NtXpg=O{bmTVy+`?dEueOYZEq zI^Lb|2JlTx%-oE7df)RC^~|IYT_1Q81)L1PfwDEU3hsZ71ayzSF}~ceJPFg=`%;Qlt>* zu&&AD7KM-;-&!Vx+BquV)CS#Hv!zR#&Ef(Diwg>5&F-X?BJjkmt~CIWy$RbV*@Sp5B-9^C<}aiFJ}B$(U)v zu(8Frd%w#pNX&0K3`)7GlO@e}mCEC_5J+3cppe_Ki)0=>7E$6UCX(NgNLc(a&Aj?tqe8?H%VO_c`K@i0@MuqPO@9_b&ZgFrpX$8z>`=C{31`tP4aPZ)Jm&W>)%WnEV=k$WL z{{|dJ;x4?k>aj4os2K3%tgW^z#g)z%?%l~)(iEtgPCG3(V2@rBbOZ!t0mW*kAD+%} zifVthbjEeByTF#Dvr$TkkE0tSCneQO4&t>d_{8ndN-)t=p zg(smSFf_HaTDx!h42b@1ZV&UJqG>>Y&Fqd#UpnPPm)hO8l3$5{7xd=xqp19SDZV zmxfDKX{mWmG}p{TNVkxYSMUU#O?@D0$-f+JU+y(ZzkWuguewshq1ub-fA9l&QfOKx z$-T~3%nM_P>i#aMjZLf42jzit5vWHN#ViQJ*ip8=hEkD@{#pY0Un}yNJq_V zTosl;3A#+C5d2&*nrhXXNXWN1xy1K5)itB(Mcv>(9RzbF7TKLRY(NPH9H2Q%$xmxJ zdzZm^G_e&E`aWiq)@ciYIJiKq_H(w5Y$hGw!!8Qvq*gz>AOLIDBGiF-A|4rBj9-qS z*r0d=WyZf#L;C|2=H^J7zOEk$-O__KsC?cT?90A()3;W76D{Vo{WFSjCHc6c!~FkJOI81#CyMe}_E6z$xpy%}uH zD$^BItst{^R7*W=?3;C!^D;Lxm{#D+n!9R!%kxyj_xX-ch_Rwt>KacltvIR5l(jYQ z>LVCr$nAwP4ztGT;tMVBZK$jyp=g-lY@K*8qFGOrt9L&t2C}ryCrR0^XtF&Qh}6Zn z4J@C||Mjd~R^pEb6mO}PrtxFQt*Lr{e`L=@$=>ko%3nIzbm17sD+JH_GG0>ovn3Sub zG(qdD4@xKQQ_<2Yr#GZ+De}ILHL$UPk*le4KqyM#1arDU9Og*w;sp!7|IA?t6{_%t z#(41EL-Niniq~m1(uJd`*plZ-PtGH#DB_yxAIgl8Juy92VcU0M1IpwEChVGBBt0^= zx$!p_^MDyUPM{OQt~oqU~yk z(!65Kk?3JuM`JFqKkg^M!f{7aWN|Uh?Vw)za)*8sD+AMtnFcP=!3SQm>h@4nw3v9T zhcHHRY#}9HNz8~kBa4RJq(Bke%b>@kuzW!*N1gTnJLcmKrtLSYy&RUB56sI}$)<7y z@VF-p_%%)GjYY=xA9I5!YF8$5#)PWzi0sEFE?l_Pk`r(1{&wL!JPGi$zSm9EIG5^L zWtXy%PCWUydo%;J6;hH8LR&UKYeNarwt_fMUe~LU;ln($lqkDJs;6%wg@%Kg-J6Ku z5h{3anOd&4Op@H{1*Uy&U(VnvzM>j^DWh4=;E8PAoMp*$S5d=|Z@hSs^K(8=eBXj= zzm5vEoNK>3f8)z=|GqQ23zf(tWK$P*fg|`d7sjYlX1g=E>V=R~TUFM4NLs@LOq-}Q zC*6FmJq+$ZRW@%NAQI4e4w}b#%r*wjn|YlVmCe(LgXf-Pf5!=iJqDCdD1xCYi-0(2oO1998xg zShOuiL}d^`=(|BqZ^n3>ooR$0!<#Nw`5bD{k(j1hbYa+6jd zt@ut83~xpbIq&9KuC=@-;~8us6mUVSZ^qy{3tB`Hvqhn>#gJ-|5cbjBa7`l@M@E+C zVMRwDvh>4pd!h=+dk?f*WdLO|fa9(4wBZOwv^kwfcQSH+!P8LtyitYM;fN#>4O~jO z1QK{|z>Z=vW=RYf`Wu&&w{2*#-q%jMA!=APBom5EACvz=F@>e25)3!O5)Qo2<6i41 z^DJ_AxDnK~8*1x6j!|K7`H}=VVyx*Luj)|tp-qFI{HQ!&ZCg68ur#Wsx)^b1Ul>}H z^Cn`5Og~nlj?lcp;#aE1zfpg#3GJ6nT^U`;=#6{MCEW%qE!-W@d+dvv9LW5IeP!y2 zIqMiDIo?7NiHjfkxKEJ*JYqDj^W?wg+=6jj>$^79njd0{H^KFsLY+%-6j=hbWf@n)?2%KNqno2gR+9o#>}x>A z0V~Z&Za@++M+<7kVNGj>`Tb9;&`PURtWkarCe=$h*+wDR<~i7}XnBEh*uG_0+Ph1& z1^bC*%B-wrLcoH~58Mkf_2oIQBiJm(a_ z2&kGo{c8bpc*Yr5@x#+REaRJyZ%(wiLu? zmyKkdPZkx12*VCA)>K;Ma=kF^aY86mL4W6lx8RGcm@X%fWldGWGRA#}jkZ$LX0tS* zv8fup1nF^vx~yCBO;gPVbq{_-{JzQ@TLnDfjbieSwtDE=KvT(HhI*(&x!sB6bK0-} zf^EH#t^dyc9_R@W{#$J8KPM9rcWXPd|5=ty(~xyU(?tKQW4$qD8H^%MwG{Q@LD~nS zKSVKr2@2Z&iR>vY{C zUboJrFJOxI8IE#!SC0LTo&Wj{3krUGLV+;uu@Y=JlLyy&vBpYQmX~c@VFcrZJ-} zIK+?tjOC^%WO}o*Tav4EgoWv~B}$oJ3})V5F|K9dOb{D2%uKHjrGO#aOv4Nlj!w<; zXSXyjSBzgYapx(o9jI7X^t;);Tsqhcapy>L@=ON#Tj{jKxJrAN%Xu7Xy|1;oE$5`? zw_>KyejrR|L8?3Q8E^_&`c*mTrafh)fzLO|oOLqC!!u%C5BNF^aYk#uRZiG>o%8%*APD3IR1$yl#=Fnnp#a zH+J-WIWIYuq?s;s%~BhAGxjMpG6XFGUXiB5&`mk?_T1YW@jTi)@;umEj%w-2zldz5ElV?_acDG3#9lXS z0l7{_=@)L1v*YbT_wR1)seO?&zps0MOTORB_;`<%NX>)F2W=&`=nm4Ae(pa+QXGc_uJHS_7zT z47e{49f*+W$Yt@@bL5>$C%)QUa;ebAGNz zE$mtMCuU=#7)S~>{qSS*iJUv{!}b`uMVRg&{vHuWHlTwAR0^zh6C6=q&gg&t4^KVfrB}M*kO%NXl=^GYFp^H=crciyA(?Z zoW_H7**E-O+5dlJPh8jb4kzD0IN`S_^}lIg|K|!X>Eh__^nV9X8v3eu>evAa&@Wn; zu+*i7%O#(hDhsE>=ze^!yYdb?lwQ!qGFMkwj*e_K9x#Ekl*5{n@-7n&> zcu1L6aUQC$KB*qKbCAIbODD~q_^-Toj`^-u2tQw*5(Gi<2PJU{MQLI|5kO0dtcHGv z|HG~tkoD5$pROEfSm&zeV6ejOv%;>onsrvL9O(y?7{jUHV%0D2u^7bcx|ezvBT@`6 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 CNzF?D literal 0 HcmV?d00001 diff --git a/Push/GCMCommand/libs/gcm-server.jar b/Push/GCMCommand/libs/gcm-server.jar new file mode 100644 index 0000000000000000000000000000000000000000..983fdb7a761ddd8210c7732c0ea1ead9ec877cbf GIT binary patch literal 19718 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≧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 asu5=!%onV{q6KthnFzxSAS=QR!~+1ofPfSL literal 0 HcmV?d00001 diff --git a/Push/GCMCommand/libs/json_simple-1.1.jar b/Push/GCMCommand/libs/json_simple-1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..f395f41471a796876278a6c5667ded4632546893 GIT binary patch literal 16046 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 devices, + Properties data) throws Exception { + Sender sender=new Sender(apiKey); + Message.Builder builder=new Message.Builder(); + + for (Object o : data.keySet()) { + String key=o.toString(); + + builder.addData(key, data.getProperty(key)); + } + + MulticastResult mcResult=sender.send(builder.build(), devices, 5); + + for (int i=0; i < mcResult.getTotal(); i++) { + Result result=mcResult.getResults().get(i); + + if (result.getMessageId() != null) { + String canonicalRegId=result.getCanonicalRegistrationId(); + + if (canonicalRegId != null) { + System.err.println(String.format("%s canonical ID = %s", + devices.get(i), + canonicalRegId)); + } + else { + System.out.println(String.format("%s success", devices.get(i))); + } + } + else { + String error=result.getErrorCodeName(); + + if (Constants.ERROR_NOT_REGISTERED.equals(error)) { + System.err.println(String.format("%s is unregistered", + devices.get(i))); + } + else if (error != null) { + System.err.println(String.format("%s error = %s", + devices.get(i), error)); + } + } + } + } +}