From fd555e4dce47a25232d4f686d9db07ca51439280 Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <art1@andreas-romeyke.de> Date: Thu, 22 Oct 2020 18:44:53 +0200 Subject: [PATCH] - because NFSStoragePlugin.java outdated, replaced with jar from 6.3.0 --- .../plugin/storage/nfs/NFSStoragePlugin.jar | Bin 0 -> 16147 bytes .../plugin/storage/nfs/NFSStoragePlugin.java | 453 ------------------ 2 files changed, 453 deletions(-) create mode 100644 java/org/slub/rosetta/dps/repository/plugin/storage/nfs/NFSStoragePlugin.jar delete mode 100644 java/org/slub/rosetta/dps/repository/plugin/storage/nfs/NFSStoragePlugin.java diff --git a/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/NFSStoragePlugin.jar b/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/NFSStoragePlugin.jar new file mode 100644 index 0000000000000000000000000000000000000000..53d2dd65cfe6e6781c22279e990f53df03c113c6 GIT binary patch literal 16147 zcmWIWW@h1H00E7u#-1P=hB+A+7<^qr9CbbY-1K3}I2hEY8hakdYTLV-fq_Afk%2)3 zS(&e+pQoE^aEP9-TWjBat|kMS*7xky?RyWTxH`S{+s)}XQE%7OrTdFAqu=yDxt-oA zCRkE=uKb6^%79NS*Df+kXm5R#B52T~6nt$H^XGM+#opbU#F?<gR6!=h<eg<_-l8>) zOBOM=2EIvs9k=)5t=^rBJg?e3ecd3sT43?q^=raPQfBU#J6NzOW%kS`Zt)9B=DgX; z`kaNg`C-(=lf`du)y=E@!*}z84dYdh)cQ{KFXwIE?z<{s%K-Bn0|R;(urM$%B<JVC zy^pDa7pfw)A}2GcD6<%kQbBa3DFyhH%V1Mplv<EqoLQ1zREftTWdb@2a!S)P^Y9p; zO`HM6CHX~(>8W@O(kIQJyfj3Ba4@J&HTJxd!t%CKnt>s~nt{QUbi@4If`cKB3;_FC zFF7Z%xOi(6XHCe}tM<>&eu`7mSL9)n6ya?W+9crEW2JCHNMXiVl_s4o=Vz*tGtV5E z$=SVit+)8<wYghE7k1xTl{s}=hZW~iy}K9QRd3x|cK`d{t6e|;J>O@pZ=AR&V*eri z?|1*s`}^m;@4g?G)a8{I9gQk)c=u#0TeY{wf!930x@u;Z#;yO{%6O@A?Uv}0JkuBR zg7O}h&9z?gUrE!7`N?xV&0VGYBGU2<Di&|i=lq~{PsZWA*xc<>HJJ@*C(ba$i#^D# z*?C1NC}(<F|CL3I+jfL!)v|p*{cFa-@E3cO9nuSI4lvJ|prmQc=Ka&lZ)(vj;~<`w zdyE~pE5bSd&Ms#UDDf)xZ#eZs>t*#^k#O&iRgx9WZ$7%Mj8)#6y|gU0Vf}M+&$nlT zs=LqS^Ij<0=cu;FH_QA~p83l^W%4WQ=f$)CkgeG~=bNAAy``UbGjEx9{Z);3L)4S% z)d$~m2Fy0NckI3C53}a{>3`o%So>|7gWqqaKX!Hdb$&O9%w?;;uweI+&wkBzG7onD z$kVh_F>?JZw=X>FyQGcI{eFp(^(Wph4!V>7fqB!<x|!b$SJvKn;P3Ic;UK@)?*%4u zlWrZhvQPTpb5mJ*fk?lHq1IXFpqikr!)*0l&)u27SS3E)$gp?b^{yN8)90!4{M&MH zzTuC}mwwF=na_VAEBdHAPhHTL?^6!OPnf$e<HK~Gf17w}UC%sQZS=!*?*6<F=1gDm z{w))^Kk3o!pf6H?WasXeUSM6Zc1>keSNf74^CBL6PyM>t>VJdghFv?0qutXl&wA!P zqe(a1rOZw0(L|Sc=WsPq?=QNETG3N|mKaZTNpn`QOEH|8Ju7<Fwo;SQyu(3i&So!i z^53Venlf=+?(48EYx6SmqIa*|y0SX<cb1yJ&CTOmwk%b*ypZs=@A$UmNiW;xrJTy@ zP^}6U3}I)R#L4qDqIsr-U-p3}yE*qRY}w6fs?BQT_a-MR^5We+3qAXCqpse)w=*;P zc-Om9pQo#5@7lHfX2?pu|Cb_^rbV_juYR7N@M)cwo8$K>(;^OKNlV?xTe?g6_Ty<A zX20n?V(t=Tm}x!to=?5b*)5AE+<K9)OEHyK?eaz+qpiym4eVHcNnOft`L(9aC4bk# zT;K5Nci#jwE8OgfD%4IkRW;gpMy_M|uZWN5?w?_qzx33eh0Es1Y&cqCd8q4Fw28ZJ zO?7e@SIW0zEw_rQV|8wBV9UK27Or+_^I}t@6*n9&IBp1B_#(;2FVf=bt(QS2`z2i8 z^_}fJxR9r6?Fj}mz8xu!R;I3EdGktAb?#;!Ri1gnPvFdKLD89BqVbkizgBna=_VPx ze8Cs~%J!s-8q?fmmw00<gR-_7O}skMN9DNZLet-qoh9cSFxl)-^mf&C)ktCC6?0nV z3ttlU>waXi?CJW6F)xnalJ!o%w0doczq`ui^*kDL1wXw>bJf|aWx2!M>Xwdnmg~%# zW(m*kLhYz_qm32JQ}m|=XWXe~D`u-Jdw6B(aj%y*=B0X<)cHM^fAvQ>MR;yK5AU}x z(YDstj+ANh&WoG7J)3)n#-`32yDn;TCy9Bio3X>mCE|vuVv0+0ZNdH&8*zi8Nn1M^ zCi<wxZrtahVmyUu@m=A}s;#$0(;xOcPAJ{{$W*f5%JB02*C$r~3!QjCBq+#_pO+_M zrRc|fDO%HB%4hhwti4;X^w}J-H-*cJ)o;eO-Yiiwy`nrRaLRJ&u-^4CK?!f({$$jc zAR(3U{;i+p)R!Ap%)53qz1e(a>DuUx0>*P*E!r%tSf9D(RZQtMr5T@h+`s+pwSVNx zg%xhk=fC(9{DAiXa{}YC?*IQqmx>e=&7T@+y7N!hvE&maU2Ap9cb&6$em?7vpGA5x z)44rba-Pdw&7SX<n)Tf8hOdsf(Y{huj_rqi7c!imVG}3rW~uKqDfC5Bhv6joFD+ZG zH(RkK8(wPu7@?*dm~v}c((I6Ba}FEceKm1Uda&W+87H;dtE#7pR(_8V%z4Xv+~~4! z?;FM?&dW+Ai@qmC#k9<xe%jry?K7X27LR8`?nK6uZvv+un8Nz>;1@Qf-KkZ(4tr^) z{pHM_zUqZgP^d1$tXnaOU-*tbHmi<%!&d9}x>MzvtI)+ASEtH&eYKFfa9LB`jJ-;r zD|cSVipt!B`#J7A=!q^+oY`@3`K}<_?2tp|Ep@Y-GL;&)EE4425Lz#^>kH2@75yV? z_<qit(C1KpZc@qj0}J+^t~{>#>ygXPYQgI&w<^jaE+l0hyLV;TN)z{ald?FJ&h?tA ztE@NuZnje9_?53wu3=X`Xdii6?6kSk_HC+TUvfzBC)M0&mwFXZ)|5L3P2T_DDQ#x) zsIV4M3Y+Ei&0y^ukuS^2znQqOCG)<V7m{Oe*;3^o%Z2l=GH=b@7}V*phgmw}<(7yV zm8<NXk`4KOb~CGe4(QC<B+r_>i0MX|T$e-tA-2k>?xo>xdX79Yb7082w`PyMyw18i zmpjiIS}pD{xVC=&{#4Z-zUwU_3q;o+SDWT>aC@!4Thn5-!;d?-qg^L6Yge_{FJ+iJ z{gGbt+0Z!!6BF$o-2G=?urb+T@<iqsAM-!w&s+OFVO=%t+mX4_z6bc+%sQtEzn9@o z+3ETHGP7E3%R94|i%ZOfLieqGtW=uwrLWU@_MhS=u4(&^Rr5D2I=TNr{GkhKaw(tI z|G2L9zpb8I>Swvy|9On6%S3nnoKYgrYkc-)YhcvHRX&?e?ehwa^g0&0dxH9E75<jh zKL42ihdsBS^+)~RX3zdh!j@vPeV-3l3(vHf?$6$1`cwZ;_~dztSM(l;s{Q8;DO8nZ zIc56u{RD;iCyZzKIhlB>7>EAV5)D~8^~c@C{}29WVXjmUIeICSbBDA~<)+uIAO7jj z{h#~k^Pi@Z{~wCC_Pl2lomn#_p2@_hvgf>+>7^MfzlAQ~3chU8zq0bB{jz7w*0bU- z`<|VU)+xfM>D79E^9$8r<5aJiVR>1>KgxH7C1wS0U9i&kvY)|LuZup9>)X{1E-<^h zr2c}v?^_qk3^v&_D|ZUSzlu6>B`r(+<Vp3}w{+f$+==dL=6>?UNvFADk(H6hL*Cep zjR$wA-p!u0veCnB0>{6Zw^l}pF7nUT?#j6GWWfaEXzR0Ao?W=R%Pd@K`C*-{#xf2Q zw;A2`$(1|fuv%=@v)NI-WnC+;e!96UEIsS%EvDe?2ltgu<eF|ZcJ<|U?de`}+IqsB z%$YT8=Z&{+-f~oJ{-NbeH<nJ`J2SW7f$Xv}v+E0-jk@n1{Jitn6{)2b?$*;YAD(WP zxy=#G+jlsYCvwKEN+*|y=%g%f*Xhr*PdhMiWh7eO=u@AeSFzTU!$HaZp-Ndqpr`e+ zvc`xTT)9haKB*{V9qSK#x?}CiwL&-7h;>K1=pSUeH7Qh3^y|^3xiX1azPF@)NVYwY zy_kILaOjQnwKE={oUw_U<EEAwd-#PtDq*GzE(C<G7wu2>TXkxpLQPooa?|c(*H0f5 zfA;g`ktHl?N2a)%>n1H)8zpTKk-Yhuu)BxPm(ZK*4T6uiZq}Rh&OOI`Ynk2MC5tzh z^A)UIS(+g}Giv#@qg%fGDA|)_9iww;a$!lXbKnlgNJqYt-&g;!DF2szDwfr8=WhF{ zcT$y`KRI1tjIqCWk*B#cL4TR*`iDv_JmwOfj8~J*Bj&PKBplkhy!N-~fnTgI&c9?b z>E+?mx)WF*Bd)6c(X;KW%3D2&s?xxO$S<2TGH&?!G}I|vbqjv@|KD6;!<29p*8a76 zhl(b8&k6`w<xuu6R5il3p2;jGDSm$#@6w<X^BylauWqKpKTko=vhm=Y2^;@jdF8Z5 zr`B}+frYsOZ-wS>*dH@xhM3Q%W7A*jR5VV`-m&t<?hK8z)JGBWtLCL>y)aB#_t97X zfqnXvqK|L;mpt9Y-X!!YctytbHm?axR#&ZCbEcUmtM=UJQn}J7_mv~bX-(y{*W1_0 zbRD@oxkG5et!(=lKZ^TR?Vc|@@}ju0c4oxHLxJC}mQ~#oK6X^7@QvfLum9ijuA5OP zojJW><#7X^i*KiF{1zv8;@MAE7p9e8d%f3g+Vw-Gcz0~6pViJCjycEn&xw3)!9HzE z>g_wz8#b=(>bM&w(xS11Z)d|1U2emR(R<^z?O2f^QjvS!q{>LNSJ7})cF^Wsytf;Y z^ZqGMtIE;T%9>wQs#&*uPW%^1Ha1Pgz{u}&QdaSET3@=HZz;0;b9(pTrTyQ_;{R;f z^|)uwx#oU3Z*yLrQ>WABJv31_n#PspIy1*IZBazRnZJK0)hD$7WisAg!MFM2vLi~? z`$Bs5KYkK7P0X(&@_5k2nm61H7N5VB7}-rZx%cZA7ooYQ)*ZR{mS?40=#lu@Z@-H= zE6nc|^V6-$sJo%_zHw&S8odXOzY`C>D4h4XF!kWPyVnjZnEdYZjFmcHc7D8{5^>Jk zEA^kWfBB`_Cp$mv=Mg+Qf3LrY`02Tu)TYW5oDVeAp5(0;;PKV)(A>{mT!De6LQ{`> ztd{s^QyY|aOnB~(<ee+Drg|+a^6;?YS}^haq=%fE*KQV063IRwWXAPri|@gUfyE~J zcUP(EdM=&$EBt`A@Wtal_1CZX`22_GiO<V)xvzyNNln@=C(#?XH#N1mc;3aeh4J3D zudc^G7hCwzB5<0^v%&+H=Ix(Y#XDajIsR^bRi+v13qPexnQC`k%Y`quU$~UPeM|ma zc6`@2+sd~=Ti&0|j?TF6es~4@Q^O-~uV46=5qH~LeNmmgZ9|cL)wM<aALm9HJH-fJ zkyG^dz3`jkr(DQo`(<Wd7UeiZawolB(R6M}|Kj6Y#4oA8VA$uwf5|cZvi>ChwVC!l z|9sm$@0&Qeojn{Pq+{!{<E6c0YNXcsqyE#D^#r(P$4*=JF5lYY@|>Lqg$>%yc~y5k z4~#UpyIcPDd1k><g_DatX8V2GF4}#uTCVDFh`;xWsprC<Ty1EnTD7SCMdBGYL%xMU z)h?bXa-qS~+zvd`sM78{zM<27xwBPm(DK7atZKO~%Pl=_;QAw~sn;Yh%y+H1x4K+` z>yz+B5i8Hl&GRqxzdZM{ocrDG_gPz?3ZI*H_<_R;>(2&fPjtR|vbV%(;SK|BiBr>W z`rN!dx%`_{Y1!1h)2qMDJa;qbw@K}>hhKCq9ZOktR<q`af>Fzb^L>fyZoe(veNji@ zfAN>f*)?mWp0FEyis8Ld8YJDm_nuq)UqP#tc5kMxo9rCtKP~O8@?C46IRC}#m+3u` zT^M}m-vs*=Pj7I)&ZxXQZTqF|)AJ@hUEUXPHEz`!TPLfC`MTYkOKutDp58pwa@*QD zS>0;h#o6<htd!uN_wEL-{DTdJGtS*mxu&r^yywE64S~`|ZY!%6Px;(lnAN$e)k|*s z%WIoMHuu-mC@hg@*j#>5(PP4g&yiohYTZ<Sp)zId1xM?t7hDTE^>(<M`!4QIjGlhM z>6XjsOyjhirGC43;`a0^m00d6wN_m@J#Ud+mHOAqzct+C7sy(qGWbn75ZP?7OS|xr zLT#tf7oN9^-d}z_wQu{QCA%N6y1(!Y<hOmE_1m(lYu|z`e`R7mcrUo+?|*rEBBR`z zpJuhJrurFw*lI<$Jzy^V{WAMY>6s`$`H*RglFyXoRKJ-mA>1A5sH%VQ<tbgeli~*Q zOP5;Ja`#U9WjM=O^;F8fwU^81XntGZcVAS#>KCh)X8Bw7j``^?sueuX{1^Jtc~Z)B zYiYpSHGhTA{JLec*(}D5m*a7yX`aR=)9E?YZ`do}iM1FU@vUER?(f9fb@`$ZbGsIN zU9<gSbal&q-qT-9e%bc!T7Gebt;^OO*Qd33@de6Wj{7y|$}7ojI~8O&SS`GH*<YT~ z(dA*?v_-=^{q0hr8GjA#7ETcJfAfw1@>cejZ#wV(GKejlAf;X=efWy1?DH0H=f+u) z)hk2Re2n?wH@9TIxYpSq3vX|y#(<ZCt2m~vI+?ZgZQ|lBB2PlAmj3^vqg(B~xV+-c z9k2U#Tw%Yy2SzU4*x%z-tN-`N<%mNM9a200`~C9sy{mI%bHM`x-TNY3A-}Z#PMu-m zB;MjJn>j=A^29b(Q+KIUQ^krKiv*)CM#M#~yX)zD$xhuyHH7WbDUoFD);pUnh$xnK zNu9g2D*1%&Y31)_^~s(Z1ui>UF7scGe0a%xs)5Gd?mr7J9rs_bEHFx2IL%79=^<C9 z)GEnU6*U!Wwh7%lbh>U|^ZTV&Usbcb+Bcnl<$J+8uYG;u^=ua>zBp^pyZwO9y|#uj z<*5hFwO_pb@TB~Z_&wL>7uIg+yXTx+B3<*Ntl~r5EzjRCva0O&GViO_K2soH^oC>8 zxAKWA>)Uevc&FSGpOD>uiFw1B{*CkP4n8euNWbhD=g0rCs%nPy3&DFHk?)oY)*1JH z()}>+`=!Kv&GVk{UkG0CFHmmT@gH?nbNDX^{}HI2#-I4cP>65dll2dN^Zbdtqr#nh z-~H^D<O@MutN1VZzgRAE;GcKMeUUjk_@?}wbE>dzx|A-n>FyWe3$}_pXPKy5-@4WP zVch;>dxS3h?dj6`biE{g>HQTu0*}Qny1(eza<00ry7pOqmw$ZzQhkM|aMhf}i=J6% zWo=vR^_G9eb4C6a|CF=t6+RFBe6&)q_=nys%eD_v0UMwC3x!^>pZm|}i<0i8m-?5N z`^!7uGV7n)=y)=6)-O4!$$!=7KG~?gu*x!P^@q=&KBorP&1=%1VD?r+h=u8X;Hqmc z*UvC=lMOLUR9$`IM|d^!G+B%HbHeAXJ@<RNResO1fXs=kn;zefTVgaN`NG4L;CXV* zS<A(ww-lbb?2^o++kI|=VEjFfFdv?c^~cZKznIU*AtR*Im>>C8W36z<^*#GTZ?8`( z;XI?s{xGNHr^%UDl3(iNMeJT5GME4Nzx&_f2kVwK%yC$4WX?b3puoFrXI(!XtvZ-J z%f|V($_HBu=b$Ht+cRx99BN&w!_j)!&Y>l>eI;w{+Qk2fS+_-U<QMi$u=f_<x-u<& zo#eMwWz%oF&4>>QwsyLkSikm549|x})nc+sco%O8e5Lr;Fux@5#_}w?D|=Qw>(|R# zeRz#dY*4@aZnXln@UJ_s_6l5ER@ksza>AqsYuIA8Gx=3A-6<85*~YhSmq^|%rtLZH z&Up>mact^)nE0kOX76qM=aRp4zf!~B-h13n-!vD!YpQzJ>Lb6P-nr}i?uI0>4}T@P zMa(ZaX?)MSqPO_xnvLvjjGViS>LU(v+!4yOufEA%$^N3Q#f(uh)r2Qma6+Kt_YIA+ z{9isxF}z#$$@;=9@0=M5*Ln}EI{BVQrnfYqb<T9&yu8&NW>um*_a-^FE#4wpxn{$9 zUsHYE8A7velt)h6W?B{h&TNs&{Brfie+wp@HgBu>I`v*)SI5j9t6ksUzUx~0Zc*Xf zs~RDHgrbs{IL}kx=w>?Mnvut<+1@X#_%851_$8(nY!#7S{MO6z^fKl<n`bCCUT$s) zT(_iWHLHK4Y{g5fs57D-mUg>ZpM46slCwih;jPBij@jqhOPVd~7szq${&8;I*~aH` z)45yc>gTOpEj(Lx|4o*VGxNNRH=eZ+nf+GCYW8wXr}U<?!V&A-XZ?x0X<5);{2)Xy zZf)_^?sxfLZxk-*ImP{$VSdLHW9FBcYLl*d=E-O<wtsWY^@@|3@k+>W>hkBu8_hbI z<9_yTtMz_Z_C~Srfz;Bn)26a3eqY%jo~rNUH0{@+e+l(_oz#o7pDYp(t{1!X+ToW* zY@qO`_L>#%C6*O86;>~k{B*7N(gB0Hay~a~8C>Ihyp-my+UQt*vw2;u4zv1^&j(UX zLyLIdEEZd|roC5Zf$JTI(?5Npj&mn!cfSa->#nLa<SkNu`=t0qZ_T_(KI#=wEw6n! zCJDaYd2H%&Q?7sAE$bUq-iH<K7WyRedgT&Xuc){uVcq^=c2={uebjmSd9l~ddxpCv zlssK~zcAMH`G(-;r<Kzkee2%7&iFn3#wmS9)`wSrC!D)n@PD_^H&LJ4Zen@`hyOTU z=ZpP*`psgY+q~I|Cw~P>-LlX-bXnwD1efdlew{sY{2oqqs9L?EH9S~-{ZidMew~>! zeJ5+rSsU|o$F;Bo`Bu*W<EaIHjm`6xwQQc1_Ce-p)MBo=8T%Grd9;VS;^}%VnR)q# zwLBBj{SM`=zHxPOQU4ULxi@ZUyv<oH&oBClw^{#4rEZDV_Cq|kG8lc#(*Lx6uZ-Sk zZ1CH}^*7U>8|HfgOMgBT&)nw3`>DIK{aF3V5U-M#OY-brHY_npIXmZfT4wmPvejv} zJXQQs9{Kl}Jyx+7+^F1fKDX&b&M`m1)lc-S+IPRSxyMj_&qG?mxI%c!=9{7C*c==; zChF$~-utV4^vhDc%hRpy)$+}Kc;wJ$fw!wR9!jffv$>O_l>hFb+V`^0<{XK3HK+R+ zmApPqI`|-T!T-_+-?9vkUSIr)ZKK(p;(IFuAJxtc{&=nXW$fh_>%Y8Ty0ksB^jt>s zb*q_56?29EHeX*nA?Baj^WV?rDDHpyk^OG=G0BePBexH{eVS6lQnz2$?Y8r0i>^7@ zfy#P}p6|||W^Z1{!zL@~k-Ka%KbwHD%SScWoqQV)bKk$$^yA~2UAOezMSfZ?nazAX ziziTZ`b5ReOCCSAeE+PKq5S88JkyPTG@Fy%?w)%cepP$V3*QQ{#})TBM@&5(IQ6s1 z(NE7U&v7PxP3SB&z42<T@b{fY`SSaB_us#pZaDw#f(~hiy=Q(+l*m$?Y4B)TlxU>X z$DK9vW1ik!zC`-K0mGP`{1fs&zd1fB<KZOf{^XOst={+kd3m>G#(CfSQ-0!)&fPgn z%ag*^+P;mQ_jkv`TkmJJPq49OV0%(+d!+D$?<#G^BOT?6o^O^#?qSa>7Tx;s^@`^E z9@0Ohc1>Hq^z~1xT@%+IkNx7yAZ>n0u}-_;Fz*+g{k`)ZZ{HnRZ*^d?N}^lI%*B&7 z%sACA<Jz;T<xTZOs|U5+aSL3vC$>Cy(C$4Ev5oy6`)s|VTV^k>UcJWQNt?f9qJ8_s z`1^mo@{b&hc6$+a@@Qye75{}T_aEm>T>8E3i}IF`xYv2o%Z?^G%l*qMm;2Y2>9@n> znDe<GR|*vBZ9+a(oTz8mcF9w^aZ|H{^4cxTBFhR?_i??IHCb?Lo5A(P?LWd|rrc+4 zDUzOhdb@J$9mlnM_&J~d6?idsi{$igYyUXDa<66o75w6U>#xuk`=$PxFQ^l)KXLYc z^uyUoUd`*uvYMpx%hvu*`_A}1%}%^BK6tA^R@{kCRdG!$FWB#1cPM@Cyl=7AvR}sz z^fhnW8#j0Q%M<;dX5C$=*Z4HWM`H5s`90HZ`-P9KFP-&g<ATL|jo4?p^Iev`aP^+q z$BVU}PFXv>=l=a_-jYmH#rX@CeLwwJkD(~L_Cj~UFGl{{HT+qYFWv}eADfkDe%a%I zh^}=ozYoWZ?-LKoGY0(9So5Rq!3Fk&qrVxa*ztY%&B-vGIq$$6@4AEr!Kv?+*KsK8 zNp!7P-OZMmAM}2n+<`@YQ-k(wc*lKn^??Argj<{Uy;PZ5^k_OuQ2psf$5+R=w<I#; zKB=2-6g{`;b*_PdmwZjfGS4^9_gwdJeC(U`P^zktCC2z&BKM1*+)n@5aZj{zGcYg& z_=LK9`k_rXD^E4{jNr*Un8m`tuw9UWK?7A`ZfZ$lN@7W3JjP64MQ+a9i0I;1W&(A7 zb*z(@e^V4wd8zxj%8SWzVf$@{%O}4aRnED&VybSh3cJPrecC6@)F$w4vAz8A%ZDX@ zzbU=EJ$21d@i%tLQpY16zwUU>=^H(}=jp4s4f5;5qPnYFuD#ysZq}ox8oKgH>j$NI z3pKTaW@%sfc<aTgl3N<Po^Rdvb%)PI-`#f|^%p<1iJHh0-#q<TrOUdggQ=^Z9u{ip z-Fkz|=$ItuvsvDAgv^`!`FOpy&)_(=T};ycEdO4qU*4|;4A)GVn#lfj-kt~zf1!h- ztpd^KeV=KHpFb`9RF-#tci6i2XCeL@SzLry>dZRv+jmC6%&lHsLXpNP5o@kBB+WYX zW{#xEV@o4DuEz6|9>m15P8Z+Tc<9fKJZJ0GpDvzbd6T?I$+LBtjr|vauU2nA)m+)a z_B{N;48<ka-KR2CXl2UeHTCtM5=@B9NlwUpFt?zx@ZsTSnu!~;xYBrb8#-^lb}vEf zoZ4j8HTCRK%5BqISXu9Sw>^pZzT(To%Tb4$+S>L81b^(?nf_(Lx4_HSth8q>?_uFg z>-w=`${Mx9mNL8=T@I(2N~~|LGFN=8+3UpH${DJC@UnY#LT1`BlSfTCUnbvNY`EGX zTUb-{Ruk7XlWVK36KdI~2JSf9$JJA8YPM$)+s1mYPbJstrS{D6DE3k9JQKIvMXjV* z>u&y?fA6>0^S1phxHZ4^!2ix8>Qe++-+a|l^I!V!z{lbV|GOl&Zc;v(oA%zScZZ7H zS>evTrjb>x%XqG_l^=3;jPzL&-u~g3tD8#iJcpm&tcOaAbGrV=JafN0y}<6rR(ZZ- z4_`bya%cKu!Fx7IjmoS1{r)X{KK;%A?wj=zescD={>(3YB`?umH~+H#lR3io3#^pS z8+sNTEaAuzSNU<T=Kt&i)1!X0?`Qn{VW;&wUiQcQ4_EB3nD^z}PYE05k33}-N>xW6 zmv=wzcw6{?e~h}I`0d3@nflYeYn3!h-Dca)ce`$${%@Y+Q{+=Z3IaFm51(1e@znOy z44n^?CT6zI)RmpNFy^+Oy42YNM|XQIZw|fQV7B?7O1`elL-*5~HFLiFdbsF!!aV82 z?~?6n=J8bjooVZwIxT1CzU>X=CC}$HRPjh@ykGUz@X*J1C%$D=`+BW@6BJdQ8?)HB zFfP=&D0|oBwwP55e>a?FF}`eY=<xT$2^VFfcH6q9o_Wl)sy58L;oPN#OMShHl)SgQ zmjAmr%jDpyiMrEz++rP@H@=R}-kBw6{7|Ou@cJ7UgA|vtmOPYlmzr02DwpGd5ck4_ zov)S8XP%3l5G!FV-Dm8aFTCoEkk-^~wYmFwa^9`tTD@k$8(D)Z-`uJeUuzNE_{j1l zOZ?XTne~6~-ratE?(Eyv@}?&2$IKm_>w{l=wrO%-;kx|PzgPK9;4|grt91%xycdP2 zzgQ-tH!UojQ}3(qX}RnjzESo+R&1+$oT9eA-8B8f1g<)@O#w3mGbXQ%(X<at)N5am zTW7cGi0pmWbq}+oH99$sQ><^QikfcD+T71~`F&R5fB9JtKJnu&*!Yo`$K)oKrQ%z6 zp@6A4IX_nqwzfnM|AG-6B6Oz|6zf8ke;}{4I6qm!GnPYc;V}^g2BR+w48|myRFI#m z2P$u4v-209*!FkMKhb?_C$769G{NGf-SZwB%U7N1?lWhntg-leVdByiJgK{dcsNe= zU0(e2{dTzqO^tbM&BmVf8Pa7}<F;nMjomHx;NX69@6FrW*0txnp8j3^)yLm*TS{&_ zT>CTqd;B~7srCE*fB(6=@$s$xfaA7Gxt06(#3#J@vnJDfL)$binFaa_vUV5eemUM- zwoLAF)Ql(RrTJSgoj-s6)o0DgujS?EXWY+UcYMhMA&nEC3^tVf_;*)O^TX!j>*8)( z9pDLFw=HfK%kBkh&dc@5_g(Ex-(z22Zc@;|t?Oea%lmBI-lBCq#dqUY6(lcO*==*R zU{9miorOUMj%Kix`0SfheX69@$NAw_o-HSQwO-Hu^k=bGj^%}>^)740UZ~EWzK!wh z`hT|9S{l`2s>6ArWo9L>dv;`oVF)v~&cmMtChvMr)F!?C|FvrWB{v?EvgdcjzWLWr z$_n{^JD#bI+3JE3ho!)mh~UHA`d_lwiz}&33zxUOEwsktox8)u+g<I``Zyn}sWdfS z6aK2g)p#S|%1qwI4H9|>P6f+1{+q(w?ya%wtrKfSn%c7dEPLkA^Z%t!=xve??6C_k z{lKKl?Iysbs+8b#Qp3S9!o2bMLdm9gJ6&}gIE8nroT}RO_CWEYJJ~4?PVE0`Z@1-C zFE5xP6}VxmLvUJB%GsC&71^<jd|lGJIix!SxW2_qd($=RXQsKqaph1Yxg8fa+P36= zZ<U<=>-IxM`-JB5w!1qI$iC2PbUn5_@1fqCsY|X*YWtzraL#mFy3Jdr9R^w(93?$| z+}-i-Zf@d@)0>a;Fn_rH_4U%nFPVH7W;4!loE6~0I4w1KTC!PE`zDuVYYZ6J&K51Q z3EthYGOHnrW75IH|NJ&?-ci5P%*g1&h1*=uqosQMQ_4PV416obcA_aSSD<R|j@7?c z8qfVT@mx`kRYj!}n{0WFR_3B3YkIla9L{m9Tl2>*|Jp=$ZM&}znogeU^06#yWSRH! zPdabNBU4F@ju}ozMbxGl{<IAB_d0u0>%z327ZSUk7)@z;Dkb4lotd@%M5%1WjWZml zgKIehl)mP;2+C$?Y0sMV?K4khHxKK+mXrs)J~zUDAHT};N@DZMy`JH6ckUnTxwG0R z<VNR$=pFxfOC+yediCu4dX?hkhqRu3lUjYPzvo}175@PSKE;2BPaZC;(x1C3{i>Cw zIMbaM7jmSJ$eg{^w&B3(YiB>aIHN4!C)JSfH^7ps!E@5$U#E-&6dzCFSf*?lX8(@& z^wkevq<r(|1glQ*Z4NEmaO&;CrNvQGR7BfX)^Ob0{8mb_tFBvP-kxo}j%w-CY-cOV zZtHF7FOzk+XvOkda#u>iwu0LpC)%&A{m66e=*q~v`-^$FgbZaS#W?T%>UUE_K25qi zR-pOK)!tLP<i)>PDaU`!U)~qxyDC)dfYF&Vj++C&df$#v-TwF01wXY7(pQ_`-D<Ir zZPizZUvabc=K1q!m%i?<2wT8@WM@QT0(-9y@AvhW1?tMaDyF>FS|aZ5W0mX{Z69F2 zWW|B2#*Y8C9n|}o^gPLCb=yY1=zBeW8~^t5c$;Uu+m!mD`u4dS8P;n#Og~MPm0jR& z5L4ae^IxX%e`|PGPw|FB-zGf_{1eU0%le_T=h_>&-{-g{f8;5amig%}dnoDON4Bzb z-ZP>$$KQ3uJfC05J1c-SbKi=j1AWyW`uBM@OZ^Q0Kigu%hGO+yoQ+TCpY)h9b=rm8 z?6zmx=9d(zX3k_w(%&N#cPmcuZ-0!3<Ts(66<;pT4}RcS^jhCH)bu`|RIdDG#xv~s zj4>G*b-`O+cKzBdxH5clsExz4ymdS;T&J>%pSPdD_sQN(d(sri1HNx&704ajU;Xc4 z8V57~uLX8YLj6tAl~3zd2fh1L<S|`-J%_uYwR+&9oJ+S)YnUD6Te`n7wxnKpXTr)$ z59ewaZ)Gu^t-N~QCy$I9!r_y3x!1P@G5bC{#O&L_^U*@_rtSmw>q`WGdx%APn5P~U z-O>1~>uq-4#{d0`zEmaqEUAv4bMGkAEC0Cj*KY(*S(^}Hk;ElbcYKYuUhZXu<OAuk z?emUnE!@duq_pW=Q^_mK%<IB4CI_6}pO=3=H-SsAG0q}=Px5@FZ~dLiTD;vXoTlB* zU6Wq_vSIOGJ?&Y(3r=iRp492n6nm)iVa4RPKl?eizjaBUHgCz|z?(1EtWe{0eEQ1$ zdi=lQ($z6{<NTUdo^ftdGJ1R}Q2BfFltiz|hD$lBkG05rXgDE!^tM&`qJ&vX`W7s& ze6~cW{YG=ZLj|TjmMra(i4RuH)-)1bJNb#gBQK%MZjnr*X&xq9JSGIo`y0r<SF?1P zQmxu{+|+;1Wlx@Cd`A?dwnpUMYUlr2sKd6!w(hRepPPldob-&eV-{>p`DPx$#C>)_ z`{eB&num8Ruzkz0=fiZ*7Vl1_Ef<6ox;s_)&a8~?`zb7a_4$mfiF_q8Q>AsE&A81q z`NdX~A0<L6W|n7<s#rxA8s{~6x~6Na@0ee`dR70g!YPkRtqQl?Gqe3sRKwxyB9mtQ zWNzhTiwQ}KT{xqTyw0C0rQC3*TKo|6!VZzV*&!2|ZYgfO!5w+JAoSjWZx+>=ht6_X zT=?7dz_`R+PiCjt+%-32=Srq3<W1PgX5x9vA!4&y^Anv0gOd!w>e;8W|91-f{dcsn z+UeueCtka{W&T7vZ2sNK-MI1b9EHV=rOU)3_ug2L{p{zn?;pP&tXL}Ydf%VI$1{aB z8)RRquifnT=%nLzkDd2rE$k)EojmxiyQJUcw+mmQ`>m7OYbTd$Zn&)y_y0d%d%4k? z>cz4DGnH63XunJ;y>`k{^M#nEIoG_D|7P#L#W@JQh+CfVFUb@OMV_}mq_&s&1r zygV1*n%&L2lXsWjaf>r%CnS!4;94;wBdFSC54Y}xQa!H;+Z^3Fd%_QRM6Qmqkuv#m zdBM73qsGm186=rMa{ZW*6I`uWWb(#>dpkq4r&zn`2ftYxcz0j;`Nt&ZIHy8GPAdyj z)2>d1uzm4HUyA<SDEPYiK>r=3qI*xoK6_457eD2;a$2;5c0~1@S*;gbG9p~&{cAPT zUFN90Qt1(kt6*!*T%mi?!Bh7|t3HXl=q0q(hjCrN*#&!&KB>!Q*7yDjP5k>*!ClrU zejCf-BcTf})Zc98y*+2!8DrkV+(GA9s<xYdN!Iu-^=bNT^%gZlnbP#ejkls>)<^12 z*H0F9dM;Pte|K3MOIG!t2@MZbPQE)XBr`EH<72{wuj?1DPF&9Eq!72E{TWBV($qSa zv!UNP=VV;{*)k#g%~|#0YTJ!xUOu@w+v3CmeJ%&9IZtw@nVeX^;qyA3CN_DV>lSzN z4D_;gxmBoZ+&F$t+_%y#eD8mUZab~)-8MH*F1|c{_igVjjmJ#4JgX2Cd#5ow=)$|H z-h8u`99S{aJu_;SO0Zn4Uf!|T=N=-D_H_zgjWw2TS@qqCQ7S-B(4_ZXc!JX63ZI?L z#XAZ`!pwAT1#a`$_-?A1vE$bkW}%NJMm{G+wpO|{@2^eRDznJ)Q0($vnVi{sCMw@L zzVO#J4xRju_lnk9Ke7FKXv?MxmoDA?`}8Q&4!I*-y0T*LG)`WA@NVj}ypYc++@20w zm^ZJHFKKF5|6{vZ_;f_W$!}BB@2ss^o80lb@1W+{%#Rivjw#VMw)*~3ThP2PQ|igI zmAhKE=I_cgHFvnVCGD-|m%R9I;%i=CzA<~JcR-Q-`|hvImZ#o-+0MW1)V*)to}_BM zdF%Q1_TJikLDku;Of7=jN}X=Y)n_h!zp^#)UH0`0WzU8G`5FCMQ}O(P=XJjn7VAH} z=X?%&8NSoq^K|M;nR~lrZoatLEb1EhR-k#wylwr4M{?_aoO`$2=1rC7{kXMLO^d?k zJ$iW{Y5&77&+dLQ3f=Sj^^AzAeY!R2tE=zD9-GOvM7PIl%h}26zX;Dx{xQ31?z!lc z#HI?j7sBoGN=B^ZU6OLuhyLqkoj4uRC-vtj=iP3J9GUpb^VTaXJ`mkHSCD1hxs^3P z&dJ3xao#^CAIr%3Zn@6eyYaDcasR*17OLJ{uYUc@l8D#QXBO+E?*D(eKH>jN`+4#i zk6t+S|C_@2vC->wYUNd-{uQ~h=eAEsSP-`TeS}lN=f9ikjjgOX`cf6vP0u`icFq2h zbE`IaUHfhK>f9H*)a3u)1OHEW)Gd;)Z20WrOLKvwl&#lf6KkYP+tV|y$xCiN{9p!8 zw(_5%p2)cekFwu;_1mf^vi?tv#9y7GQTg_h`QBBZ-&$tmSeq|=Blp`US-T!NzXxl! zm#1ee{;V7N%e!ZH56{L~uVi>Tc&&`Nc4)tTxbc6=jxT~A`-<ESMCix2tSVpF9T7M; zM=(2Yw$`~n2OC(pJg3f?uJ_rM;TA(?%dhgZzKH0zUj$d@&vs^<DgPnK@~u%j%K~0D zxv+XczK!XHpF3K_S3kYNbi(IxU`nGlZ&IGZqY2+jyiT?jKY93e^KsU&7yJ6xPvyR? z<WZP@+>|l7_KQ~0o^$3JwSTia7EGLcG>}zy-qAnI3%GBaEcDCQtUBH~v1yxZ7e~S@ z)$W*3t6Z-4jwf;x&Z-^m{wJX;EBx={&#a1td3(g_SsW$TE>rs?Hh1aLhK;gDm*z8Z z2$+0}W^QaU6IMNR{M={912=*Se$`ynkzd61&9H7_&hyW)e)A^Fzxy*ir)FQb-GzD4 zZ{EIf{3pLz`~EwwHMjRFbENV|XE*N7JaTu-+TB0*Z(hR~F8rg!WBHVt2kRf4aaxvg z^23LA*7p~Mij?l(_P<coEqXIm>qu9L@_${Yw)-^;AGV8Fy8Kyh+c4qCW1(DubI~a$ zkBY0v&-u3J-1ZBTLesXJsAN67E+3w@W^0t!Z+^`^DziS^Quev2P*n6s%;wX@5KcMu z<Mq!kD1Lgiz{!o_@6`6LOB)~k<~6)1P#ITqUVZzA=shR?cSlTb?LDz9RB>u7pVZOv zQ%uSywmWb!=Ni|k+`f>au(EG%?pcYd`oj~1_v9omQ=B2&QJ#AE?pK2!dsFRXj>PeO z75nuhRjb7=DO2wArZ=@e0uA&_Z^bRtZ@X6X<NDPJ5&IU_ZM%B$+X<(dxa%@?k0fqt z&Q=t@6j#dd^5Px#A4P^24}W@md$)JcYuAXE(H>{Df)$s1yOeWhuYs5U)xxTSvh$zb zy}4fV>QvpU@n<LR=v@0D;c?A__9q7(vmXrK&r)DGi%~XS^11hhwrP)?&d2Sv`XX|? z{APzoKv&A%FAvv!-dAOHp-KP!qm73qAM1a6lkxGKd5e29=B#^R{g~&aC9lu~1B0`R zo|_z*Rc^5<as7tPhn$}{{c_ql{e@@y{C{(VG}wy%UkV8=j+wp5d$a6`Y{qBJ+ZE=R z|IzzkvcL9XG2hFp{7zpEb#^~kRq!M!;lu}7*_Bdk?_`o3!zOck`%iP}tEfr17*zJa zxh(2&N9nFDPX9MmeC<#XvU_YZHAAR7<C2l4Y3+lR&)S(nTf$wXvxSuN^{>^W=ssh% zV*Z~M+hG3Q!S;Z9*mar2ew}kNi9fF2U@$I!JJq?3@All)f2P)INoR!Y?`>({=kjVo ziUWHT+m<iW*BE-5y}8i*Zx=UX+uoUP^%&nN1_^3*eR;84tL|J?=q7__Z2zog=h}t{ zJXq&x%=3t&X*pMt;Qj92R|{Xe$%e^%59T^8V-Z%FVa78(=&PaR&J){$d9S;<En-ie zd!ohT(o?6%{j#o?I{jaD{xX~vpmKR$O~WKJl~k>*2M;ksmW1x9ao(}sV*=-@S8Q*b zSR+B5GFj%Rma|L^t-j`bwtK(#6o)w!hKsqK7Wp-W@%Yu&3Cr{)ss!v#_Gmu3;pL_4 z(ZalV?h1A5C<C@hM<%IqW}OmY>TXdrmNXR3P<8#3_}|$!k8MYubbvnJE%Ed0HDL^S zrhERp6-`xOSN#-dp7zA!jec{C#x(x_!NwnYSH2T*KfCnv!Edt}cOSTM(U(OxMy6<s zkKBjL%bYkibu%y9RO#^hRbg;|Z^GH`=BJl_7Tmw#os)Xr^HlV)9gdAm&hd9kI?hPR zNIy+ZbNc!3EC15^8mE6>|A*?wyjk~vKcs<sVS?N>|5x^}w`ta1e8Dt}H6Ty5+okDo zZ18c3bG%=!>lOtR?OeSyS?u7?^}Ei_oYmK@QR$SoC{r<6tYwC&=_G&s$E$T~N?nqp zi!WT}uzUNd$YW#NM9J@E%g%fk+cM?ptQ|s3|7Ld^>}gh05l(nt<CeBYrQZME2_3s_ z4Uctm-Wb+*irl|9!KdGN`N2&8Zqv;^59a>soyM6|$2jlhud7lk<|)ojIQp#eyj(To zrb8{Md`dmWD$ZTig-i)YOPQ{1pY*U@wcv~IJF&v<jF4Afw>?!la9L>Iii!&j##_H# z+{f{0ipSBX!Qt6TvVm;nVedouLLUd$PyctdZTX3{N{q*wBrMLo=CNA2W%|Ur%_c8j zwNH8H^hw}Us($ZR&oe8{w4NU}d-L>W^1CKE@l$S|&z`qlp1ny!-aJjtO>I*8asRA~ zOLprVy2HAB(`ny}Gkwp_jjt$*%gc+)%!-pNx)!qOkk6(|E}N`=Y!PkS#LXjmO}uL3 z{wq0Jp6}iqUGC-WFUjrCxu7&9G@&`AF!IG-2d(q^kGl_;GWDefn*`__=u+GIYqEN5 zO7Ho3GiC0#FvfXhh<v)$-&wM1=QkU%EM{w!qj7J88U984{hKy9d%Hk=*_{2(PJYvQ zE3Eg*o$L}csrr-9`Sa53o!>U4A3S^Nbc|`j^=&7u1*gyZGx6!0JDNfM|K1ebYv1<z z+pll?_s&i{b>8#%3%z;Po`o$P-0u2vk@g|Kes4TjDX_5Nh`vj|Sk|vMuRh9e5Xtt| z+#!2Fwa)qdV{!IRhY!7(TyVZYZrSmI$N8m`4t2`Ekj%(Ddijvg>~DJ|=O+D@jyOEU z++W;qV@>|*T@#<q$l9>kMCz0ETUk!u&h|h3$7~kPD|wjaS97%elR>~V3+8E2?ky3m zeyvNxL~{LRP0)yVGqZiFt9-<ZpKmW8<ldqa@v5=CV#;~luwRYreH*3E+Z?&G+GD26 z&LV!66BQEQg7ug;ADp0QvtlI&_tL4Z&);3F^j+!oC~-^3LxYqf!Yej?O<C4CNg#Yj z+S;1$>PnS$jl1gq2JkE@>fAm<YO?Q<kc6qfe;(gn5w-2kyN@CquY;Cmb+7xYlKw(f ztBSkvW-6Z&3)}sQOO^_qMn*U1Bnd3J`o#OkOpm?Q$M@L^RZr6Y4<F0rU{ITC>?yuz zQGPB11497=1A`SA!=eR6`30#(C7G$kyeAKGH5>3ST&Uis^x$UFF*CD+w-YKpZ29Z3 zbtX$p)FrKV@1KACxJq4nw!TckpN9|3!&bDd`0=Qv#C_M+^sLSe^?N>Exgct`O($@7 zxAOG^IfcHpFP8l%-J@?bD@8nrE#K9yPV2brn#-HcEt32f;LXS+!i;-kCuEbS0K;2H z5DRIWCrlgmjh-OIAiShe9XTwJwteEW7_^%bq?>^OWHAdPY;PsZPVBoY5jxbMI$-1B z`uHpZ?Y2Z{4Mf)p8A``(GidiELVE)??I?ROahn9%jfpU67XgzXgY$TO2HKs8Fz`2V z1|s%q;&v%$w<f}17bZyjz(X4pWJrF7x)f$GWbY=-aO}G`A%-(BENPrby5Sfzyx_f@ z_>ur<QW;_;D81#%p-nL(+=^|I8KM#7)@i63@lHA8a}H=K2x2P8Ic~~G+pBY-6GJd3 zVdezT)DS{*F{WlL6Gga915FhnOxs9=X{ZxNFq1hL&QHdiI)a!C3cBAUnhc#tLWCmr oLKtCzkR?VaVgv-T(?J#>isS%qRyL4Xf((KTYOD+l*DXOj0F{mP5C8xG literal 0 HcmV?d00001 diff --git a/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/NFSStoragePlugin.java b/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/NFSStoragePlugin.java deleted file mode 100644 index 4c798a3..0000000 --- a/java/org/slub/rosetta/dps/repository/plugin/storage/nfs/NFSStoragePlugin.java +++ /dev/null @@ -1,453 +0,0 @@ -// decompiled for interoperability via java decompiler -package com.exlibris.dps.repository.plugin.storage.nfs; - -import com.exlibris.core.infra.common.exceptions.logging.ExLogger; -import com.exlibris.core.infra.common.util.IOUtil; -import com.exlibris.core.infra.svc.api.scriptRunner.ExecExternalProcess; -import com.exlibris.core.sdk.storage.containers.StoredEntityMetaData; -import com.exlibris.core.sdk.storage.handler.AbstractStorageHandler; -import com.exlibris.core.sdk.storage.handler.StorageUtil; -import com.exlibris.core.sdk.utils.FileUtil; -import com.exlibris.digitool.common.storage.Fixity; -import com.exlibris.digitool.common.storage.Fixity.FixityAlgorithm; -import com.exlibris.digitool.infrastructure.utils.Checksummer; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.RandomAccessFile; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import org.apache.commons.lang.StringUtils; - -public class NFSStoragePlugin -extends AbstractStorageHandler -{ - private static final String DIR_PREFIX = "DIR_PREFIX"; - private static final String FILE_PER_DIR = "FILE_PER_DIR"; - private static final String DIR_ROOT = "DIR_ROOT"; - private static final String FILES_HANDLING_METHOD = "FILES_HANDLING_METHOD"; - private static final ExLogger log = ExLogger.getExLogger(NFSStoragePlugin.class); - private final String RELATIVE_DIRECTORY_PATH = "relativeDirectoryPath"; - private final String DEST_FILE_PATH = "destFilePath"; - - public boolean deleteEntity(String storedEntityIdentifier) - { - File file = new File((String)this.parameters.get("DIR_ROOT") + storedEntityIdentifier); - try - { - return file.delete(); - } - catch (Exception e) - { - log.warn("failed to delete entity with path: " + file.getPath(), new String[0]); - } - return true; - } - - public InputStream retrieveEntity(String storedEntityIdentifier) - throws IOException - { - return retrieveEntity(storedEntityIdentifier, true); - } - - public InputStream retrieveEntity(String storedEntityIdentifier, boolean isRelative) - throws IOException - { - return new FileInputStream((isRelative ? (String)this.parameters.get("DIR_ROOT") : "") + storedEntityIdentifier); - } - - public String storeEntity(InputStream is, StoredEntityMetaData storedEntityMetadata) - throws Exception - { - String existsDescPath = getFilePathInDescIfExists(storedEntityMetadata); - - String destFilePath = null; - - boolean isCopyFileNeeded = true; - if (existsDescPath != null) - { - destFilePath = existsDescPath; - isCopyFileNeeded = !checkFixity(storedEntityMetadata.getFixities(), destFilePath, false); - } - Map<String, String> paths = getStoreEntityIdentifier(storedEntityMetadata, destFilePath); - String storedEntityIdentifier = (String)paths.get("relativeDirectoryPath"); - destFilePath = (String)paths.get("destFilePath"); - if (isCopyFileNeeded) - { - if (canHandleSourcePath(storedEntityMetadata.getCurrentFilePath())) - { - if (is != null) { - is.close(); - } - copyStream(storedEntityMetadata, destFilePath); - } - else - { - log.info("Cannot handle source path: " + storedEntityMetadata.getCurrentFilePath()); - if (is == null) - { - log.warn("InputStream is null", new String[0]); - return null; - } - FileOutputStream output = null; - try - { - output = new FileOutputStream(new File(destFilePath)); - IOUtil.copy(is, output); - } - finally - { - IOUtil.closeQuietly(output); - } - } - if (!checkFixity(storedEntityMetadata.getFixities(), storedEntityIdentifier)) { - return null; - } - } - return storedEntityIdentifier; - } - - public boolean checkFixity(List<Fixity> fixities, String storedEntityIdentifier) - throws Exception - { - return checkFixity(fixities, storedEntityIdentifier, true); - } - - public boolean checkFixity(List<Fixity> fixities, String storedEntityIdentifier, boolean isRelativePath) - throws Exception - { - boolean result = true; - if (fixities != null) - { - boolean calcMD5 = false; - boolean calcSHA1 = false; - boolean calcCRC32 = false; - for (Fixity fixity : fixities) - { - fixity.setResult(null); - if (Fixity.FixityAlgorithm.MD5.toString().equals(fixity.getAlgorithm())) - { - calcMD5 = true; - } - else if (Fixity.FixityAlgorithm.SHA1.toString().equals(fixity.getAlgorithm())) - { - calcSHA1 = true; - } - else if (Fixity.FixityAlgorithm.CRC32.toString().equals(fixity.getAlgorithm())) - { - calcCRC32 = true; - } - else - { - String oldValue = fixity.getValue(); - fixity.setValue(getChecksumUsingPlugin(isRelativePath ? getLocalFilePath(storedEntityIdentifier) : storedEntityIdentifier, fixity.getPluginName(), oldValue)); - fixity.setResult(Boolean.valueOf((oldValue == null) || (oldValue.equals(fixity.getValue())))); - result &= fixity.getResult().booleanValue(); - } - } - if ((calcMD5) || (calcSHA1) || (calcCRC32)) - { - InputStream is = null; - try - { - is = retrieveEntity(storedEntityIdentifier, isRelativePath); - checksummer = new Checksummer(is, calcMD5, calcSHA1, calcCRC32); - for (Fixity fixity : fixities) - { - int checksummerAlgorithmIndex = getChecksummerAlgorithmIndex(fixity.getAlgorithm()); - if (checksummerAlgorithmIndex != -1) - { - String oldValue = fixity.getValue(); - fixity.setValue(checksummer.getChecksum(fixity.getAlgorithm())); - fixity.setResult(Boolean.valueOf((oldValue == null) || (oldValue.equalsIgnoreCase(fixity.getValue())))); - result &= fixity.getResult().booleanValue(); - } - } - } - finally - { - Checksummer checksummer; - if (is != null) { - is.close(); - } - } - } - } - return result; - } - - private int getChecksummerAlgorithmIndex(String algorithm) - { - try - { - Fixity.FixityAlgorithm fixityAlgorithm = Fixity.FixityAlgorithm.valueOf(algorithm); - return fixityAlgorithm.ordinal(); - } - catch (Exception e) {} - return -1; - } - - private String getStreamRelativePath(String destFilePath) - { - StringBuffer relativeDirectoryPath = new StringBuffer(); - - String year = null;String month = null;String day = null; - if (destFilePath == null) - { - Date date = new Date(); - year = new SimpleDateFormat("yyyy").format(date); - month = new SimpleDateFormat("MM").format(date); - day = new SimpleDateFormat("dd").format(date); - } - else - { - String nextDir = getNextDir(destFilePath); - String[] splitted = destFilePath.split(nextDir); - splitted = StringUtils.split(splitted[0], File.separator); - day = splitted[(splitted.length - 1)]; - month = splitted[(splitted.length - 2)]; - year = splitted[(splitted.length - 3)]; - } - relativeDirectoryPath.append(File.separator).append(year).append(File.separator).append(month).append(File.separator).append(day).append(File.separator); - - - - - - - return relativeDirectoryPath.toString(); - } - - private File getStreamDirectory(String path, String fileName) - { - String directoryPrefix = "fileset_"; - int maxFilesPerDir = 100; - if (!StringUtils.isEmpty((String)this.parameters.get("DIR_PREFIX"))) { - directoryPrefix = (String)this.parameters.get("DIR_PREFIX"); - } - if (!StringUtils.isEmpty((String)this.parameters.get("FILE_PER_DIR"))) { - maxFilesPerDir = Integer.valueOf((String)this.parameters.get("FILE_PER_DIR")).intValue(); - } - File newDir = new File((String)this.parameters.get("DIR_ROOT") + File.separator + path); - newDir.mkdirs(); - File destDir = FileUtil.getNextDirectory(newDir, directoryPrefix, maxFilesPerDir); - - return new File(destDir.getAbsolutePath() + File.separator + fileName); - } - - private String getNextDir(String fullPath) - { - String[] dirs = fullPath.split("\\" + File.separator); - return dirs[(dirs.length - 2)]; - } - - private boolean canHandleSourcePath(String srcPath) - { - try - { - File file = new File(srcPath); - return file.canRead(); - } - catch (Exception e) {} - return false; - } - - protected void copyStream(StoredEntityMetaData storedEntityMetadata, String destPath) - throws IOException - { - String filesHandlingMethod = (String)this.parameters.get("FILES_HANDLING_METHOD"); - String srcPath = storedEntityMetadata.getCurrentFilePath(); - - String pid = storedEntityMetadata.getEntityPid(); - String iePid = storedEntityMetadata.getIePid(); - if ("move".equalsIgnoreCase(filesHandlingMethod)) - { - File canonicalSrcFile = getCanonicalFile(srcPath); - FileUtil.moveFile(canonicalSrcFile, new File(destPath)); - saveDestPathsTmpFile(iePid, pid, destPath); - } - else if ("soft_link".equalsIgnoreCase(filesHandlingMethod)) - { - softLink(srcPath, destPath); - } - else if ("hard_link".equalsIgnoreCase(filesHandlingMethod)) - { - hardLink(srcPath, destPath); - } - else - { - FileUtil.copyFile(srcPath, destPath); - saveDestPathsTmpFile(iePid, pid, destPath); - } - } - - private void saveDestPathsTmpFile(String folder, String key, String path) - { - if (folder == null) { - return; - } - String tmpFilePath = getTempStorageDirectory(false) + "destPath"; - - - File destPathDir = new File(getTempStorageDirectory(false) + "destPath" + File.separator); - if (!destPathDir.exists()) { - destPathDir.mkdirs(); - } - StorageUtil.saveDestPathToTmpFile(folder, tmpFilePath, key, path); - } - - protected String getFilePathInDescIfExists(StoredEntityMetaData storedEntityMetadata) - { - String tmpFilePath = getTempStorageDirectory(false) + "destPath"; - if (storedEntityMetadata.getIePid() == null) { - return null; - } - String existsDescPath = StorageUtil.readDestPathFromTmpFile(storedEntityMetadata.getIePid(), tmpFilePath, storedEntityMetadata.getEntityPid()); - return existsDescPath; - } - - private File getCanonicalFile(String srcPath) - { - String fileName = srcPath.split("\\" + File.separator)[(srcPath.split("\\" + File.separator).length - 1)]; - File canonicalSrcDir = null; - try - { - canonicalSrcDir = new File(srcPath).getParentFile().getCanonicalFile(); - return new File(canonicalSrcDir, fileName).getCanonicalFile(); - } - catch (IOException e) {} - return null; - } - - private void hardLink(String srcPath, String destPath) - throws IOException - { - String command = "ln"; - ExecExternalProcess proc = new ExecExternalProcess(); - List<String> args = new LinkedList(); - args.add(srcPath); - args.add(destPath); - int retValue = proc.execExternalProcess(command, args); - if (retValue != 0) { - throw new IOException("ln " + srcPath + " " + destPath + " failed " + proc.getErrorStream() + proc.getInputStream()); - } - } - - private void softLink(String srcPath, String destPath) - throws IOException - { - File source = new File(srcPath); - if (!source.exists()) { - throw new IOException("File " + source + " does not exist"); - } - String command = "ln"; - ExecExternalProcess proc = new ExecExternalProcess(); - List<String> args = new ArrayList(); - args.add("-s"); - args.add(srcPath); - args.add(destPath); - int retValue = proc.execExternalProcess(command, args); - if (retValue != 0) { - throw new IOException("ln -s " + srcPath + " " + destPath + " failed " + proc.getErrorStream() + proc.getInputStream()); - } - } - - public String getFullFilePath(String storedEntityIdentifier) - { - return (String)this.parameters.get("DIR_ROOT") + storedEntityIdentifier; - } - - public String getLocalFilePath(String storedEntityIdentifier) - { - return getFullFilePath(storedEntityIdentifier); - } - - public boolean isAvailable() - { - try - { - File file = new File((String)this.parameters.get("DIR_ROOT")); - if ((!file.exists()) && - (!file.mkdirs())) - { - log.error("No access to folder" + (String)this.parameters.get("DIR_ROOT"), new String[0]); - return false; - } - if (!file.canRead()) - { - log.error("No read access to folder: " + (String)this.parameters.get("DIR_ROOT"), new String[0]); - return false; - } - if (!file.canWrite()) - { - log.error("No write access to folder: " + (String)this.parameters.get("DIR_ROOT"), new String[0]); - return false; - } - } - catch (Exception e) - { - log.error("isAvailable method fell for storage: " + getStorageId(), e, new String[0]); - return false; - } - return true; - } - - public byte[] retrieveEntityByRange(String storedEntityIdentifier, long start, long end) - throws Exception - { - bytes = new byte[(int)(end - start + 1L)]; - RandomAccessFile file = null; - try - { - file = new RandomAccessFile((String)this.parameters.get("DIR_ROOT") + storedEntityIdentifier, "r"); - file.seek(start); - file.readFully(bytes, 0, (int)(end - start + 1L)); - - - - - - - - - - return bytes; - } - finally - { - if (file != null) { - try - { - file.close(); - } - catch (Exception e) - { - log.warn("Failed closing file", new String[0]); - } - } - } - } - - private Map<String, String> getStoreEntityIdentifier(StoredEntityMetaData storedEntityMetadata, String destFilePath) - { - Map<String, String> paths = new HashMap(); - - String fileName = createFileName(storedEntityMetadata); - String relativeDirectoryPath = getStreamRelativePath(destFilePath); - if (destFilePath == null) - { - File destFile = getStreamDirectory(relativeDirectoryPath, fileName); - destFilePath = destFile.getAbsolutePath(); - } - paths.put("destFilePath", destFilePath); - paths.put("relativeDirectoryPath", relativeDirectoryPath + getNextDir(destFilePath) + File.separator + fileName); - return paths; - } -} -- GitLab