From b68a01c62866c7342fbf4d6f414404f0b3248b5a Mon Sep 17 00:00:00 2001 From: Ulrik Sandberg Date: Thu, 8 Jan 2009 14:32:50 +0000 Subject: [PATCH] LDAP-157: Fixed package structure docs and images. Also corrected pooling default value. --- src/docbkx/configuration.xml | 15 ++-- src/docbkx/images/package-dependencies.png | Bin 14073 -> 14128 bytes src/docbkx/images/package-structure.png | Bin 16302 -> 0 bytes src/docbkx/overview.xml | 78 ++++++++++++++------- 4 files changed, 61 insertions(+), 32 deletions(-) delete mode 100644 src/docbkx/images/package-structure.png diff --git a/src/docbkx/configuration.xml b/src/docbkx/configuration.xml index 9c5578f4..9f24cee7 100644 --- a/src/docbkx/configuration.xml +++ b/src/docbkx/configuration.xml @@ -97,9 +97,10 @@ if it is true, Spring LDAP will try to shutdown the TLS channel gracefully before closing the target context. - When working with TLS connections you need to explicitly turn off - the native LDAP Pooling functionality by setting the pooled property to false, - particularly if shutdownTlsGracefully is set to false. + When working with TLS connections you need to make sure that the native LDAP + Pooling functionality is turned off. As of release 1.3, the default setting is off. For earlier + versions, simply set the pooled property to false. This is + particularly important if shutdownTlsGracefully is set to false. However, since the TLS channel negotiation process is quite expensive, great performance benefits will be gained by using the Spring LDAP Pooling Support, described in . @@ -206,16 +207,16 @@ The internal Java LDAP provider provides some very basic pooling capabilities. This LDAP connection pooling can be turned on/off using the pooled flag on AbstractContextSource. - The default value is true, i.e. the native Java LDAP pooling will be turned on. - The configuration of LDAP connection pooling is managed using + The default value is false (since release 1.3), i.e. the native + Java LDAP pooling will be turned on. The configuration of LDAP connection pooling is managed using System properties, so this needs to be handled manually, outside of the Spring Context configuration. Details of the native pooling configuration can be found here. There are several serious deficiencies in the built-in LDAP connection pooling, - which is why spring LDAP provides a more sophisticated approach to LDAP connection pooling, - described in . If pooling functionality is required this is the + which is why Spring LDAP provides a more sophisticated approach to LDAP connection pooling, + described in . If pooling functionality is required, this is the recommended approach. diff --git a/src/docbkx/images/package-dependencies.png b/src/docbkx/images/package-dependencies.png index 765b3e007633f8bb203ab802682a1117d999a4dc..91ae4af60521900a0fc2234e2d282c95d89978ae 100644 GIT binary patch literal 14128 zcmb8WWmuHm+b@iOlr#te(jXmzbazTfNvm{7cM1%RfTVPHmq?4Cw1glzbjQ#P&Aafv z|9d~ryZ7^9^I;A+hPke});i-C=L%O-k;B3u#Xvwnz*3NxeuaR5m<4{{LPG?vdv*h* z2nf7z1!)OQkD0v;9EXIpjGm^>lrt55RJ@vqFW7qCd}fstD^{~M6052uTMlo6M#bGE zX*-9?14r4)^poD@*_ceS%AR3{1Y6p@(#ah)qw$7xoA;(PO}XSUJ+BFP8X&GrNB5x< zvf92|)!GR4pQcNL!l5^Q&+3k0X;AkpI9zmi|LRI)|5$XmUR@H68bU|(+Y<5qmu(gB zf?FyCUL=cQ-~}zGnc#oDp$0|2f5VmG{*8$Y@ItNWe*f-2Z~RXm`}cbP)5rd~-v4>G z|MoS&-M9p;N7=IRJRVwMNV;YbHa{%)p}VCRf#bN2?Y|%QceJ$JT>cSR-%47!SfWuR zdUt&cX%erg8VrXLy)&s{;*w+?_uctp)t|NNxJ}ecY0E%16Y(5s2M?w6ldnpBV&0?) zkABU5qs8%U!Fa)|u`EMl8JC#dz_RAGrsZ{hb0GNrb+gOXT$A(0V2bnk!P^DrtcXVm z#fiGX?Eb50ga(yDmwv>I%%wv#=0D&)4iIhto(9Oy@{prqt| z_=A{fBm6Cq7>>u*-rAnElFQTFteo7j&w1~zP1^%0Vm8tiuFXfB;cepEhmy=CgLr@F zD~hj737JbKZeB6wKY`U=q^m?~!1)sQtH>T)?^=j?Umx~NjF^vW;A?$)Vt#o1K{2D- zt^U7V_A4@c&UyIryte+c2nn-jJHv>oX4O|YaYj&ItPNioEDadSh28l?EBIllYIXV< zMY3>v*0|ugLB6Zo;`UxbqB8`GtonE`g?qNq{%$nJ&tsr#{MG9qH7dJ#c}8O=lUiT2U|s1?MoqK>%&4j?K{}6T3T9kD)fRi&VRYLJ0C1|7Edv^>PnJdulB{WXqSIo zPqlGq@3=j!+HXBpN#vI{#woT9bqteWQB_pLV2`lfpKl|xARSj5`;7FF;KGcwP6g#p z*`ZNqpQi1pac8ozA4%c?D+y z^@MLO#^aw0A%fFS$f(zwTHri!elY<70R>9QqDQ^7mMTF(LGJ=}>&$g4w9#gNL=wYc z(5oV`8}vIxRaO7R08~P5-xab2&L^0Z{@2e*m--V~%*3pzOJ{m}dq2_2u^W7)5(=Vt z&~6W#Yq~ny>*`5OOOr~JZhCS)*#@7#vfzj$V$*B)@jU;#j!QUUf;I1FdDFk+_@7H@ z7KT!I6&DoHGcarz-<=vK4ukFNF|Xs{;mK+Gl`i1y;qls!k%i^ad)uC9^5gZP$cT#X zY4qcrHI(QY`ub$cA^vx8f4PB}7S8i%;qSb9HT9-z9F|iQ^+!JNmIW=sh3j_Sa2t$ofbsqE~oS%2Vfa%NF!+#!0P^Ax*>t#K~bXT1}ZGGR~0*!Q$B z%`R?_^6tE6Ac^gftG>LzcjMcmWUJqW59hrwC+cSA=c9*}$}w_JF9pZ>V_@^Mm!IDuMl*iLD4C+W9vzQwiP6akyqr~IAoHf} zW_J&@iq=HEYth_uX+E5MP5`(vQ7{j}oSaO>HO4O+P=nO=iwUmQ#2*YB1u z{6KBViFPq&R9ZB?bTqEp(+3cR% zRcT9Acx4Mrum#HAbA1c%xa%4i|MN#>UfZP9d$IHGAXMx;Gb3UgYQH*aX8)v+o4Z(o zMh7mw5(Vc9u8I$E^)UFmzbrZqh}#r>JY(rh&sM@{N@71zvb8r|Arszjqww?;8MQ3< z3zN9Lx&F%+Nk3r7Z{V!A?9#cl|R4EO))n`It+h_Qm0 z?OD}vdzr+hpB+4DN4>`yj6l0M`<8dS@8>+4MkS1M z&N!&&jsIIrRME@Lyji=Jz4bKvr1Y*~WEP#u>usG5uP!XU-MJE28OKSz9@rh!4!erYFl$lasMifojU%F6b`pJW|JiB*do!=hK^xv;mGYZmFf92%cZ zP%3m*+5%T9rczr1@k(2=!hg2P>b>{@AyKMYt`7I4I-w}k&G5IGCLc2U~NE;e(eJRl_Z>8%^H1Kf>0}0(ijB= zMI}?1q|foE+5LANmckLKx1Fw4PsFDy{sZYmgKcNO zy!`#;kJkkjij|hbC5`*8{QQ_|XQIb(R}7cPUSBsi)2%KqFCQFKei2ez%QY=U9>MEi0zP+uSA#gNM5A(0SaAR!9YTnRlK!`Ii>;rGSGg_f39KdY4VPQ|Oj=#*THpvmay z=qEePsZi*_0cU#R3rcBWMmi(vgXdvsC9v)7={FY)C?`gRZza=4cTP)6N@A~%j-0Fv zmtA_hKfE32?_XU_RsZAJ+H*Lu2k@1l?9nq8m!OIUbGkT`S zo}Ql7rna@72IV~z-mK9|pBeB$DM7`48rIw_)m5%t#x-E&gqR$N_QXvb>C?sW+db2r z!`$Zh^AGtNf_piaBi`NPu|D0CG}H$#TYH{TlarJ8j^)cCE6fr?c?jKhrw&0g99bVl z#2{pIm5cvGasKtBtB0Hf|2{>YeQ0E3W3wbYJw5H)m7U@qJ}Q&n|M6U+a@XzZ=SMQ? zi?N5$iHTsUHy$3JwMn_t_)?TPGv-jk*?VFr@76f{Q{E6o+LuK|G%I;agq4?yRzG<{ z#K2DLcVPX3lpGs%%w+x^5}}-y1-FT0)(c)&Q zCEUi6CO(#kkYETc$K=i_+MyZFcdwz-Rdw)~b)82xVIWk`g^*8EQc~h7B&R?~XJ7jG zVdBL^SxX~;6%!7y^_#3TtZKisUeh9i=cYnz`(#nxdQ=j zxo~~Rlwpb=>UQ*>ic_J@-4q5oYw^h(xON#2AD<2~gVPyjI9N7M{hD@+ zN*bY|p+Q4%+@L{`gGd}UH8s^6N~rm0OxJW<-hyB~YUDD%J?GTS%#8YF4|;73o99G^ z$T8h^eM3WMh4@l}zL$)Qj6wliEgGzzwD9!wv;yP7wtZr876}PSO_rh?Gv@5rSl}0P z&L?WqbUdn=%srVG4)=lm01Ab=y1IfZ_wT~Y>qurDYKMk~`rZWO>$S;RC2su6&~NiP z1^q6!^qbB2RYD#SYQ*>IVlj~ST$c?cB?{vrR+O$w#e$_m>f{cx2h|R*bMu@8CA*EvJCTE=Ca8jOioWTMam02#V!_t8qVE_$xYzlKcw;o&xPxqqO2pFvDtQ_ z@Jt+4RzV@0D^ZPx?FJ5@t?f+xJpnw_ayK*gc!_!bp*YVjP5D_j4STZ9xHn}061UdF ziHz71M0_*>Lf6oN5K74WtSxWF1{|zKQ&Us#I@Hb`(e(Jfi_^vk$7N+@rKDK#rcs|g zXGa)w>81128`=)Th+2HC{fa_Lj%U#;MiajIEz>g&!3)PKx#d*NcdHN5lYoZs%TS8j z!PVWp$M!Up>3t#+5>ip?_2p#8?f%{E{-;l$UK3@PmSUKxy+y@Y<{j5EBhi%x8C39T zm|4o5*!{j<4X7@ouRbkF!xV}$YkI&X5RUN6Tm4SAcbf-<1_+gz_lX@hd-f)OxMN}^ z?Usv~Gd2EL_YVvNnK|&7^??$|cIjU#G@zXZzH;tzt~##6DBvQ9K9!qoJu9CY z9EZ&7dKrv_1O+t{5py{i85F~8jn>LMeza=|X8Z~X3E?-Yg2C*1J>R~~>3kE*WLEgj zM-*%!)^~MRh$Vhl8{Of-_=q>1k;5OSW3rMC#Upde&&c$k@Tu_-DmyEA%M4(HNOpYs zGCU$jdHBP-H!U?a&jqSvj>KIV=p5;!uU$blmVbP-`bFfamyaAjEv^LNy9T|w+S)kl zQ&I!GJ0wl{e>ITBTqw2n~@+9{o#5(|wW8%%J;U9+5~xK;5VizSn~ z44XQ%K)F(|eQ z%8Cl|N%sYhm5&WJlb4lzF@%(#0#u5wPJXLy!Cq|K36w^!F&xs36rjMStKW7Z8O{3~ z4_V%@n@%h_d{%x|phxqgTg7bL1#@$A^TSV;vdM0l^`c^}KNAxY#6^O-J&AEVc)0a_ zG>6r1m6Qg$S;Ko5zXc#E{vabE>FetwAte>`I@zon7FBXD61Y2*mI+{XWJF{%c+TpW(|5p?+_7Qqa-6S@#NAxPyM~s%@grQ zB)PPdxnNmhywMKIJiGI!BCjQ{nL+b@``>-2Qo?HPdBaH+9O2tZN=h0#vazwDG!a}c zu9V#la!2C@0bA`wZZ3^(1p{x{q;!pzqSfIH6iWUBfB8fIG6aO|vv~Br<|x;!vC^;p zcegr5o-$ut1)e#EoEG#T~auhmR*XJuS zjyY!D0E*fcr3P)Qgw0GCI`BW0FVfUSm+FjHP=Zp6pf!eVb@%-0j=P)v34cM5 zmW*O2M(Z^Jmb$D&kY|q{KaL;2!Vx|HX3Dj;zD`quCHMv_7i~IvwZ^H8xIl~9zUxDl zTMM**){Y}UFWOly8&^RUMHCQ!o5oo)E)qhrXAvvX553{Ap}xM+Ef+3v9DvF<4tpqj zGGjz9!(b}Tw^@1Hul?{<5e=;uGl`8nacNJ@CSrK5LnbRztX`nOoOM(4r&As-LzEBcs9dP?)Cl-mQ5~;NE*7 zwBNcS#Po5&_rW!L0_YV3s0RxGm?j_#(eH|*uW&iyLJhgdAbHzp)XWca^))nTo6#JD zi#OKSiHL~403z*}<*^+8t>z@wZM8>NSGTJ52m@L4TEruN_YpBWX4cmZK&k*~GXPl! z6gs5NpZkSHMJv4#-)K3E8>}Daw`FIG6Mfs;*^xrSAMgzLtN7Mqbk~-ZJ+k%!GUsad zqc+CjzyW{ijdNniSsz1I0uE#gUGC%q4n$!NPo!7E$;k;9nd*CSMMbbJ%h>$*I34Bd zHm`kpWghL4|4_XnG?%r}Xsn zIZ2dy1DfB9=nu?midC3?~Q$e;XRq*pHL>*4;BzwCjpgJ>cRm~5R1y|YT=RFoae)B#M z5fK3;ujQVco;6fK9ec?8Rk{}dyKld}+yRAZBg>!ts-_O)OIHXMxA`Ey^SZLTJG@k@ ztokNn-)Cd7GpLmaeZ7+48`V=S;?N^hLs|$fe()UhiuCR9HBi1m<7u&9Xa}3lI6TB* z*nBeYy?;}eECb{~<935H4uh`_03U0Y0T6i#{{7reTbsz#?;n|Or9qz4Jp%zHr&$Av zt`IwC82VIXH*4Sh?kKrKIgNJ@K%W!nG|U*`oF@cb}o}I!qz85-u@f}*9-T8VIPXVBEPPhX<8h!Z0T47&!V;|c6%5T zAf%ekPi-$GBy@NN1Po%=#@DRvlvn>tgF14ei)&Fq0C2_dX?8OKK6K8vbqrhd=0tl!0pRy9j)a z+kU<^Bm~9Q|EQ0FxNY$NqRYt1%3hC?&w1~+onMaT$<_Ft?dtkuCWE-*`3-mjL9UZ) zXuZ^Tshi+WZVuPyj+VT&2SDUlztnpmmRVt8T)^O>m=2O)k(!nI|TQ3}4d-$lKdz@4czf-sFfFsrr1NiT;>N{N zErmoRCnwMDowc`%?gl`*$d=jMB9b&J|JIdpC1+=6D=VfGvTzS?@2g_CpQoeab7Ts8 zlay!zNmreRfICUEU}9p*|1vZ-jv<_T!Qy>lBRGX%{y$(1&DPRdc6OYQ#oyfxG~)BJL5u8m6mx^AxUi)4L7;8uU(XWuQYd zQvc#iI-a=qQUlbp+GP`OI1>^R-{LqOj*Y!S^E5G`wU5=P3|j}$8pjGW3|AMIUX)q~ zx;(G8`8B7v!$9=5v9_jKJtvl{08ebOJ2;h9j4jV2-3%m&oSe7gLOYMRj-sM4Wd=S~ z4N&oe4aJ`T8Q*h6@IJ_;wX(7jbWpEx>OD~EpT+krIrQE*NjBxSC`tY;eYx~NMgf!s zYS%bz8yCE>cF&B!el#{TjEdTJydcKP6>+r~7FNJdkQt_0t=&v{%mnU$tD9S?X|Ai61!;gK8Zi2vORl>B7!+SG#KD2X zY{#1x84;0?kg+m>POVS`1G_kbe-sgc0TksFz9XjwHZNH;s3GEg8++}?r3>z@{48F1 z83kQV7UtH{v`NzD>?C>5OYX}zK3;#W1-Pf0V^C-Iah>8NLhI~xXhq=-F~jcVDJCl8#>P>howMPFKr{EXso^ghK|kY6mAQj1*2AvLmSN0E&2J#cBEvvYXJ3Zxp)avtl=H^jVvr=0j3ES&F|)Nr6*?K*FBNE z*vK00>&y8`0E|)eCqmq3F}kv%+k1w|GQ+W9El|7Z6{jX<78U^SfdE*zTof7_x;A-l z?EvHI;?`z3Q{)w6d5O?%lAnfZRYb`3aD0ax(-g}b8xj$^0a zLLih?mD%=TFck#_1>OK1*?gf4mB=4)fZe_zHB+Tw^Ew-qqXbBmwI|Ya8^A&S-+_UF zFVlFzJ)?#KfT^qsnIeg3u%2K}8CC9&DIYiGqIXCbYG9<=1Fs^q(;*$mfT^jeAR850)O~M=M0Q}X^>jPP zya4(VXE0d&ZP7Ik~k$fe$aJ-)Akr$ksxj$_rV#08k(Z~##KyjC7jcKBFVHf0l$BS+4vLQtrwd34 zfeuY6bk*0?n)p7k>}uHWtgeUBKYcGC_5fJUWHytP&?e`i+M?E0gR03Lmu6rIX`bCX zI$54)(-xnao>k;bP2k-tBZemczx@KFV;kGJ8h8{W+~#wDT^Ffj#ASf}t7Ztk=1+MiYNqFU3aC(Yo;s-Ec_7=_XSQK{QLx(j(5;lv zN)FxH)d-eKAjBK{9RB#cZCCR;Vc*Cd>gv`aGJYF`iX-{!9$o@;`47CrxfTZE99mml zRkJ^sm#A$&E{59?8;Jo;qbSSIYh0)rmJ>=rNm^yBHQxbAdx{_6(Ov(0Jo=@g;^VeT zFXT`Qo|BU!N9jw5@AnU1@1{ zFlj}`&WkkFgi_ufpn4$lhqb_(ZGhundwhGf?|;yV3Vz)8=Y3BnbgoLT0Hg<7^Ko#o zX(KaDz`0OZp48?h!6kb0Eh9<`&3)(O7 zr_BeX3wD^Gn$$Lj-aBx>DSQtmM;hmxBKM!x0L;cW@3ErOew3KVq9b~>Ti3qrx8Mth z`d#fguMbL8R;{jqumB`>6pzxtbwbO1!MBkP7O;)o19^9!a}+V56zQ>!X2cf1(j^LE zEvSbsajeZ@zaf>8t@JsS?yjy1ax!LS1ryd4RaH8}AJI#%2=On3k8g|+)3EUEIx=$m zdplw%#bDk_9OHgDMMVq;Y5|Ka^6;%5bOnSvf*@P1%v1LkXrCJlm^W@M3hVLrabuV24{79pjI{C8eTI)4WU??7mk zHzl|-RZ>)>+VE;?2k5TFq7$eIXw*wChWNVjhPm5bIyySwA!(ii{Q~_!jS|2!Nwm61 zD)CXM9bfGfBt5&Zs!A1+xNHK$QKG$4_*KFaO9dzpEE7=Hotkj1!8QOZjZTVN3W+;K zxj0x+6)*6mpn>FPLuI^!N&rl^T$p3Fo}t7#q-$~+ysVgax3{$geYZyj*dniHD5_tx z_GbcJ!>7EhP2~AA6-lz7T$WMH1d1gUH@7d-w%RnAsi~ytwSxuX0OhNG8}5BY=s=5} zx8sl|KeR+&OkR}`C@%zgJqAvo9gaJv#Z$MuK>~%zk29_ z@#v9bAb=TqOuxvzagq8IxgoLW@dqNuN7r8F=H@`SMNE$tE=83Ao(|Zq6xHmq4v)ik zbOZsQ{C@-dB>QH_XtiR_v9Gr`w&8U(>KK{;XyCxpQ)@4P9=`|uJ-n9-#j*{BgWqgx zDS4Uz6o+`~IC==A)0C_8)T((y6_F4Cmy8T7O40QV0Q{B!GZ$rGV4&v7RPDa_4M;HK z@SdBFmKIY4nm~8i$ptL}nlLT`Gi* zj*KJ8i1aEOjvd-%-H>~vK*@hgA2gqn8X;>9^$0Sxa?azkaQ*uCAp;FIbvLMY<8FA?_3tqNAY^B!c$P zRGd=trMa^*#lI#eos^Tf>m*TER~LZkGkUR-xwu=b5POJNxK}76>F!Qdhl(qMMp;7d zhtX?AMMYfXFxmcWF}nU*-ZIlZkV8{y$Cm!*c*xJuG;nPOp2$M_0QUlEV9M1OCPR0L zdyA~kczk}i(s8}U5l<%|&s;yx9aAmD!ZNVrV7bOb?a{isYuinucEZGV473JgzYDWc zq42Z=rJE$yrmtV8tQ!<@#1f2VK9sYwW(CwPYXyG~|Ef?uUD=Ed}4QcpJW_NTfSiT@4Bn0-8 zf^44}G@O(yM0ks#bo$R9^Tt_FqhsMpKXE3KJ^gS=de5hhjWmmIET@1r2FydJyWHGd zM1gqW!s4i7oxLH+*M4Ajr7!*|E>F-Rg)T?>hp+-ciE<8KZx2`grw5ufCrV&I4PcmX zy$8jxzOi4_Nxk8K>d8QB-gBjJadFkw)~;H4^rhip6~BM@kPyX8in>74;dR)(->dE< zKx}DkXqZ82r?orNumift%gj}(k`aU9*3LI-d(9l6fgEWH#>JxJxHD+Fb49o6Qk=y* zI!uLxeV3!cj#VZVj94U9cLNn~j=+*1jR}e7aSIfCBl3leVl-#L*RQX&X~OIU2!z0{ zym(%!a^(70v>GEOV32wtvX-Iq=bRc;f#wZw8qgH;%FC6v1d?aHJw9ILIUd-_qnY~T zuCil?(gNyl-SAGT`BqK7vRevY7HUQj4Q3X;f0s<0YnJ?7R#Jk89vbdC$^HyDXs zMu$9AMCVD2day?#mqEYN$)A@}bY&{J8`rt{)lPdr~TXquz8P zP9}lzC!fSMLF`zzfG|WlaH1_c&=~CqXU9frALZMiI>|29+l#F1jl! z`CvHe3z)$K?%gtJ)n+@Gu0%Ou@)H&l6XW0*cAuthX3nJ;d4;Q7M!hRO7qvKL%geHI z+~fj$N6QaSl#9Tm8~g7Cy$bCdT61(Z4^oEexOu5V!=Hr@xRf3kIFQ5*(Y}=6Vk5W? zPgTr(-#DA0Qe-+2hX0ORPcDV?(UzzISw#L|boeXkR}$h>F_*F3;`AcN#T&0K@Z5jW z7fN4AM#h`*m>yt((G#q^nJvwn8~M#d1}`NgrL{`2G15a{T)$O5pv@d@-ffPi zGl3q@c~{nPA1Lt&rQ&=y>+S(E(Nh;Nl^m|H{IaOjg9XBIkOuSt^SV9?b>q6}s0>9} zQCIk+IzF8&R~MCViH8<4B}g=oZs{;7tnLB}Bj%9t<|&Bp*i~X`YD9BSBq&D;616Xj zFp`;7NBU;LTnydKvv>vFcaLT`a7I{YxASHf=0``>H8fV-TGrZ;oS4q%K#AcuCRszB ztb(Fn^nISd2{6>wPU5oYBBUnY4`ZdD`oWu}SkxS!|KWE@2%;W)<8|UyHtrReiKW?+ z!(jJ5IzBdo7!vkS0+V>)wOK1o=l6+EsFCzk4owDJS=ri2h_n)>l5Gxsg+olMI)J zz>ax?_dpsv# zgAR^{Na?RVH`-kmcJ^o(>#whK{UcbmE0V|B*kC{$pK>)x?A3c+LR372BZ2rnn3n@_7cm)XQxHP(8B@+`C2_<(Dh{0j*i zG?7tl>x;yjp05DCqm3erILX(}of5l-Uj5lQwK7^|5-P48+*=qK;hblNsjBErI$1PY-&-OVBi#>q@1Z>&{9#lbj! zY}lA$(+&s5M;EncW5a`k2`}*88NYswcCVF9QD6yS8)uS9=W@n_`y~ixt5Mqz+=Rl_NE23Rla$Lp^m1-BQEGO?^iELohV6Aiidu%}cPisd=qO^xDN`Zv^TI=8K{ z0uPy`zb0hgN7=kFcr=2%?xOeuJTN&P@tJ;HBK8Kz=fz@Fa$wbP@qMX0aLxO4_4V{@ zc|k_ZQl-mRgmjt)bS~qd~;A>Y*?_uxlhEYyTeJ82hTYYT7nQWM{IXr!JIZw*{L!~pSZ4omOkibfC3l`XH(5Qqm#+8WK3o;p?!dSmS7(-T zQ3NZ=OpGu^6<5D%=1`Ewy$}Khc0l&yvoHn()*|S+x}FxkOpARHs=AE#g4N(Fr_XXb zP$R+Y@f{dYyNrz%pk;jMq5ggx11@sW#57 zQcS*Cz5wHQRC?-U~CdIu3S z(AbRiTiNv%(e>SzR;{ z**!8oyL3SE!BG1p7_&Xb|9i$pT6e}bbo8xvCnC9#?;UHW>?n{ERQ-HtayI5?8Ei!;N$@4#=@v_`ZRnZ{?Iw3nGl;WOzT;`#T)5k9>uoJ`hTcZPN= zrK+SPKoU%^)2KmNn3-YCJC**2M-}$IESy`YlZNgYP`eE+s{0d2;qA>=3+^!%pkY&km~ z7Q4&3y8wdShCh+3n9C;aI2g|)Kk6_aBBjsiAqL~wK9?t3U=(&E)BFBefr#CT@i$i0 zwc+4wLg^J)^mcH-1jsPH^R1p7Z6|RwtN*`oX=Zk$or53$jyY#>Tl^~5t;2rG|4r$> z;^J~Oyngm#_4h{{v@yQz1ZO`ES9%T=g9t#ihgfE+{a*a%AXY^! z*jXTTjbZ=&D*yfP*8h1%>u>D*dwA^|N60i&wTwq9~G-vzC-Yq Y)D5#;{m=|f!XYTgs7O~zz6t#Q0DfOmjsO4v literal 14073 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 XHK-v$03+VL7S diff --git a/src/docbkx/images/package-structure.png b/src/docbkx/images/package-structure.png deleted file mode 100644 index 253a01913b5a48e90c06ebd67d578165707258da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16302 zcmbumbyOW~moIn-?(Pmj5(vRH=)pa>TX1*x;7)Lt1b251?(XjH?s8Awue+zeJ9B6C ztoZ|0QB*yg+O?nklf4O*mlZ=sAV2^B0LT*J!U_NY1Q2|@5BCB59kJv$5deUyZ3YC& zO8|jn^7b~yW|l?(fNOe!sv9eo^*xBCZ=s*Bk1vsav9H~T*pP+?zFV!2JF*H9`zh=f z`)3LfjgVjR)yjndlJUD~Y}gp;8mu6GrFDn3b+`5V*87Tahw;~yaj(qh^y_c9zPMt! z3Y4(`G;EoIrW4kF54YzH^&kMmw+?7YGC_o}yi_ipg zFZ1YVAe?XE2Y~bejx`iOdIRSS1|aPzPfHA7Lh{`Ur&i2`P}_r;=-b&?AOl1&17ZfN z1iu54e*na13k&g>0dj-@TBz@4j(|)qfc)jvU8hZgv<@tz07Uls%Qj-thr)JbGV0rC zxi>yQ6qJ0+E9rU|A{hYScN&g7IRg$bQ~?*@n)7EB1#E{skzS2&=Y!6eo}~_y9s#sz zI8xZ}-goY=P`S7ppt6R$m*HeIfH>d}K^*1h2shFvB&jbJu*;0kVo^p6&Jk!0SkVX- z5Lx)3Hs7>tnmIXII5G76u%57~-mM-?Dus_M7byxUQ^AHP!z8QDl4t3jDMATbk*AT8 z+Cx7-V-{OLIXjsl%gDHtVVyE(^fwbeg~5F6cHrrYppv1@cNyUd^`N&_zdZe;j=E61 zNL=-PVtTGr6TVC}bz9X^DE4RH%O)cF{p|DlS8w6>ZiqI&6+zjZ?M|xN?-J#4wthVMRy0#Ea_g_% zbSQEw6^4D4u*@K(x>*sTi``D`n$eJ25OfW59hp@}=tReXYdty>y+UH@>RwP&Ra8{| z__RuQ&rqA*?o)eft7-iF7PTY0^z$HiGMb`Ae6@$fa(rhyO>Qb{=?>v`jIZQ;_{0T2 zhDgnI?JjpC?>&2Hqd`?J2q9RaLRrVh>)Q0A&&&^LPfPdKCz~bBj0RnrR2s#6r2M&j zLSqG!(KV*FEYEe#eU5(mtXu+WP*$zTEqt6#jxgZC()I06fsp3CSqCpG$m8Sj|U3}KHDfJE;Go< z%d32}oc~VodAZoNNMYs|9M=&Q0dlIBMmTqCvxa;5(;!R|a&UxNWSz`is!G}@dICKK zy^WfcnZ63TK3&mV3S&hRq?Co@}MBabW5J<+YoP0m^SVar*;KIm(9LM^_bcob?o zW;I5>Bs?mJ;F4UDVTmI@!bdV(ow%x)|ARL$k=oF{hG{y z+62d^{(}4xWat1FjBG!8Z5hQ$d^>c{iz6?h+R)VJFHd7Qg0ui$%->Y&OiHj~}e<*SE_1SN6;| zn!A@nth(5?&%)Na8wS=@t!AyKZ8*+tPj1{QpEt+E9>j*Vc~^URzekT|!ttuRK2_e2 z)D-d=fLz~~1kSIoaN)la!{))N>fRz@qxQG5dvre=TkbrW9wpy$o<9t%@7i?JDA6QR z6Bb0t1dk?-DRg`4o)R*9IjnX8gPbO+Sa+S zII7;o-1NBHxly)(9$MFV51)<4r9e9GW4_OS5UXuyTAJ?X9K?azI`gY!zQSg1C<`N2nA3hbvC(JZFXXdTSffDWPeV+Vce#)k3 zs4rLw-#z67g7WRxh|b1Ohb;K)w@sD3FRNDkZ?7%96Y|>@Y^^ z%HOV0_~`iL&?z}+zWQ{+@e=KuWrhUPF}Dm0@STI84THQ$1=tn=2G*hEH=sIHAUGW$ z8V@0JDM``hs{#6%@6WFQz{koDU&Vb9l6?tSeviJ6jlqWh2&pr6NXiM#B4 z-}ynULT!<+l@AdQ7Zytnl!t=YLI$KSg-l|lg6jptIfoS1qL1cktai8lO z7dIyxr&Oa_<5nXzlWa1MHPsmf2~MV3CcKWx8V(;-JB7FL8|NE7gsPvjpuZk|B5GRT z>u0P_H#qx|$CzuMR;a6ie*~4pYSl;7N`WgHt-4)O2BN>H2Rrs9B*a&L)yHPWNW@~t zlr8VITB(=Iuc>)UlFNP9wR3*{M1`1#y(@{$ubgfU(m?4{AfC}=onjlUORnXvt#LeY zqPmH34}Su}5C=6lE8%6ZjxkFxB6A=zuLB+HD(hJrm>12=t;~Ozw@i;MuJw~I#2z_L zG})?VNJSq9@N@y!raS36TUJa4l02gQbYtEJeNm<)W4x^mFYkT-y9=jPs4|Ni`z*vsJwL zEU)_Nst)51iisux-WB`(I?kv$x|m}2{i5qbGWoKo?aOc8>-|L{%XxHkL?u2cB5WcviFwDW`!nE4r+ zY0sadk;c_^NY;R@{Eu6YiI1ONFh8_F>%em(@bzivF9${h5ZE<0@^qzku~8gRa0t(e z5cWp&a`&G0z*4gQHKZM)yR(v0 z>Y{U^>n|2BYE>FlnpR4q#wykg6}1>NN46lHwwvfZDnFDt;%72tY;D~x{T^jk zE%B!alv41>kXsiRn^&GNC;P>Mn9xd-l84U21eUZPt>EK+t9AlISvk=9m}Dz+Pv`rZ z2%nr+%01f4w^vl?nKyeHCQRO3c_YPuC;0r{B;KB2Bk2(pUwn7P)|}8 zak^0}o9H?(T_X*?#=@pDH&u%-vIV#AauT(tm^c`+fQmcL11<&&3Q%zlGu3(Lx;rv#qaJDa41l}^ll8p7I$#GO3GQB{B!`F$e1WG z2bi;~=e68E@jGE5!iu6AgOY_&MS%(bw6C&ly}Q`U(%lj*=UWl9?&l+zEg-LIiHdURxy;nDNL^86l#^BkeMQi?sAbJj$8Zko2=&Za?@$8R=~IK5G5Dtmxp)5 zlFtcV$`Q(Wv&l2YaJ)ye1c9l~bwahoPR<9#$A?FR_{juICl{;~_+rUDX(X&XM&2o| z!@1q|6Gy+SH0(-`DaMrArw{e*zFd0))z;EnR^o2?elUa!TF`yr3<=N+fh16afHy@$=*+&7 z+I&BD?O>hoy&|Qc6$rxf8G_K58I5_!P5uZO&Dh1(<#M$)=U}kS`1_yKo-GL9zy8?YA46Fb z#^8AH#PNyAxc6Gy_j1;$uBo|)h3>b*LwGx`Ls~z-M%2*JNhey`yN7KKGNkt>gQ5-o zI0OsIcv_hI>V-P)eTDApv-;YwCMT<6wfyYqCU{Om^L_<-=lu8s9SVI&W}ajV#BNOg zsNK11GxRJM?|EIcI4AFTtcL6hzQ=iaJgYWi->2!$?}J@!;^%6*jPEy&?8jJPl)2TUVxVd*z|fIsDh+%2X_Xz@MYWh*n9dsZST(sK<`Y69o+2$hU2P85aR$z{9%S ztHlTTI;(SuWj8?Yd-D&CBUFeT-gKQcJ^Wv-{BAyFlM6*rxdl&R=juy+Vn_IB{Q6C^ z{w-|Zkwnn!C=Ynm3#N;dK2JJ-PLOoOhwQlbz1G?oAGT2ixVE=;+!Pc*ygYVfMSwIA z$PDp$P%Jfy`%70i4kl!z0VL-bF$=3o}cw*(FA*?CU~R)w7$&rX}to_dDH1 zYYfMCB!weNv{+$_319l}+tdHvzL>_H?z>$7$%B2Jzv3l?(D(XeU6-E!_|Ey;PAJIC zMoho};{vHTyy*(L38OkyvF zQO-z=sJRoSL$+p$;Wa14ehaoX5A07tD`9){-h9i8%O$dsbF>g0i{Dci^IDQL`B5&M z2OD1YgTjr5eYCV}=q*-W77lQKO--kI%oo&%y$!B3=)o*&q$Yb0be*OARPpKxui!k| zw=Y}#F=e4wdc0EldLG$qg!v5u`f`&tgSSt8vPFjmDG+3sf3Dt3qEY5ds#}!GwLY{n z>IfGczE|l-1`~M^F&_YrX*`u5 zs-ld&?OnTAd=n&T-T!(2^G$&4@=S}2j;>&&^{uGa43PZ+a)x+~(}W1%$a)HCKVLC6 z0Z27`AH4W__o}U{(pAA-*dd_m@({_jy`ff(*Sl!5_hq7kOE=gXJ6qaY52glGee;l_ z2+(5aa2d$~FSfKkBpno&f~6Lo{qUv$4>T%Oi>^}-epWGg0fAIIwNmpTSi3e&sW9yX zcOvFI7U<_>Qlar6fAI z&i!l{ZN?;Rdli`=WCq+u*sHo|>o29LHwQR*wDspcO$z$xSi^I*t<~6Ay|TPpn0F*D z^J*)#J8d^30S+v_s8Wr7%S^s>t=EC2{^;WM3kINtz7-6gr>&+hu&C*={?tv^#5UY7 zLJ~!05I7)7!s~uR8U1a`<6(d@Is*KYFIs6E)yBOsz?OS6!c%8)b>40yf8?e2shF9! z-jQ2~KsxiDw$f<0T!m)EOS_)WyUgXa22TW$M#{a0$D#~6EJBI}gTYw?BEZw$Dew*+ zQc0*)9ayfW(??%esyqf{go?k__`baU6ud-(q2r!V=^k|5*9AcOV5li zo1;QPG1v--W+&jxvWde%kg%a7n% z_AD*$L?9~|d3rp?EZ8Md$za`Zd>0d|Dy-%C=)1hBrwmVU3rH$#%s`n-$le@xzD@Xy zp>LEa7xz*ZvwWzRGg-Ll%((&?{W0R)8CZ1UrXK6);BfvFVfRZ2*_zWIkD#l4?5z2? z{BXKp-DzGM^1i_(v+80tVcRG)aD_#_vm# zWuqQqLGFc$vP9Ly#44-0jS<{4;Eg#GHikJ+e|wJAhJ35k5F{A(@6a(d9a6fcK->m(JpqK8@=}Czus=z%j>#vQ5S*jvl2z(ah}%`ucQ$dFw!)aAdMD4 zgy(-;4)5Q1HX%tJ5(_9Z^v8oA@S=LZDd2Bg`-IlRDBx_;`u5PzzjS(MJD&gN&&x9C zRrA|5d5FH>NxOE{@+qOT%>#)wy$+2lUit5qeb=<(vsy!^j>Nfp0=FZIf{Li@c?>>MwA}B|sg^_WVbN=M*66Ij z>ZF=|scL1TJSbz^OkDOI);B(QIYAr2?v)b<`Kdkr3{-;yoNX@_r>Lv2f3>2uR#z&z znLrgJB0HV;$tX!x$n4#b0L3TZeHysoeLQ&_HW}B2vE3V4>j07j zJlf@F8Z{)%%t70n9>~6_vbg#O9yx z&vnhT9)}X&x0ipl98JDH-@&a=c3FFO0xT1M`nv74-!S%N$DMaicz=Q2M${?()U;^2++H$1*0$<7)3;aUc%yT}|sqt(D7S;CB>_Y=LIrF7qYx0t|IaN)*tP7fqa2x@=@Vl$nL|zE1 za{hdr#|)^W@9py8=8SS+OGO6g73#fwQbY3X+;DqlpRElJ9dVjVaK)U|#A~N~Pf0Ih zJA~MtlkY-TntJ)w~WgV7fTiu z(0uXkt99;UJkG^HFb;jufs%?H}=&=P4x-Y|0yxAkdWjF!$+8xkIbUl6)#c23s zn3FnZQT|MdZ(DA%x~q4M)P;F8Gs$jLZEj|efmEUl)gE#<`pJ!A=_q0+0sPhlzboc9 z?FHk0Nq@kkh~KRI1@9jca5AQi355<_`wQOSqX1nBndk?5-N79sa=1?eXA!tuKsX8n z!}~zdnK3l~#@N`^NvHU~M^&+_l2JqWLTDV^)tZBooIv05#3AXm>e!|;xbr3ZzjdkM z_*EfLsH&(ARlk-HiitU99={^%?WRD(>esoxT=c#yd}rV5^F6H7F?Y83AoILa`8bi! zpPPNuvW%I*w%8-nQIa^F-*nX{+8j=;>^UwKpL@Zj!E-Z*>AmUkvNU6Hq+op7sPjgfk{?^+Y2Ab!6PQOP9>FFwgXp0~kCDdZs4sAMl5h{W2-^~PR zd-C(jeaBcDeT{{-c$F*!{pU%$T>BR9b}zqU6NSZYLXlkUY_f4a%^twFed#HBP;$)? zcf$DUD>orXw}qPS^)B})Lu7a)NrFl$;-g{1FPc@a`&5%8)cW~|JkY+@SLjgA8HYRD z;1A0m*PgF=v&vy66jDQ%RR^v2pzM$b&TfhFSfFBsi6Bim;0zupD{OLl@F`5-%s4{O zM{Lywp#+76ocF;19`ZqB5Q+&S8;t3c5KR?^_CaU?ScWcr;pybyS6%(gZrsBIT#1Uh zueY)}=(s}eO(}wWqX~1}I$P4by|ko!Uv~}J3$F~-w$}DmLEFX%DDM?pd3UlF&zxAtw(+< z9Oi)5B+w=)r|)+fd4NQ)>}5NU@uUt9%^*;NW4%z0JT3c)xl?eTW9I8~_^!$7%bk-4 z>gkXQSe*6dw-I|zOrS?Amup*y=(~5FBqX2+vNl*Lvh$}>fCZOJBly}2#Wd|jd(ZRX z6fma7wiR{51L`R~JwSWHw&TmT1L3dPB7Io%By$3 zjLSR?+zX#!?Nuu_Y${_#K0Q<8Z(JA1c;SnLe!K6%9v)77zAG;;xi4CP{Jpg^QB1uv z<5HM|>qy4udOZG##Hj%%QT6Y+uACoA$`U@ zm2T^7&TABXujNyg^a3z8dIc8cE+TcuM?kVaC4U=8W5)5|A?%6Q*cmnD_o{0$NuOKulT%tn9B1eSL{ebU6EWofL6>_mn$Ss6dM`?I6u| z8eS(UIMNX;xa_nk24#(NjG~wS#>J~6@twB%&3>q`Bqv{x?To$ zE#O0KygEOmA_4jIMw)Gi;uU?2q3nHlH7SeuUb>}9nSZ>#X-uE0yX@EA_~D5ToDo#` z`}^NT-F1BN;B!5{o~Mx=<|^ej>o|OijxzXe)*vp|z%qc3;orTvqYU+5aEIa@=fp!) z`dM(B3(2Y8m>R3Kk7TNesMMS+uoECm@ZAw%!gR)#hsav@GkQy-lERW`F)CAO?5cH} z_ZV89C}!iR69ldn!{(eIT40`V(H&BLeCq~Grjz5BQ2mgTwK$PR*)g<&ZgMX{8jcG-^%)t1wmBvY&$*da&d6I;^L`; z3>_6;lNhy>>2TlLZ{2r9(5k6})+5!*R5E07o3t4@yzafOws38ljIexdWL=`$4JEt{ zW6yK8w};5bS;mm~!AWIdGuwYpkhF$<5#Lg9+XgfLL(Xu(_yY$w)3;`8Q&UBjvM1P0?3d(Q1t{$%z#NvWv~x5_@j{M!|IQvFRWpV3Oj*3xAf@oIn`*BU<;p zVcIB+-t*ll*eB7bHJv<|{GE4W-vY6*JVpYLr+tWQ54Kj;D@?uZ6Bm1 zXABjsJBvvpTS-q?F6AN>XtiH`mWU9w?Y#5e zI#3z&z8L%N@MdycJ>zuUkJu8+@-cr5ZJo8n0wSK(xmjzq&Y0KH2nmR| z@T=yub;paP@#k!v7|qiD#NWiSg&hE=V2&|~S@W4nHsx!p_#r#QB!*x%PT{T9CIJ-{ z*~iTq_!sP{&x{jnU}7&@?c8VZ1N}mopDyH33>v1e4wR5moWbpd;iCz92s!HcsAsA0 zOY}Fos3J8#BP6ME;+xa@CjdhdO>lF!&B&zrxn?yUts9GtpNhx0Cvmorm?E#Qm!{5= z{LB95jS;tbNYS{u%AEd573I8f4g)!$N0yOXTf4zl=)f%mBMe(w<|rd;+DUNceAp>* z+Af)%P7|4O(F}uDD)O-rndMT~6gm@iIo)Fv&zbAfVS#F?8u^o@T=((zv@1Gvbpn?#gXx-%%d#N zNUqocdyjk%8$Y3;p|AHw3E9k*8jTD1>6_V%SOL>gs1S{8ZZ|2Y;SAnijIrSS(#e_Z zf^J;Hwk?WepVggW`Dl2l$nEy3ik={*aJ~?uYZ~06x7OA=F4tRWYilbIEITu_TqPU| z{SdrE(lVuQoYJp8)lz9Pn3^*x0u#5aw&K^fmwl~itTW=%&UN!%V53^l=D12|H)G~C z!zh*e0Uh4vHA9fTny$}WZtz;ym1f=uSr|IdwkngMyhDk?Id+a+!Ruoeb6eLXlo_hX zVMr%NH-923|4ZeKMe9ih&6%e-|7Ww28VeG_1lCLHSyb@3%%$5|vho&clL7fUA~Z1Z zW(*^<+Gk6O!uw|5bk_X8xhde_cSl=%C1z6FsRlFXMw}gQRZ2lLg@3WFe~4Givm~_% zoS?WM*e)3WljQFLV==D4v6!5Z$P1yd7z^+cb`nk#x};IwDRr44}{$s#=DlO2w8e`y(*`;t7JlqQK?B-O+D zb4mBRORH=QOF(csIiJA^61tfWy^XU@Nx@M<3LPD>ZTov#3R{OmbHL&n@2#?;xZBVC zug$pr+YfiR6SG@p`SPWfP65Vj0%DVrVJEMym@QJxziop`)A+rQtCh0I1JcPUC-5Xd@lK@mm{Y@uM+#O2GeT?+|8WH5X$SHh;#$Ta&FQt2QAjukXQ}h?DTQclI z4YBioJV+u;h4a|)26ylP^X0NKdw=W1hR>$~ z2B1*6*XaS(_92~I4ZP!Z)4Xf96K1d~Fn@r}-UlR-j;_4n@2*_50rU6@#yamaTdZUP zo;fhTB1LFlinBy)r62gXpVG+(ZJFZ$P+Y(dVoEgB5U;H)J@`b(gQz2VcdCgb{Fqxv z_^|!IdTGbJ!TTC!?2-EhmJ^t2SA>x4yjIs^TFo~zab2QWTzvD`_r!~Q8uZ3{`xI7< z8G8&_(2uY1*A$4{L4v?x7`+=2|CCu@>3Bhs7FKt^{i>b9>5O5ksSqamI|%bG<|;^f zy~YJ<6w1z(JM|8t=~&go6d+??ZF(ufgK{B>8A0e{xP!E5r`<&08V085lq2{U`LEFD z>FJrvmD+Fn4@%Ix$QkXfEc!&G4N$V$AL**1AX}$|rouUx?Sn2FSBZqiT#=EufI)sN zJ%loU+7Nwj<$cFZY2Rq=d}W^Wht&}a|sSJ3zeNpLJie*@_7kgk28j0`oY^% zrQeJ4FWXom&UvoH!r&F9S!KcGqWRYsxqKR0rO;1Y1!`65Ax`m1gMzw3OsqW@1QlhP z4aG{Ie|9qJcR?MtrM|_y?c%;E7NOkFvYltXyxfLP+oP1o64*As|NgC}^trxk6|A!* z;e0ep!IZ+L&gRo-dW#9RgQ?R+TIs*s*zwM|8a9@k4Ys?Ov0Xjo?`yfFX2O%71b%<- zKDBN1DiS`~QjjnsEaJnk<9^cmEHmNiU#lM}&s}B4O^gyS(sk%4R77HGK9&EKL`)uS zvhi~?uaG(N`B zaSZ(y+?6Zb6)y7D@CytX7=C(jb?NEpSE_!9H8Rv^40GNyEsq%y^)G6^&1t-v$Lf>2 z+%mg7rHt#$Uh!*9cl+yP%r<%NB3Mj9@+_;rC2?1TFJwHuMGX?-SSVjywTPkB=gcO#tc9w$(`Lj+Ie0 zgeb8ibxU^pnwj(59_&bAk1BAoHZbpcN+$zxr(SB=%m3GvL}G~YSFIRA6RP0>{Hf`S zr-vK$=r>v`&!^JNpwYqm3JQ~f0f!&}+55izN=os4E8peeO3;4zR z;pLCT$m{l#2@@HRppt|-5Oogp;@dxU=V~g7LNd19p!sUXiDf-jhJXV;{x{%w0U?yF z;=)@*V$4-MwqL(|S*^FyR8>ui?*j+B+|#IeLM?_D5|;q6+%egbCrPA3Q|ffiA$P*#4WJ_=o}6aeglkodt8 zz~}!fETU21#IWoTkeP^UDNz0aNA@p1R*i+lfJ>U|0R9$`Z!BhG6_-_=B49y#N@ff# z7JU$(nbssk7oH;7vX-MRLTl^k%S@BQzB9PXbGK|0Y|&AF4zh4#T5c!pkW(@I!omPi zX?Ne5j%(e|X82 z|7}xhoO(&&KvMl}Q<|TrR6r{Ir-Mxx_O1n;&UNnIVOovDe#5!+7n4L!%uLT~PKxGL zrN5y!@d5g>ji>E@Nn@%#J}w;K<|I2Z75= zR)l8;IYk_mf9R^1?cXzoAsOUTG#=Z6V`x4;_CeyC?%Y6YJt}eG9s5-_E}$p|xYF_4 ztAm{>Ekt`zNh}%Mr+;rP#jymC{UK{%(E&S-A++EWXeBp+Lr46t!icUwW-`DA&IvUW zD$SMt8fBK6QcImwtvkwp<;IT%E}+o;YE|o^TUq9+T1r#(6w?L@vJ9I7pDyUXSWg%3 z)GeiRlB3urk~)Xa3z%#20pYlS;ACCI$7nuR3nzIp25UYl0eF@R6l}}*8~fsEi2SAc z1Dgtb^R4Dzx}KN4U0q$oJkCfH$3JytU#q=?+jed45x&u=IWlVE=@!44673&ZmlV-5rCmV)S+)oLY&z6N*5E8tP>iK){zs+^kp&Y#^fwB3 zoVL8~IV+FFHKei9R!NR2Sa`UZRg6K~FT=Jy2gF6zp10C1w(xYF%WsN)dc4^ETqWGz z_QiT&0KaRy*`DnJ3v37v;8Sp``~0}{a_L+ihkw7P$yJBvkR0mY%_^3TiDe1sKixyK z@3YVYze7rHAk2ab17J?B{lsnor8HeLWSKVscQq%6kSc-hU#z6bQxwMFo$GNoN%w8z zCu;laon~m;Tl`{S5;bJxBJJlF14-dGrGQIrkO8^7*r?bt^KwDZfvIC0~-fI zGJjjdB57yTy)^yEU|KJPyfKP!Rr3iL>tps=!U?)23M43_@3%XVrHs)Wl`M^ZC)c!? zg6!L4kh6Q4-f=Gp|F+){+2npOoLp%Z9zTW|xy^kn={b1OUohpYdtnH>;6kLS*b{9{ z`)P3Z8VLjhvV$WuYswDr74#RNU;qQf*7m`$!)I0LtJfG7VIf@mphh9ES@Wu6Y|OKEB$S}I-#_-pKTe3i8C?q4049h2Ymb2CiLfBj`rnzH9Z~X? zo7MZl=+ZO;+GGRTiI?Hx$xo-fg*J~UJN_>x0o+dC-`NRaU+~;nIWx)6!~dqS;vwgvs(QNI_)PY% z84>^)v;|44*u?N$Eg`snmx7=tXkF!P^)wl!s-XBUCjlQ8KrA!sNeJ#99@=B+pdiG$ zx-i5fBq;t%UjXF&{K_9QZXIR>s;l4vb#H6nqTtu}xxr{L_oiaZoIdgqAlX69oy*Mx ze<1g_$lJn*0k0rgl3x?@`p45hY}mWm7xKLHrQ6xkt4C~|a9rbl@w1N|4*O8ehL#CA@FSQYe|_; zYAKX2lb;p!du~nD)(oNg;rrX-xeLx_mk|fxzNz5~@%{I1`g0m(^QTa-KYy>~C9#d! z{-fb*am4393MSrurRjFH609C1PrO=fTyNnG$= zt|vCl!^xT1R#}H}x zWR^|Jpm|rT)n?^91$?9+cuZ>X^Vyr=o3EgYtVGAgigLI6o&5^A^h5_Wrzzj*S5o5M zT!kv^GiPo!RiOtD8DbO~pL16!v%MAGl4M}X&vnC96xb5U30D--jItDX=!&XfM+VrE zuq&Kbamp}R2!cog>)`HFDJlcpBuU9-@!Qyt>B)TsGygu!Kgh>yiDQ4&%3TDRmp=#l z4$|d4jY$YrP#-??1)5(LD2VnHJ^DW@K_oim7M>_lFu3_6{PBO_O`vt#Ae5?DV6D@v z|E&Vyx;y9D4||UH2U3YUVmOZ^+SKb@nt zzC0Ib9i*x0C!L?iRW!_oEPj8}>z{2eWgdX_AFw{Bj*QLW8wR!&zJVVFUDG5)ttfhT zbj;#bsg2peDDOwdQ?O_hYfA<6=U=fBCm&&UkkIjC)5&x4jK8?AgF@@$0aPO$x44$^ zwfB%pA1UJ-y%BqPfNS2*r?$xKq+ChNd$5Q|;b2ekn1-%85kCpA(DHZ5#$|6u*x7W2FD!dkZw} z;{ToMJ%IayOGVQ(mkqb!(S@?oANsEPkOWzcz+3*}yV0TUeIO^WcIi2h9!7F)L^FGK zjYSt0iWA6=_1=WQ>9BU|J8AgE^1!ZES^4lfa$$O6&14b0$&+0v?7aZdEIkvJ)udtI zhMGAp!)Va#J`%cwrdl(EByq^lyHxTMB8TMSv)|`mwiRugC|p1Q*!iIWW5uO{?#0+3 z{QEp{u3!LR-pQ*T_TT_G%HSZQk(z{v7ij}Zvpg5KD~Z*(8qgX%5U4cXCnA3t<7QLf z7lGGECx0{C+CW18RQKxCsy~td_6JnMrm!kmnG%H-bhiuAPN4A5n8=Sr|Irm_TAvjM_d)-?D=-MQ=M-XA@xOw5 zq{3KW$XNpiA_RH|sR;&550hqsG7Fv4M?yCx>lZCgPfx)Un(J*I_b%&RG*$DJU~i6= z+hpLYiivF0)mBw9S|rQIVxQ(czRWWDcv4Kz>gOP+D8kXGI3BRSLv9ihoy-kP7kokq z#YV$nH#7-!hHBRM)`k_9P=?akxJHb7mq1y~u`7GRa7b+uG7!Si%JNZsoxJKpXCU^X zdJgd^8^E3}6+iK`ei>i&qOlzx`C9fZG{s%DF3bdw^gV&Y-udM=J+wsJ733jJk zHzVhJN!{QeL0%)fp|5I`t^6Wz3=IJOJfYz%!iDD{Y7qMRKo^zds0O%vqGDwHjRZ;} zrMrK!fn;kN3146xz5IiJSI}AML{!{9FM{P_b;&Hei*8cc_?L2I{A}iKQ{?OamOKYM zxrG7;V;G0Yt&KJ1hQo1(@CeEVl4GA#3XwOvC5uP0zlJvQ{r_=9b z!i1K5_SW|-(^E*9idy%XXXWKf4R-f}>93>v=W_r7gt>37(b=lLj}U()uf=q8|gvM9cPY3qG5p-0PhxCVJGld z)i@6@y>l|=r31;>$LR2qg?udLf1^1*zAS(KM+C<`om^QZ?sZyx3{7uy%5pp+e#;C| z3U<88GNuKn03GmmCy;YJWRUw(bKwL0`y(HQ&{2-4SgUK3vh+-dYb+3c?6ky64;u4GTG0`4lQQPGUn4<;}{uR3a dUT5C;E5h&9dQ)R - spring-ldap (the Spring LDAP library) + spring-ldap-core (the Spring LDAP library) @@ -191,22 +191,20 @@ public class PersonDaoImpl implements PersonDao { are required for certain functionality: - - acegi-security (For Acegi security integration using AcegiAuthenticationSource) - spring-context (If your application is wired up using the Spring Application Context - adds the ability for application objects to obtain resources using a consistent API. Definitely needed if you are planning on using the BaseLdapPathBeanPostProcessor.) - spring-dao (If you are planning to use the client side compensating transaction support) + spring-tx (If you are planning to use the client side compensating transaction support) spring-jdbc (If you are planning to use the client side compensating transaction support) - ldapbp (Sun LDAP Booster Pack - if you will use the LDAP v3 Server controls integration) + ldapbp (Sun LDAP Booster Pack - if you will use the LDAP v3 Server controls integration + and you're not using Java5 or higher) commons-pool (If you are planning to use the pooling functionality) @@ -276,7 +274,7 @@ public class PersonDaoImpl implements PersonDao { Dependencies: ldap, ldap.support, spring-beans, - commons-lang, commons-logging + spring-core, spring-tx, commons-lang, commons-logging @@ -289,8 +287,41 @@ public class PersonDaoImpl implements PersonDao { - Dependencies: ldap.core, ldap.support, spring-core, - spring-beans, spring-context (optional), commons-lang, commons-logging + Dependencies: ldap, ldap.core, ldap.support, spring-core, + spring-beans, spring-context, commons-lang, commons-logging + + + + + + org.springframework.ldap.core.simple + + The ldap.core.simple package contains + Java5-specific parts of Spring LDAP. It's mainly a simplification + layer that takes advantage of the generics support in Java5, in + order to get typesafe context mappers as well as typesafe search + and lookup methods. + + + + Dependencies: ldap.core + + + + + + org.springframework.ldap.pool + + The ldap.pool package contains + support for detailed pool configuration on a per-ContextSource + basis. Pooling support is provided by PoolingContextSource which + can wrap any ContextSource and pool both read-only and read-write + DirContext objects. Jakarta Commons-Pool is used to provide the + underlying pool implementation. + + + + Dependencies: ldap, ldap.core, spring-tx @@ -313,13 +344,12 @@ public class PersonDaoImpl implements PersonDao { The ldap.authentication package contains an implementation of the AuthenticationSource interface that can be used - with Acegi Security, - as well as related helper classes. + if the user should be allowed to read some information even though not + logged in. - Dependencies: ldap.core, acegi-security (optional), - spring-beans, commons-lang, commons-logging + Dependencies: ldap.core, spring-beans, commons-lang @@ -330,9 +360,10 @@ public class PersonDaoImpl implements PersonDao { The ldap.control package contains an abstract implementation of the DirContextProcessor interface that can be used as a basis for processing RequestControls and ResponseControls. There is - also a concrete implementation that handles paged search results. The + also a concrete implementation that handles paged search results and one + that handles sorting. The LDAP Booster - Pack is used to get support for controls. + Pack is used to get support for controls, unless Java5 is used. @@ -350,7 +381,7 @@ public class PersonDaoImpl implements PersonDao { - Dependencies: ldap.core, commons-lang + Dependencies: ldap.core, spring-core, commons-lang @@ -363,7 +394,7 @@ public class PersonDaoImpl implements PersonDao { - Dependencies: ldap, ldap.core, transaction.compensating, + Dependencies: ldap.core, transaction.compensating, spring-core, commons-lang, commons-logging @@ -377,9 +408,8 @@ public class PersonDaoImpl implements PersonDao { - Dependencies: ldap, ldap.core, ldap.transaction.compensating, - ldap.transaction.compensating.support, transaction.compensating, - spring-dao (optional), spring-jdbc (optional), commons-logging + Dependencies: ldap, ldap.core, ldap.support, ldap.transaction.compensating, + transaction.compensating, spring-tx, spring-jdbc, spring-orm, commons-logging @@ -397,10 +427,8 @@ public class PersonDaoImpl implements PersonDao { - For the exact list of jar dependencies, see the Spring LDAP Ivy dependency manager descriptor - located within the Spring LDAP distribution at - spring-ldap/ivy.xml + For the exact list of jar dependencies, see the Spring LDAP Maven2 + Project Object Model (POM) files in the source tree. @@ -414,4 +442,4 @@ public class PersonDaoImpl implements PersonDao { and the project web page is http://www.springframework.org/ldap. - \ No newline at end of file +