[Webwork-devel] ValueStack abstraction
Brought to you by:
baldree,
rickardoberg
From: Sven K. <sv...@im...> - 2002-05-21 18:20:45
|
Some time ago, I told you about integrating Webwork into Cocoon2. Meanwhile, I have mostly finished this task. There is a WebWorkAdapterAction which enables Cocoon to act as a WW dispatcher, a WebWorkGenerator that clones XSLTServlet's behavior and a XSP taglib that is roughly equivalent to the JSP tags. The last component still needs some work (most notably implementing some ui:tags) before I can make it publicly available for interested parties. Surprisingly, the integration task was quite easy. I only had to modify WebWork itself in one point: WW's ValueStack depends on HttpServletRequest and ServletContext. Both of which are generally not available to Cocoon components. Instead, they use their own Request et al. fascades, which will be available even in C2's offline mode. In order to deal with this, I made a servlet agnostic AbstractValueStack which basically does the same thing as the WW original. Except that it delegates expression evaluation to abstract methods when needed. The required methods findInContext and getRequestParameter are implemented in a servlet aware ValueStack (and its Cocoon counter part). I have attached the two source files in question. Modifications are marked with SK. My question is whether such an architecture could find its way into the original WW dist. Or is there's even a smarter way to make ValueStack useable in a non-servlet context. The same question goes for ActionContext BTW. In that case, the modification is not strictly necessary, though. Sven.... begin 666 ValueStack.zip M4$L#!!0````(`%R<M2R=/D+XH0,``(\+```/````5F%L=653=&%C:RYJ879A MY5;;;MLX$'U.@/S#+- 'V7!E%/M6(X"-[ 7=17>-N)?'@I+&-A.9U)*4W"#( M;_9[.D.*NJ1NN]OM/JT20#0Y<V;FS(6:3R_.I_ 6L[?:W,YX`:NJ*F4NG-0* M?C'B@$<Z(BD6_$E:9V16.Y&5"+4JT)"\R/<(I(/*8LIB&T1P: X6]#8>@'"@ M*UKIVN28:K,CR?G%.6G?BAW"$3,VE-9.EHN+\XMS>:BT<7 C&O$^M6B:$EVZ M">]K_*M&ZQ:?D;JQ5;HFT"NM'+YW'FX^I0A@>O9&E#6"=6062+G$`RH7HMUJ M`P):$,B$Q0(L.2^,U"DK>X"EJ-V>)*\E.6X*^)"AV4%BPL_E019%B4=A\&FN M#Y50=RF])ZP*_HGZ+T5-.@A7*:R%N24FDT/86C92X1V!D6=H*B.)UHAQMFS0 M6/;VR34VDE?/X5GZXS-XPL=,:)T1Y9"7PEKPT6Y\L$0$JL+"*J,<BMSU1_?, M#WDVGP,Q1J=U[LC!I__\\3"M`SU^,H%[?\*/K2LTR63A-QZB99\<>J;P*U'O MJ)Z:09Y"8G:R004FI#Z%%UN6,PC2@M)1/2A0-<B2:W0&N4'A$+3BTO0R4719 M"2IO6K:0X.W&'VSSN)?YGDO"@]J]*$O(6,351F'1`84-']XCUUN1^9 8R^4V MY =VZ )1X_*.O@SH&R@%IRXAZ?<F'3N$N'*A53'9O%I=_?[NC]7+GUO:Z9%; M2%J$2U!U60YS!!VXPN,HD8N!3+1E3]N:!9!>Y2$N_#ZKM7$F,<Y.M"74"WYS MI50\5O(P`KYGN;20(==#(^ T4-/I7#+$4;J]%QD6PG>LE<& BPX,<GBZDBBC MD9!=3W_/^_^DO#J)EK\D\O<W"I#&<</I/4WP8B1S(D6+?M:N6ZEOF+/=K!VT MPZ9MAYAJMZ<;U^YU718\M+K"+&)E4B,$(B+"*]ZB_YSF'(EQ+R'=[5#3[:VW M?2V#U0%=Q+RPCO)6\ARM[4=C9>C.-^7=UV;ON/9;8AHMZ0+N\_C5Z<@QI7VI MCW)R8H!$QL8]_-_1)A7-IM\VZZX'_PTIL72_/ 8\(S&TRT$1#ACA)#G,.<0_ MLQM:P%:JXH6*%C:49+4#64R&+=PV><3^X52;CWHI!LW@?4,3ZH*;X35_;'4$ MH6JDT8H_S<9P#X ET?I9(R<'5+1Q31]EY=V,_4;ZBIIQA@JZ&79*&WQD)_QL M7X]I:AGI1^B:$X?TL38FZ^Q3KWI)]JJSPG_T^@A02P,$% ````@`6IRU+-M] M?+A%%@``+64``!<```!!8G-T<F%C=%9A;'5E4W1A8VLN:F%V8>T\;7/;-I.? MFYG\!T33>2K9#IW>W2>[OB>.XZ:>QB]G*^UU'$\'$B&)-D4R)&5'>1[_S?L] MM[L`"( $*<6)V]XSIP^)+"Z ?=_%8L'MC:=/-MBO8O1KFM]LX1>VGV5Q-.9E ME";LQYS/Q1T\`B@$?!T591Z-%B4?Q8(MDE#D`,_',\%@C$@*$2#8A1"L%/F\ M8.E$/V"\9&D&W])%/A9!FD\!<OOI$QA]PZ>"W8D1+A0LRBC>??KDZ9-HGJ4Y MC,FG`:<E@CB=_L=U<,!+,4WSY6X%HH>*CUD>G/&\$(<?QR)#"KJ <GN9:W[+ M@Y'@21%L[+J_1FEP`50GTW/!0QIE/XUY,@UR,8G%N SVQV-1%!$PYW1T#3]T MP1Z+<I:&G1!I&$VBQHK((4+RZ9/M#1 +V_CF%QXO!"M*X&7 ]MDO%RPJV*(0 M(1LM60G241)FQ;(HQ9SQ@G%VQ^%9RN;\1N D[!8G@0>W/(I)OC!V40#=-$.V M*&:,)R'+THS-"?<B8,.96+(Q3Q DH5E&(&GB@ES<3#")DG"C&HFPA/I+OH!? M<G8>@1[D(?N?D<BGK)_+/U_.HS",Q1W/Q?-Q.L]XL@S@_P$M11\]_I@O8(Q@ M!P$#Z=Z 8O;G\J>7MU$BEC"92$ ILSP"+=5S?//R5N0%JOJWY^(VPF_?XN^H MF(L1J"[C(U!Y/B[9..9%P?;5G\3Q"V3X/P">L>UM!G^5,( ]?]B'IE&+%G(J M8!F/F50^=C'</_CY]Y/]XT.VQWI:G7-1+.*RMTNCU;!CGDEL09I[+!%W["=> MS.#7_F 7$96:!V(#HY*KYM$M6)4>KRV,@<'!!/K/8"K*HP1@DK'H&_H#6FI M^HB,()6$SP8[B 7/2?9S:T54&M#.^:(H45G&/(Y!5:()`NJ1W/)!``M$ECPO M11@H`/7?MH=GMVD$"^'*DLRB/V!21/!IXPH]O]<4;+/]4KHY`'VX*!53WX+/ ME+9%WX"?:8SF#;05P>'QV?"WW]\>70QWG4'20;',^"F)V $,*O/%N 2-_T(= M:VIRQ2F+$V<2^($Z_;RN$F?D120[6)J ^T'UN+7<ERMA]A)8P.?P5<(8<)\* MD.S141%-?>F#);BE!*!J?4L>;0*Q1NCEE0!1=_;SG"_Q;ZT]%MML\("'H5Q- M6@BP%#]@64$H1HMIOT<L`4983-CI(7 #M$RE*^@/K,>(S'"6IW?HLON#`#0H M*4F<0Y"N<)2[(0UPY5H8DSR=KQ1&+LI%GD@I0!S(P'!;A:&X#V!2&A8_2_ M M-G/5M(9IN9BGM\)(*2BB3SC#<_:]Q6[P'>5XQOI'D(=\/%V4IY-7*>0D117] MF1CXUDD6<6S-0EXV)HP43^L2`C81>]I$M(:8/D-44EJV&1J)G1,%!0D`>8() MUII"T^ 6J$]L@!)3W*Y85Y</>[9'3/Q[74 [+W9783X\?W>(/KV&-?XDYEFY M;$,?O)Y (-\8'QVC-(4@@.'C$$$\Y"@JP0%T85VD\2VD-%4&A?DCYGB@71AQ MQ!RRBE:G98"])J1QE$%<R[(QR$L7Q*:RKU(#,\*B4H<0<%@0N.5??0MRUW@K M/2=DOW<P9(]->%P("Z!NL!5@%A >'J-T\W"6U4RQ1#L@BS@"YSOE\7X^72 O MJR']WOOD?;(/1ISG$.W2\7B1Y^!P[F81Y*88&75F:8C:8>\3G/U]K\<VK=7D MQQ+=)NN]A_E]4)G 1.<8`&%;(FVXX=Z5$"4;7.6A3/!GIKYO;+ ?(>^MO"QD MQ%$8>&(O(@?NLF#%8J2SE#)5ZT&J.^.@A44ZAX0)PJ;X6.+_R"D,'0(GQ[3A M981)+FX:0HO:(M#S2$TR.6V6IR6L"M#*6V.2?I0<R"6T>D6A41:+HEQ\@/U" MR4C9!:367T:7GLY'U[?5&C99JZE2!( \S^7L9WH>ES8EM^U*<'4_X AQ`NK( MV32Z%1!+8+J'FG\J>3Y.0:^++$U"4FB9$@&V^;(CK**@9%Q5A-" 0=W"BE;S M<O,A&HVN$-TZ^^<_Y70!, T\0;_7&]@S*V#6"WJ6CP#^#37BK!!37*V@'2/2 M0\:+H44^T(/^BZ _P&3T#2V/ODB$C.W1CQ=R[.65F7Z/?< QZDEA.2*D"F-R M5+S&J'R88- -P9X=-V1%></1`4IXAX%S8!]JYN_#1V,#R&B\+E]<&40,Q%'X M$8"^;S(-MW(H1 IK6RP"RK(TPNWJ5H.#4FNV] P4CW&\3D[MY(;6QCGERB^J M!W9J; 89K+[2QR*SLF59"\@!61%3]&S&/32"0@!;9B(7QEW@-"!L`E;>0B>@ M`4,^%N!*9NDB#G%C^6$1@?M![@E>+!7;"FLJ6 1ESL":Q[D`U()'H[^XBR@H M*CU E1TN,Z&TT=)'B\(2LDZU3YI,-(^LM(T^8PXTV\H8'+P[/S\\&>XXT[+: MKD?GTS] /MT(@+XL6050R H:X%J'S.1 06OJWH(4:*HL+ "=9(0_I7$H\D'K M:OV^#:;V>+BR,N&.I;27^]O?F-=!--:TG(0)`)?D'LA]03)QA;DHSAKTFDO; MZ7/C(4A<9[@@7]B_0EHSAB^E3I(AHH$39@6Y^4[17PS/CT[>['@7MS3O*/2P M!^T!UP>?,X4HJ]:6=BJ)1DM*$]@G:8%)A73]N1>ODW?'KP[/5^)%D@,73OKS MPHLBV@;FJ;H\T[GL_A#X\>K=\'"G92;BKIGJ&_WLXF?]!Y&ZYR9%-4XBGM7( M;1SZ4+US`M-#-:_3EAN/M[?7R<-/P!LOP'U5O)*QL4QO1!)$<TB3ZRO?=W < M7&UL5PW^!%\`V/#XCB\+F7XB5@FFU#J0`XHAU<:GJ3O0$^E-:-_<O/*M!'3= M"1:FR7<EK (!BX(;SX&AR/S%%/\'&5;<!0\PS\#.E.RBLLFG"@^I4JT^O-7E M7"AAJ'TT%E 0KT\B!^0P`^6EP1IW?S;2S3#$6#W-<!^.@*,W*US?K"RSYIZB MT\+/]L_WCP^'Y%L\UJLF]V7_*XVXAJ=47-A!WX(`;\02$R[6PYI$KQ-#K';X M'=\KN><FB#9OW%R1-N;=2_ZX__9BQ9H$LMMEHVFJ$TT[^QBE99G.U\]%SD]/ MASM?)PUIH%H`JHO,(++E9LPZ6_8X&BM9KC#9[51FG]/1LU"TTO#_%UR--GH\ ML;/MS\,I4D-P35AVPW"S2.+H1L2$[XQGF4BV&'@L7)2HX^-QN@"<,4I%&*F7 M0/G7]EX>7Q**"5_$Y5?+>?\T9:N4RB3-#73JM;@UU=(&_OS*N8]+M8?KY1+J MB3IL)D6D5&:GMUG;\BM4V\3?>+R];;(E<)24N6I-B\(=]AWF+#6_CPG4=Q54 M"5NR)IS<J!%DCPT>>9=\`@RDX"M9,^,%;&5%HA6PJ@6H&B#^+#4<I8QV>!?% ML37?2$PA4;>+I7B6ZMEQX\QA#H,1+DSO$NTQ[ VSJ5EE>9J)O(Q$L07(Z.,S MO:,OI%E4I[YQ7#S>WIIJ'.!]+NP:BW&5EL!DY;B/4=O5;EMU>L2R!-E@Z:CR MHB"86-R*6&N)W^TC1FB'%\:P-:2MW2;A5<<I#9.3S/Z5QS<[(!./0:Y=5["= MF6S/8+PZ#5?"7/K@/4G7^>G9X?GPMQW_`FRM9-_#A'6S_H;+^^STWRMWUJL( MPU0<SY54.19FDAN>NO/P[+?DQ^^BJX]L3+B\TLTP\H1&_BJ9@4L<H'3Z@RWF MR57;9D9N5I.V*-6:/%#&FZ08SB$V=#E0)_XI0"D=>MRO_K;HPD>#7A<QEHC] M$<?^4%BP#*8#^I[J6"O8HE=6W+Q\<15$R2WL>*6 MBC,R2HJ/%M!1AN/B;&5 M^6GV&>XACQ[*O?N61U7L7Q'KUU40U;\SX>!;0XF\>X#&NK!<4\#K2K>-:/_^ MTR*QYA05<>LY1-B!_G3Z^E_.'4Y3]']\@H=NDAWM7K#;#SZF)WQ$7ZCD"D3[ M_1Z[@^RL\H]!C_TISJR+!4<@.U[*S=B>M]0:*8A^%^ZT?Z&*3.'M?FH?J3*N MJ P@DSW!ZNE@E0QTVQ =H>Y9YYSJH',`Q 2)G*J;BQ)C:L"BKX.'LE'U2Y8\ M1SN6."D=50JVI1;KYH;LWX.==(G*F0CT.#Q?=JAPHAAQ0-OJ/85"(/LY9"D+ M\SV49"R2:3GK(!$WY7V<,:*J!OSW@S4Y_+VYN4HV9(BF-B?_[,+J,KKJY AS M;<ZB%>Q+NAMW-5SD!/Y>9?Q,VO^SVFAUGBTU236N8CV^!4YI$&ZEHX'EB58J ML13V&U&:X"["".QLU:@S!7Y(T"P3NZM&9.A2W&''/('(FP>HI_*7ODO?2MZY MRMH5L!QV9^U;F1;<`]C![A=#-&>7V6X3W<J9:EY#]O"L#'@NO;G(8C[&+70Y MT[MLI-]M<NPF2-)0( W*)ZQ&_[X3X/[S4SQ6V]'J0 ;A&$,Z9FS^4(Y!C9"V M3&^%LNB@IGR FR,K=I0IQ8M.F_VBM+2BD/J^?&2][S&A)]9@M325H'J/DZQV MD;%6U2R!M>79\#2NVNEESAHP7Q>;M0!;_>D=4H^=G!!U1*T@&64=]'WY2B ) M>2>D<DE:'M)X5XCABS-\NY5&'6Q3VE\5L=9+^@].W[X]/!@>G9[\"R3^RGO> MB*63<:U;>$#<:>P:OO_K;_C:F7_,LPZ,X:G,`(*HV >MG])!_(]Y.F_L/ 9K MD=3'*6V^(U/6#&1N5;M)9!N)V)^,]^G8*]B"Q&W*1?4.I%F#2^BO3;X[N\T) MJ6!_`#\HT*SB0IT^Y( *4.L1JNH^5YK$RW[_2#;.#-"(8,)$&]W5(Q")&Z]5 M--(9T%>6+\[IZ'<[V8\AVX-.%VT3;R"_#@OH8*:49Z!B,HG&$;A%>?1))P(< M]L>1K/D7ZS#2X%>QL\J1'DF7VMF*E3MU_0ZOC.:0)D;4I*TC)G9GES,,V2G MX(4^;,%:+8YU7/WZN9(;P2%7P `^6C)9IEID+$V$/)QA:=+6I"(_WD82V3/I M7=H^RWG^O!U%5#WGW.<']N*/#(9LW73RC%N=Q%3"JB[]!AVIU\JZN?<0VN;( M(Z1U*I>+EWCZ2?V)L+W!4]04CS>YJ:^C4O>3U.2=NN@X6$]'#O_[;/_D]4XK M)G;I4,$RJX;ZL".D=EZKG$W2@"61!Z5NS*Z3REG6V\#_\<5,O:(ATF!=RRJ^ MUA[S#SZ=6 E>;W%(HF(F0JFKU64T;QWZP6U(;*U.))?+JNJKQ^F2D WG2MJT M+D4A]BY16W[5D[0E6Y7P1B@Y>=6=H/N8P,3=J=!T^)1'26#][FW#K3IO_M/C MJ O;X_NT8OT.,.SC*^UV:=-Q:3_"%@-O$YCJ(7":'':]D'XA81^1(R:_*V_H M8:6!3IM-QZ;V<W:Q#]BV/JB'_Z$]U+4F--9QJQ6R(=F>#X.PHP:X+M]=H/IL M+JS+MGID=1.,,5N9L19Q8;7ZNY>_U%TOX^V,"-4CP -O9EDO!'F?]"J:\.DF M/-XS'_NQ[XB@WC_G.2@PEXD:UT BQ^K5\@2H!/AWUL/_\2KF#CZP/#F5@BSL M[M>D0M\L*/-6L;U1&BS?KP!<+])QQ+'2JXJ_H _F#F.KY' *=<T66><?I@3H MOMC!W,CMNL)+-74YP!N6]3-*]]1\^-5^78U]Y=<1AAR,M6KK#1!(@GV9M^$F MU*AS<91$Y9J+W=<D4[W5HETX7%<@21YK7;8<QU(@\@!?69Y]CF_!XD02FK[Y M@6L&>L<35) :4%55AC]AWY:G128W156.8=3 483JZ-L<>,OSM'&\I8T9D?-= MZ?2N8\2$[W\Q!^JR*J5ZO<@HQ[%[3;+SE%R=8VD8:D[$%_Z,T,=CL3\TND^+ M6&,-$O77K;@+T.W:J;4*SFC2=@OXE>#)43))V0A=E&%$FB-E^JE#(3.G:J]% M,<ZC#*"![UD(,XPB.K9L/"_<`W'OV6FHSUS9YF;42!_4H;%2XST`OXRN`KJ+ MP/7IL3=9.)@)O)(QH9R,WL/D[\\SDNLZ=*-34/TB*8B3\GTNP" Z_%"_=Q1 MM'0J@XRP5Y3NB>43/"TCA=B(B@T5HWR3D&(#RZM11<5Z%)EAN[S\A;_ITAR] M<TB/:NE2J*1S+:5S#=(Q2U52NNXZX%[1LN><-@T!MK=I5KB\[FP`JU3 &1$8 MNY<`YFA;-I=)IG7WEG57?3[_2(T=39,T;RLC>_<O]ZU]IK^*[W)Y3S!/037$ M,S94%XD2W"_I&PF%@"U\Y.\^-3I>'<G[S*BC>E=_(QL=.%>_40"K@UQ>_4.N M>;]%;QWQ"Z#)#!\G\#X2;KB,\<P]AQ+NON[-X?!W?:!)'E66#B"^X?FLW8I5 M5QP/IOI]:]FB-+RSU4S'(4VSIP&_A4+M&F1050M9S^T(!XJ/-J_<CGXQURH7 MJP96%NQK4:G[635&=I[4=>E9G6,!O5BL^!6RC'X/5*,GVT$,F$SP95.UUL%? MTB@,AK^='7KU#MCR"QW6MO00VBZ^Q67^=9VV1.&OX)$?X%7-+_4^I?_WL;:/ M-2;TEW:LF)9BAMQXIK)GIS1:UX9=K]%9%47;,4S1,7C+Q,X:3CH:BC'/HA(\ MP2>G4EDL1K)6T/]WG]I59U@MJ$3%(V#R;_ZJZ7K!JW+SNJL"MQSJMT$5?W#? M8=;V$%Y-`YH3>UYEXLBI6JJS6&W-Y ETGH)KQP&'=RZ%AO)G$)"_]Q_17=!; M5P..)WSC-%MJ_+?8BRT],WUW)_3;AX*O+7Y5Z?@ZA60[*S!2J7#Q%I ?)T7I M3"_VPQ!5#OV9:LMW] _['TYWV+L"-_U8&<8S2WH'9+%,QN#ZDN@3KQU0XMX8 MJ*3@AM_U_KC?5]O3:JL\"&A2UU580XEYN%G7QT@VG/.B43UBU\'=VE `G;"- M[FV.X\V>0^Q.;[,QNUN+U4Y0IQO;5<.I].)53: R+P`^MHH#7DM-E(V:A2QL MWZ2EQK6WB9";/<2S43FU5G)K/:J8J3(WJYO:7 ?8LIO.:Q6QN;8WL'[G*J]: M=R[?OJ0?T$1SBM+MK^[$7"5)3R?ZL!0W[*J74U8]NTJD\_8$E?!567=+RS8Y M,6OIFG<GS*F)'>=I40-+.B<IEK,DO=5KK) EQ@;)2+?H@4,S_"Q_E6M*RNOU M=_M9FP24( =JHL;[7)3DQ4=\6UO-SY.XP/(*T2$N":3:D[NN))"XS#4(=)*$ MDG7O@47F<L*N*SW]HN1Z8!O &'D%P39IG3#++G;5&Z^]M$?^]EC]!D9BR;%2 M5LR1?$#$G95 DCM40*J@?/LM*T4WF'>FZ.H:@+$1%/"UW2!?<_*NLU/J)C7S M6BFCVZ!N]1]+KEY;ZEN?6T[ U;3V^/:PHRKKONFK2H,UVI=@X!WL*%G4._3O M30KG+M#H0<J\TSH:H-_#^5E+/W!.6ZE:8%JW9.M?=ECO@L-G7&K0_&T[]U_G M'D/;/83KU?<0ZC<-:H\_8W_H&FR+!'Q;(:H66*.]VP/?+K8]]\(IC=(T$-:. M6SFWVK3-8V1C$D;+&I/2(PIT:MI!VQP6J8U)Y+/V:0R9]VY<DS0]:[Z21,4T M>EY-Y1*DPR&V$71$0PE;1</Z3 KU->=2T)[9FJ/LUYI8[W8_2A*15ZGJ`]_M MOBU//-'V;Z,0RWSRY5$\H5>X+H"ZF']:ZO<_TGN3Y3L:\1$>&^EYJD*.G22: MFI75)6"D_H5OJ-?3N.]6K1LTL0S^^5]02P$"%@L4````" !<G+4LG3Y"^*$# M``"/"P``#P`````````!`" `@($`````5F%L=653=&%C:RYJ879A4$L!`A8+ M% ````@`6IRU+-M]?+A%%@``+64``!<``````````0`@`("!S@,``$%B<W1R H86-T5F%L=653=&%C:RYJ879A4$L%!@`````"``(`@@```$@:```````` ` end |