You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(55) |
Mar
(100) |
Apr
(203) |
May
(330) |
Jun
(190) |
Jul
(302) |
Aug
(323) |
Sep
(197) |
Oct
(245) |
Nov
(490) |
Dec
(330) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(194) |
Feb
(400) |
Mar
(416) |
Apr
(415) |
May
(359) |
Jun
(381) |
Jul
(491) |
Aug
(311) |
Sep
(291) |
Oct
(273) |
Nov
(355) |
Dec
(266) |
| 2005 |
Jan
(306) |
Feb
(303) |
Mar
(520) |
Apr
(346) |
May
(255) |
Jun
(221) |
Jul
(171) |
Aug
(247) |
Sep
(147) |
Oct
(125) |
Nov
(165) |
Dec
(65) |
| 2006 |
Jan
(90) |
Feb
(53) |
Mar
(121) |
Apr
(103) |
May
(113) |
Jun
(103) |
Jul
(104) |
Aug
(67) |
Sep
(78) |
Oct
(82) |
Nov
(78) |
Dec
(70) |
| 2007 |
Jan
(77) |
Feb
(76) |
Mar
(63) |
Apr
(30) |
May
(47) |
Jun
(41) |
Jul
(44) |
Aug
(44) |
Sep
(49) |
Oct
(33) |
Nov
(25) |
Dec
(21) |
| 2008 |
Jan
(45) |
Feb
(13) |
Mar
(15) |
Apr
(12) |
May
(9) |
Jun
(33) |
Jul
(30) |
Aug
(7) |
Sep
(20) |
Oct
(17) |
Nov
(20) |
Dec
(10) |
| 2009 |
Jan
(8) |
Feb
(5) |
Mar
(12) |
Apr
(17) |
May
(19) |
Jun
(97) |
Jul
(77) |
Aug
(33) |
Sep
(24) |
Oct
(41) |
Nov
(16) |
Dec
(32) |
| 2010 |
Jan
(24) |
Feb
(14) |
Mar
(50) |
Apr
(71) |
May
(70) |
Jun
(64) |
Jul
(45) |
Aug
(62) |
Sep
(32) |
Oct
(4) |
Nov
(12) |
Dec
(2) |
| 2011 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(3) |
May
(6) |
Jun
(1) |
Jul
(4) |
Aug
(3) |
Sep
(4) |
Oct
(6) |
Nov
(3) |
Dec
(3) |
| 2012 |
Jan
(4) |
Feb
(8) |
Mar
(6) |
Apr
(10) |
May
(2) |
Jun
(3) |
Jul
(11) |
Aug
(10) |
Sep
(4) |
Oct
|
Nov
(1) |
Dec
(1) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
(9) |
Apr
(1) |
May
(8) |
Jun
(2) |
Jul
(5) |
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(10) |
Dec
(8) |
| 2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(12) |
May
(2) |
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(2) |
| 2015 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(9) |
May
(2) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
(7) |
Oct
(9) |
Nov
(7) |
Dec
(9) |
| 2016 |
Jan
(7) |
Feb
(5) |
Mar
(5) |
Apr
(5) |
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(4) |
Sep
(6) |
Oct
(7) |
Nov
(2) |
Dec
(3) |
| 2017 |
Jan
(7) |
Feb
(8) |
Mar
(7) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(5) |
Aug
(8) |
Sep
(4) |
Oct
(2) |
Nov
(3) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2021 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(5) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
| 2026 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Kopylenko, D. <dko...@ac...> - 2003-08-28 12:56:33
|
+1 for spring-full-1.0.jar -----Original Message----- From: j=FCrgen h=F6ller [werk3AT] [mailto:jue...@we...]=20 Sent: Thursday, August 28, 2003 8:53 AM To: spr...@li... Cc: tri...@tr...; rod...@in... Subject: RE: [Springframework-developer] Example classes needed Hmmm, not much response yet... I still tend to prefer = "spring-full-1.0.jar", for easy drop-in. IMO, a jar file does not need to reflect the exact = detail version. I consider it fine enough if it indicates the major version. = See servlet.jar, hibernate2.jar. Can we please decide on this until = *tomorrow*? :-) =20 Juergen =20 =20 -----Original Message----- From: j=FCrgen h=F6ller [werk3AT]=20 Sent: Monday, August 25, 2003 11:50 PM To: Lars Fischer; spr...@li... Cc: tri...@tr... Subject: Re: [Springframework-developer] Example classes needed Let's vote on this. I don't mind either naming strategy for jar files. Anybody else prefering the spring-full-1.0m1 style? =20 BTW, Hibernate uses hibernate2.jar for its whole 2.x tree. Log4J uses log4j-1.2.8.jar for the specific version. 2 examples for opposite ends, = I guess. =20 Juergen =20 =20 -----Urspr=FCngliche Nachricht-----=20 Von: Lars Fischer [mailto:lar...@gm...]=20 Gesendet: Mo 25.08.2003 23:18=20 An: spr...@li...=20 Cc: j=FCrgen h=F6ller [werk3AT]; tri...@tr...=20 Betreff: Re: [Springframework-developer] Example classes needed I agree with Thomas, I once made a mistake because I didn't realize that I was using an older version. The jar-files should be named after the version. > Juergen, > > The drawback then is that you can't tell from the jar file if it is = M1, M2 > or > the release jar. > > Thomas > > > It's gonna be "spring-framework-1.0m1" and "spring-full-1.0.jar", = if we > stick > > to the current plan. We've used the same naming strategy for 0.9.x, = e.g. > > "spring-framework-0.9.1" but still "spring-full-0.9.jar". I prefer = that > way > > to ease drop-in replacement in the literal sense :-) The build > properties > > reflect this in "spring-version=3D1.0" and = "spring-version-detail=3D1.0m1". > >=20 > > Juergen > >=20 > >=20 > > > > -----Urspr=C3=BCngliche Nachricht----- > > Von: tri...@tr... [mailto:tri...@tr... <mailto:tri...@tr...> ] > > Gesendet: Mo 25.08.2003 19:21 > > An: j=C3=BCrgen h=C3=B6ller [werk3AT] > > Cc: Lars Fischer; = spr...@li... > > Betreff: RE: [Springframework-developer] Example classes needed > > =20 > > =20 > > > > Juergen, > > =20 > > > Anyway, ContextLoaderServlet *will* be in 1.0 M1, to be = released at > the > > end > > > of this week if there aren't any major obstacles. BTW, can everybody > > please > > > test the current CVS contents against own applications? > > > > > =20 > > I am updating the Step-by-step-MVC document - what will the = exact name > of > > the > > directory and the jar file be? I'm assuming 'spring-framework-1.0M1' > and > > 'spring-full-1.0M1.jar'. > > =20 > > Thomas > > =20 > > > > > > > |
|
From: <jue...@we...> - 2003-08-28 12:54:12
|
SG1tbSwgbm90IG11Y2ggcmVzcG9uc2UgeWV0Li4uIEkgc3RpbGwgdGVuZCB0byBwcmVmZXIgInNw cmluZy1mdWxsLTEuMC5qYXIiLCBmb3IgZWFzeSBkcm9wLWluLiBJTU8sIGEgamFyIGZpbGUgZG9l cyBub3QgbmVlZCB0byByZWZsZWN0IHRoZSBleGFjdCBkZXRhaWwgdmVyc2lvbi4gSSBjb25zaWRl ciBpdCBmaW5lIGVub3VnaCBpZiBpdCBpbmRpY2F0ZXMgdGhlIG1ham9yIHZlcnNpb24uIFNlZSBz ZXJ2bGV0LmphciwgaGliZXJuYXRlMi5qYXIuIENhbiB3ZSBwbGVhc2UgZGVjaWRlIG9uIHRoaXMg dW50aWwgKnRvbW9ycm93Kj8gOi0pDQogDQpKdWVyZ2VuDQogDQogDQoNCi0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQpGcm9tOiBqw7xyZ2VuIGjDtmxsZXIgW3dlcmszQVRdIA0KU2VudDogTW9u ZGF5LCBBdWd1c3QgMjUsIDIwMDMgMTE6NTAgUE0NClRvOiBMYXJzIEZpc2NoZXI7IHNwcmluZ2Zy YW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQpDYzogdHJpc2JlcmdAdHJp ZGIuY29tDQpTdWJqZWN0OiBSZTogW1NwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJdIEV4YW1wbGUg Y2xhc3NlcyBuZWVkZWQNCg0KDQpMZXQncyB2b3RlIG9uIHRoaXMuIEkgZG9uJ3QgbWluZCBlaXRo ZXIgbmFtaW5nIHN0cmF0ZWd5IGZvciBqYXIgZmlsZXMuIEFueWJvZHkgZWxzZSBwcmVmZXJpbmcg dGhlIHNwcmluZy1mdWxsLTEuMG0xIHN0eWxlPw0KIA0KQlRXLCBIaWJlcm5hdGUgdXNlcyBoaWJl cm5hdGUyLmphciBmb3IgaXRzIHdob2xlIDIueCB0cmVlLiBMb2c0SiB1c2VzIGxvZzRqLTEuMi44 LmphciBmb3IgdGhlIHNwZWNpZmljIHZlcnNpb24uIDIgZXhhbXBsZXMgZm9yIG9wcG9zaXRlIGVu ZHMsIEkgZ3Vlc3MuDQogDQpKdWVyZ2VuDQogDQogDQoNCi0tLS0tVXJzcHLDvG5nbGljaGUgTmFj aHJpY2h0LS0tLS0gDQpWb246IExhcnMgRmlzY2hlciBbbWFpbHRvOmxhcnMuZmlzY2hlckBnbXhw cm8ubmV0XSANCkdlc2VuZGV0OiBNbyAyNS4wOC4yMDAzIDIzOjE4IA0KQW46IHNwcmluZ2ZyYW1l d29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0IA0KQ2M6IGrDvHJnZW4gaMO2bGxl ciBbd2VyazNBVF07IHRyaXNiZXJnQHRyaWRiLmNvbSANCkJldHJlZmY6IFJlOiBbU3ByaW5nZnJh bWV3b3JrLWRldmVsb3Blcl0gRXhhbXBsZSBjbGFzc2VzIG5lZWRlZA0KDQoNCg0KSSBhZ3JlZSB3 aXRoIFRob21hcywgSSBvbmNlIG1hZGUgYSBtaXN0YWtlIGJlY2F1c2UgSSBkaWRuJ3QgcmVhbGl6 ZQ0KdGhhdCBJIHdhcyB1c2luZyBhbiBvbGRlciB2ZXJzaW9uLiBUaGUgamFyLWZpbGVzIHNob3Vs ZCBiZSBuYW1lZCBhZnRlcg0KdGhlIHZlcnNpb24uDQoNCj4gSnVlcmdlbiwNCj4NCj4gVGhlIGRy YXdiYWNrIHRoZW4gaXMgdGhhdCB5b3UgY2FuJ3QgdGVsbCBmcm9tIHRoZSBqYXIgZmlsZSBpZiBp dCBpcyBNMSwgTTINCj4gb3INCj4gdGhlIHJlbGVhc2UgamFyLg0KPg0KPiBUaG9tYXMNCj4NCj4g PiBJdCdzIGdvbm5hIGJlICJzcHJpbmctZnJhbWV3b3JrLTEuMG0xIiBhbmQgInNwcmluZy1mdWxs LTEuMC5qYXIiLCBpZiB3ZQ0KPiBzdGljaw0KPiA+IHRvIHRoZSBjdXJyZW50IHBsYW4uIFdlJ3Zl IHVzZWQgdGhlIHNhbWUgbmFtaW5nIHN0cmF0ZWd5IGZvciAwLjkueCwgZS5nLg0KPiA+ICJzcHJp bmctZnJhbWV3b3JrLTAuOS4xIiBidXQgc3RpbGwgInNwcmluZy1mdWxsLTAuOS5qYXIiLiBJIHBy ZWZlciB0aGF0DQo+IHdheQ0KPiA+IHRvIGVhc2UgZHJvcC1pbiByZXBsYWNlbWVudCBpbiB0aGUg bGl0ZXJhbCBzZW5zZSA6LSkgVGhlIGJ1aWxkDQo+IHByb3BlcnRpZXMNCj4gPiByZWZsZWN0IHRo aXMgaW4gInNwcmluZy12ZXJzaW9uPTEuMCIgYW5kICJzcHJpbmctdmVyc2lvbi1kZXRhaWw9MS4w bTEiLg0KPiA+IA0KPiA+IEp1ZXJnZW4NCj4gPiANCj4gPiANCj4gPg0KPiA+ICAgICAtLS0tLVVy c3Byw4PCvG5nbGljaGUgTmFjaHJpY2h0LS0tLS0NCj4gPiAgICAgVm9uOiB0cmlzYmVyZ0B0cmlk Yi5jb20gWyBtYWlsdG86dHJpc2JlcmdAdHJpZGIuY29tXQ0KPiA+ICAgICBHZXNlbmRldDogTW8g MjUuMDguMjAwMyAxOToyMQ0KPiA+ICAgICBBbjogasODwrxyZ2VuIGjDg8K2bGxlciBbd2VyazNB VF0NCj4gPiAgICAgQ2M6IExhcnMgRmlzY2hlcjsgc3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlckBs aXN0cy5zb3VyY2Vmb3JnZS5uZXQNCj4gPiAgICAgQmV0cmVmZjogUkU6IFtTcHJpbmdmcmFtZXdv cmstZGV2ZWxvcGVyXSBFeGFtcGxlIGNsYXNzZXMgbmVlZGVkDQo+ID4gICAgDQo+ID4gICAgDQo+ ID4NCj4gPiAgICAgSnVlcmdlbiwNCj4gPiAgICANCj4gPiAgICAgPiBBbnl3YXksIENvbnRleHRM b2FkZXJTZXJ2bGV0ICp3aWxsKiBiZSBpbiAxLjAgTTEsIHRvIGJlIHJlbGVhc2VkIGF0DQo+IHRo ZQ0KPiA+IGVuZA0KPiA+ICAgICA+IG9mIHRoaXMgd2VlayBpZiB0aGVyZSBhcmVuJ3QgYW55IG1h am9yIG9ic3RhY2xlcy4gQlRXLCBjYW4gZXZlcnlib2R5DQo+ID4gcGxlYXNlDQo+ID4gICAgID4g dGVzdCB0aGUgY3VycmVudCBDVlMgY29udGVudHMgYWdhaW5zdCBvd24gYXBwbGljYXRpb25zPw0K PiA+ICAgICA+DQo+ID4gICAgDQo+ID4gICAgIEkgYW0gdXBkYXRpbmcgdGhlIFN0ZXAtYnktc3Rl cC1NVkMgZG9jdW1lbnQgLSB3aGF0IHdpbGwgdGhlIGV4YWN0IG5hbWUNCj4gb2YNCj4gPiB0aGUN Cj4gPiAgICAgZGlyZWN0b3J5IGFuZCB0aGUgamFyIGZpbGUgYmU/ICBJJ20gYXNzdW1pbmcgJ3Nw cmluZy1mcmFtZXdvcmstMS4wTTEnDQo+IGFuZA0KPiA+ICAgICAnc3ByaW5nLWZ1bGwtMS4wTTEu amFyJy4NCj4gPiAgICANCj4gPiAgICAgVGhvbWFzDQo+ID4gICAgDQo+ID4NCj4gPg0KPg0KPg0K Pg0KDQoNCg0K |
|
From: Rob B. <rob...@ve...> - 2003-08-28 02:29:40
|
I sent this out earlier, but it bounced so I don't know if anyone saw it. So I am sending it out again. If you already got a copy of this message you can just ignore it. Check out: http://jakarta.apache.org/struts/proposals/struts-faces.html Specifically read the section "How does this affect Struts?" As you see JSF can sit on top of Struts. Obviously struts has an advantage as the JSF spec lead, Craig, is also the Struts lead. But I think it would be VERY useful if there was a JSF implementation that sat on top of Spring. I haven't yet finished Rod's book, or had the time / opportunity to use spring yet. So I may not know what I am talking about, but the major feature of Spring MVC web framework is how it will automatically convert web input strings to the appropriate Java data types for the bean. This is a HUGE feature over Struts as far as I am concerned. So it would be nice if there were a JSF layer built on top of Spring that allowed JSF to be used, but also provided the advantage of the automatic type conversion that spring has. (I don't think the JSF will offer type conversion as a feature, but I haven't read the full spec so I am not sure yet.) Thoughts? Later Rob ----- Original Message ----- From: "jürgen höller [werk3AT]" <jue...@we...> To: "Rob Butler" <rob...@ve...>; <spr...@li...> Sent: Wednesday, August 27, 2003 7:10 AM Subject: RE: [Springframework-developer] Java Server Faces & Spring Rob, Good question. Of course, JSF has to make it into standard J2EE first ;-) I wonder how Struts will "support" JSF, when JSF is effectively a full web application framework with its own action dispatching and view component mechanisms, targeted at tool support. Could it be that such a Struts/JSF "integration" is more a marketing term than anything else, to avoid making people worry about exisiting investments in Struts? From my point of view, JSF is a full web tier technology, an alternative to Spring's own web MVC, Struts, WebWork, Tapestry, etc. There should be a simple way to access a Spring root application context from any such web tier. The WebApplicationContextUtils.getWebApplicationContext helper method just needs a reference to the current ServletContext. People are already doing that for all mentioned web frameworks. Should be straightforward for JSF too. This is the nice thing about Spring: We provide such a wealth of support for all layers that other frameworks just compete with certain parts of Spring. It makes sense to combine Spring and other web frameworks to be able to leverage merits of the latter but also Spring's middle tier services. Spring's web MVC is just an option (of course, a good one IMO), not a necessity. Juergen -----Original Message----- From: Rob Butler [mailto:rob...@ve...] Sent: Wednesday, August 27, 2003 1:20 AM To: spr...@li... Subject: [Springframework-developer] Java Server Faces & Spring Hello all, I was just wondering what impact (if any) Java Server Faces will have on Spring? Will a JSF "adapter" be developed for spring? Since JSF will be part of the J2EE standard managers will start to expect everyone to use / know JSF, or the existing / entrenched Struts framework. Spring may have an uphill battle if it doesn't support JSF, when it appears Struts will. Thoughts / opinions. Later Rob ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: <tri...@tr...> - 2003-08-27 21:04:51
|
Darren, Lars, Juergen, I see that Juergen has made this change in CVS. FYI this is BEA Support's take on this issue: ---- >I have found the source code that calls the contextInitialized() method after the HttpServlet.init(), unfortunately this doesn't seem to be configurable. WLS 8.1 conforms to the servlet 2.3 spec, which is ambiguous as to when the listener should be called - It only specifies that it be called prior to the servlet handling requests. Under Servlet 2.4 the spec states that the listener should be called prior to servlet initialization, I am endeavoring to find out if there are any plans to conform to the 2.4 spec in a future release of WLS. >From what I can find out Servlet 2.4 is a J2EE 1.4 requirement which will be supported in a future release that is only due to go beta in June 04 (the current code name is diablo should you wish to check up closer to the time). I don't think there is anything more that can be done on the case, please let me know if you have any further questions, if not I'd like to close the case. ---- So, for now we are stuck with supporting both ways of doing things. We should probably add some comments in the examples where we use the listener approach. Thomas > On Monday 25 August 2003 09:02, jürgen höller [werk3AT] wrote: > > > Unfortunately, the Servlet 2.3 spec leaves this unspecified. The Servlet > > 2.4 spec clarifies that listeners have to be *initialized before* and > > *destroyed after* any servlets. Tomcat and Resin already behave this way, > > Orion does too since 2.0.2 after I've informed them about the Servlet 2.4 > > clarification... > > > > For a solution with current WebLogic versions, I agree that using the > > servlet initializers like ContextLoaderServlet and Log4jConfigServlet is > > probably the best choice, as Thomas has recommended. > > Under the circumstances, I don't know whether you consider it important to > remove the deprecation tags and comments from the ContextLoaderServlet et al > > classes before the M1 release? If it's only in Servlet 2.4 that correct > behaviour can be guaranteed, then perhaps the comments should reflect this to > > avoid confusion for people using containers that implement the WebLogic > behaviour. > > Possible amendment attached.. > > Regards, > > -- > > Darren Davison > Public Key: http://www.davison.uk.net/key.jsp > |
|
From: <jue...@we...> - 2003-08-27 19:01:25
|
SSd2ZSBqdXN0IGxlYXJuZWQgYSBiaXQgbW9yZSBhYm91dCBKU0YgYnkgZGlnZ2luZyBpbnRvIHRo ZSBjdXJyZW50IGRyYWZ0IG9mIHRoZSBzcGVjIDotKSBJJ20gbm90IHBhcnRpY3VsYXJseSBoYXBw eSB0aGF0IHRoaXMgaXMgeWV0IGFub3RoZXIgPjUwMCBwYWdlcyBzcGVjLi4uDQogDQpTZWVtcyB0 aGF0IEpTRiBpbmRlZWQgaGFzIGl0cyBvd24gZGlzcGF0Y2hpbmcgbWVjaGFuaXNtLCBidXQgYWxz byBhbGxvd3MgZm9yIGJlaW5nIGluY2x1ZGVkIGFzIHZpZXcgdGVjaG5vbG9neSBmb3IgZXhpc3Rp bmcgZnJhbWV3b3Jrcy4gSSBoYXZlbid0IHF1aXRlIHVuZGVyc3Rvb2QgaG93IEpTRiBjb21wb25l bnRzIHNlbmQgZXZlbnRzIHRoZW4sIGFzIHRoaXMgaGFzIHRvIGhhcHBlbiB2aWEgYSBuZXcgSFRU UCByZXF1ZXN0IHRoYXQgbmVlZHMgdG8gYmUgcGFyc2VkIGFuZCBkZWxlZ2F0ZWQgdG8gdGhlIHJl c3BlY3RpdmUgY29tcG9uZW50LiBIb3cgdGhpcyBpcyBzdXBwb3NlZCB0byBoYXBwZW4gd2l0aCB0 aGUgZGlzcGF0Y2hlciBvZiBhIGRpZmZlcmVudCB3ZWIgZnJhbWV3b3JrIGlzIGNvbXBsZXRlbHkg dW5jbGVhciB0byBtZS4NCiANCklmIHRoZXJlIHdpbGwgYmUgcHJvcGVyIGhvb2tzIGZvciBhcHBs eWluZyBKU0YgYXMgdmlldyB0ZWNobm9sb2d5LCB0aGVuIHdlIHdpbGwgcHJvdmlkZSBhbiBpbnRl Z3JhdGlvbiB3aXRoIGl0LiBJZiB0aGVyZSBpcyBubyBlYXNpZXIgd2F5LCB3ZSdsbCBoYXZlIHRv IGFuYWx5emUgdGhlIFN0cnV0cyBpbnRlZ3JhdGlvbiBhbmQgYXBwbHkgYSBzaW1pbGFyIHN0cmF0 ZWd5LCBqdXN0IGxpa2Ugd2UgZGlkIHdpdGggVGlsZXMuDQogDQpCVFcsIGlmIHlvdSdyZSBpbnRl cmVzdGVkLCB2b2x1bnRlZXJzIGFyZSBhbHdheXMgd2VsY29tZSA6LSkNCiANCkp1ZXJnZW4NCiAN CiANCiANCg0KCS0tLS0tVXJzcHLDvG5nbGljaGUgTmFjaHJpY2h0LS0tLS0gDQoJVm9uOiBSb2Ig QnV0bGVyIFttYWlsdG86cm9iZXJ0LmJ1dGxlcjVAdmVyaXpvbi5uZXRdIA0KCUdlc2VuZGV0OiBN aSAyNy4wOC4yMDAzIDE3OjMwIA0KCUFuOiBqw7xyZ2VuIGjDtmxsZXIgW3dlcmszQVRdOyBzcHJp bmdmcmFtZXdvcmstZGV2ZWxvcGVyQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCANCglDYzogDQoJQmV0 cmVmZjogUkU6IFtTcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyXSBKYXZhIFNlcnZlciBGYWNlcyAm IFNwcmluZw0KCQ0KCQ0KDQoJQ2hlY2sgb3V0Og0KCWh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcv c3RydXRzL3Byb3Bvc2Fscy9zdHJ1dHMtZmFjZXMuaHRtbA0KCQ0KCVNwZWNpZmljYWxseSByZWFk IHRoZSBzZWN0aW9uICJIb3cgZG9lcyB0aGlzIGFmZmVjdCBTdHJ1dHM/Ig0KCQ0KCUFzIHlvdSBz ZWUgSlNGIGNhbiBzaXQgb24gdG9wIG9mIFN0cnV0cy4gIE9idmlvdXNseSBzdHJ1dHMgaGFzIGFu IGFkdmFudGFnZSBhcyB0aGUgSlNGIHNwZWMgbGVhZCwgQ3JhaWcsIGlzIGFsc28gdGhlIFN0cnV0 cyBsZWFkLiAgQnV0IEkgdGhpbmsgaXQgd291bGQgYmUgVkVSWSB1c2VmdWwgaWYgdGhlcmUgd2Fz IGEgSlNGIGltcGxlbWVudGF0aW9uIHRoYXQgc2F0IG9uIHRvcCBvZiBTcHJpbmcuDQoJDQoJSSBo YXZlbid0IHlldCBmaW5pc2hlZCBSb2QncyBib29rLCBvciBoYWQgdGhlIHRpbWUgLyBvcHBvcnR1 bml0eSB0byB1c2Ugc3ByaW5nIHlldC4gU28gSSBtYXkgbm90IGtub3cgd2hhdCBJIGFtIHRhbGtp bmcgYWJvdXQsIGJ1dCB0aGUgbWFqb3IgZmVhdHVyZSBvZiBTcHJpbmcgTVZDIHdlYiBmcmFtZXdv cmsgaXMgaG93IGl0IHdpbGwgYXV0b21hdGljYWxseSBjb252ZXJ0IHdlYiBpbnB1dCBzdHJpbmdz IHRvIHRoZSBhcHByb3ByaWF0ZSBKYXZhIGRhdGEgdHlwZXMgZm9yIHRoZSBiZWFuLiAgVGhpcyBp cyBhIEhVR0UgZmVhdHVyZSBvdmVyIFN0cnV0cyBhcyBmYXIgYXMgSSBhbSBjb25jZXJuZWQuICBT byBpdCB3b3VsZCBiZSBuaWNlIGlmIHRoZXJlIHdlcmUgYSBKU0YgbGF5ZXIgYnVpbHQgb24gdG9w IG9mIFNwcmluZyB0aGF0IGFsbG93ZWQgSlNGIHRvIGJlIHVzZWQsIGJ1dCBhbHNvIHByb3ZpZGVk IHRoZSBhZHZhbnRhZ2Ugb2YgdGhlIGF1dG9tYXRpYyB0eXBlIGNvbnZlcnNpb24gdGhhdCBzcHJp bmcgaGFzLiAgKEkgZG9uJ3QgdGhpbmsgdGhlIEpTRiB3aWxsIG9mZmVyIHR5cGUgY29udmVyc2lv biBhcyBhIGZlYXR1cmUsIGJ1dCBJIGhhdmVuJ3QgcmVhZCB0aGUgZnVsbCBzcGVjIHNvIEkgYW0g bm90IHN1cmUgeWV0LikNCgkNCglUaG91Z2h0cz8NCgkNCglMYXRlcg0KCVJvYg0KCQ0KCT4NCgk+ IEZyb206IGrDvHJnZW4gaMO2bGxlciBbd2VyazNBVF0gPGp1ZXJnZW4uaG9lbGxlckB3ZXJrM2F0 LmNvbT4NCgk+IERhdGU6IDIwMDMvMDgvMjcgV2VkIEFNIDA3OjEwOjExIEVEVA0KCT4gVG86ICJS b2IgQnV0bGVyIiA8cm9iZXJ0LmJ1dGxlcjVAdmVyaXpvbi5uZXQ+LA0KCT4gICAgICAgPHNwcmlu Z2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0Pg0KCT4gU3ViamVjdDog UkU6IFtTcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyXSBKYXZhIFNlcnZlciBGYWNlcyAmIFNwcmlu Zw0KCT4NCgk+IFJvYiwNCgk+DQoJPiBHb29kIHF1ZXN0aW9uLiBPZiBjb3Vyc2UsIEpTRiBoYXMg dG8gbWFrZSBpdCBpbnRvIHN0YW5kYXJkIEoyRUUgZmlyc3QgOy0pDQoJPg0KCT4gSSB3b25kZXIg aG93IFN0cnV0cyB3aWxsICJzdXBwb3J0IiBKU0YsIHdoZW4gSlNGIGlzIGVmZmVjdGl2ZWx5IGEg ZnVsbCB3ZWIgYXBwbGljYXRpb24gZnJhbWV3b3JrIHdpdGggaXRzIG93biBhY3Rpb24gZGlzcGF0 Y2hpbmcgYW5kIHZpZXcgY29tcG9uZW50IG1lY2hhbmlzbXMsIHRhcmdldGVkIGF0IHRvb2wgc3Vw cG9ydC4gQ291bGQgaXQgYmUgdGhhdCBzdWNoIGEgU3RydXRzL0pTRiAiaW50ZWdyYXRpb24iIGlz IG1vcmUgYSBtYXJrZXRpbmcgdGVybSB0aGFuIGFueXRoaW5nIGVsc2UsIHRvIGF2b2lkIG1ha2lu ZyBwZW9wbGUgd29ycnkgYWJvdXQgZXhpc2l0aW5nIGludmVzdG1lbnRzIGluIFN0cnV0cz8NCgk+ DQoJPiBGcm9tIG15IHBvaW50IG9mIHZpZXcsIEpTRiBpcyBhIGZ1bGwgd2ViIHRpZXIgdGVjaG5v bG9neSwgYW4gYWx0ZXJuYXRpdmUgdG8gU3ByaW5nJ3Mgb3duIHdlYiBNVkMsIFN0cnV0cywgV2Vi V29yaywgVGFwZXN0cnksIGV0Yy4gVGhlcmUgc2hvdWxkIGJlIGEgc2ltcGxlIHdheSB0byBhY2Nl c3MgYSBTcHJpbmcgcm9vdCBhcHBsaWNhdGlvbiBjb250ZXh0IGZyb20gYW55IHN1Y2ggd2ViIHRp ZXIuIFRoZSBXZWJBcHBsaWNhdGlvbkNvbnRleHRVdGlscy5nZXRXZWJBcHBsaWNhdGlvbkNvbnRl eHQgaGVscGVyIG1ldGhvZCBqdXN0IG5lZWRzIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IFNl cnZsZXRDb250ZXh0LiBQZW9wbGUgYXJlIGFscmVhZHkgZG9pbmcgdGhhdCBmb3IgYWxsIG1lbnRp b25lZCB3ZWIgZnJhbWV3b3Jrcy4gU2hvdWxkIGJlIHN0cmFpZ2h0Zm9yd2FyZCBmb3IgSlNGIHRv by4NCgk+DQoJPiBUaGlzIGlzIHRoZSBuaWNlIHRoaW5nIGFib3V0IFNwcmluZzogV2UgcHJvdmlk ZSBzdWNoIGEgd2VhbHRoIG9mIHN1cHBvcnQgZm9yIGFsbCBsYXllcnMgdGhhdCBvdGhlciBmcmFt ZXdvcmtzIGp1c3QgY29tcGV0ZSB3aXRoIGNlcnRhaW4gcGFydHMgb2YgU3ByaW5nLiBJdCBtYWtl cyBzZW5zZSB0byBjb21iaW5lIFNwcmluZyBhbmQgb3RoZXIgd2ViIGZyYW1ld29ya3MgdG8gYmUg YWJsZSB0byBsZXZlcmFnZSBtZXJpdHMgb2YgdGhlIGxhdHRlciBidXQgYWxzbyBTcHJpbmcncyBt aWRkbGUgdGllciBzZXJ2aWNlcy4gU3ByaW5nJ3Mgd2ViIE1WQyBpcyBqdXN0IGFuIG9wdGlvbiAo b2YgY291cnNlLCBhIGdvb2Qgb25lIElNTyksIG5vdCBhIG5lY2Vzc2l0eS4NCgk+DQoJPiBKdWVy Z2VuDQoJPg0KCT4NCgk+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQoJPiBGcm9tOiBSb2Ig QnV0bGVyIFttYWlsdG86cm9iZXJ0LmJ1dGxlcjVAdmVyaXpvbi5uZXRdDQoJPiBTZW50OiBXZWRu ZXNkYXksIEF1Z3VzdCAyNywgMjAwMyAxOjIwIEFNDQoJPiBUbzogc3ByaW5nZnJhbWV3b3JrLWRl dmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCgk+IFN1YmplY3Q6IFtTcHJpbmdmcmFtZXdv cmstZGV2ZWxvcGVyXSBKYXZhIFNlcnZlciBGYWNlcyAmIFNwcmluZw0KCT4NCgk+DQoJPiBIZWxs byBhbGwsDQoJPg0KCT4gSSB3YXMganVzdCB3b25kZXJpbmcgd2hhdCBpbXBhY3QgKGlmIGFueSkg SmF2YSBTZXJ2ZXIgRmFjZXMgd2lsbCBoYXZlIG9uDQoJPiBTcHJpbmc/ICBXaWxsIGEgSlNGICJh ZGFwdGVyIiBiZSBkZXZlbG9wZWQgZm9yIHNwcmluZz8gIFNpbmNlIEpTRiB3aWxsIGJlDQoJPiBw YXJ0IG9mIHRoZSBKMkVFIHN0YW5kYXJkIG1hbmFnZXJzIHdpbGwgc3RhcnQgdG8gZXhwZWN0IGV2 ZXJ5b25lIHRvIHVzZSAvDQoJPiBrbm93IEpTRiwgb3IgdGhlIGV4aXN0aW5nIC8gZW50cmVuY2hl ZCBTdHJ1dHMgZnJhbWV3b3JrLiAgU3ByaW5nIG1heSBoYXZlIGFuDQoJPiB1cGhpbGwgYmF0dGxl IGlmIGl0IGRvZXNuJ3Qgc3VwcG9ydCBKU0YsIHdoZW4gaXQgYXBwZWFycyBTdHJ1dHMgd2lsbC4N Cgk+DQoJPiBUaG91Z2h0cyAvIG9waW5pb25zLg0KCT4gTGF0ZXINCgk+IFJvYg0KCT4NCgk+DQoJ Pg0KCT4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KCT4gVGhpcyBzZi5uZXQgZW1haWwgaXMgc3BvbnNvcmVkIGJ5OlRoaW5rR2Vlaw0KCT4g V2VsY29tZSB0byBnZWVrIGhlYXZlbi4NCgk+IGh0dHA6Ly90aGlua2dlZWsuY29tL3NmDQoJPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KCT4gU3ByaW5n ZnJhbWV3b3JrLWRldmVsb3BlciBtYWlsaW5nIGxpc3QNCgk+IFNwcmluZ2ZyYW1ld29yay1kZXZl bG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJPiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdl Lm5ldC9saXN0cy9saXN0aW5mby9zcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyDQoJPg0KCQ0KCQ0K DQo= |
|
From: <jue...@we...> - 2003-08-27 11:11:34
|
Rob, Good question. Of course, JSF has to make it into standard J2EE first = ;-) I wonder how Struts will "support" JSF, when JSF is effectively a full = web application framework with its own action dispatching and view = component mechanisms, targeted at tool support. Could it be that such a = Struts/JSF "integration" is more a marketing term than anything else, to = avoid making people worry about exisiting investments in Struts? From my point of view, JSF is a full web tier technology, an alternative = to Spring's own web MVC, Struts, WebWork, Tapestry, etc. There should be = a simple way to access a Spring root application context from any such = web tier. The WebApplicationContextUtils.getWebApplicationContext helper = method just needs a reference to the current ServletContext. People are = already doing that for all mentioned web frameworks. Should be = straightforward for JSF too. This is the nice thing about Spring: We provide such a wealth of support = for all layers that other frameworks just compete with certain parts of = Spring. It makes sense to combine Spring and other web frameworks to be = able to leverage merits of the latter but also Spring's middle tier = services. Spring's web MVC is just an option (of course, a good one = IMO), not a necessity. Juergen -----Original Message----- From: Rob Butler [mailto:rob...@ve...] Sent: Wednesday, August 27, 2003 1:20 AM To: spr...@li... Subject: [Springframework-developer] Java Server Faces & Spring Hello all, I was just wondering what impact (if any) Java Server Faces will have on Spring? Will a JSF "adapter" be developed for spring? Since JSF will = be part of the J2EE standard managers will start to expect everyone to use = / know JSF, or the existing / entrenched Struts framework. Spring may = have an uphill battle if it doesn't support JSF, when it appears Struts will. Thoughts / opinions. Later Rob ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: <jue...@we...> - 2003-08-27 07:23:49
|
UmVnYXJkaW5nIHRoZSB1c2Ugb2YgU2Vzc2lvbiBCZWFuczogQXQgdGhlIHRpbWUgb2YgUm9kJ3Mg Ym9vaywgdGhlIGZyYW1ld29yayBkaWRuJ3QgaGF2ZSBhbnkgdHJhbnNhY3Rpb24gc3VwcG9ydC4g R2l2ZW4gYSBjdXJyZW50IFNwcmluZyB2ZXJzaW9uLCBTcHJpbmctbWFuYWdlZCB0cmFuc2FjdGlv bnMgYXJlIGFic29sdXRlbHkgcHJlZmVyYWJsZSB0byBMb2NhbCBTdGF0ZWxlc3MgU2Vzc2lvbiBC ZWFucywgYXMgdGhleSBjYW4gd29yayB3aXRoIGFueSBleGlzdGluZyBiZWFuLCB3aXRob3V0IGRl cGxveW1lbnQgaGFzc2xlLg0KIA0KQW5kIHlvdSBoYXZlIHRoZSBjaG9pY2UgcmVnYXJkaW5nIHRy YW5zYWN0aW9uIHN0cmF0ZWdpZXM6IElmIGp1c3QgYWNjZXNzaW5nIGEgc2luZ2xlIGRhdGFiYXNl LCB5b3UgZG9uJ3QgbmVlZCBKVEEgYXQgYWxsIC0geW91IGNhbiBjaG9vc2UgRGF0YVNvdXJjZVRy YW5zYWN0aW9uTWFuYWdlciwgb3IgdGhlIEhpYmVybmF0ZSBvciBKRE8gb25lLiBTdWNoIGFwcGxp Y2F0aW9ucyBjYW4gaGF2ZSBoaWdoLWxldmVsIHRyYW5zYWN0aW9ucywgZXZlbiBkZWNsYXJhdGl2 ZSBvbmVzLCBvbiBhIHNpbXBsZSBKMkVFIHdlYiBjb250YWluZXIgbGlrZSBUb21jYXQhDQogDQpT cHJpbmctbWFuYWdlZCB0cmFuc2FjdGlvbmFsIGJlYW5zIHNob3VsZCBzY2FsZSBqdXN0IGFzIHdl bGwgYXMgTG9jYWwgU3RhdGVsZXNzIFNlc3Npb24gQmVhbnMuIFRoZSBsYXR0ZXIgY2FuIGJlIHBv b2xlZCBidXQgdGhhdCBkb2Vzbid0IGFkZCBhbnkgYmVuZWZpdCBpZiB5b3UgZG8gbm90IGtlZXAg bm9uLXRocmVhZHNhZmUgc3RhdGUgaW4gaW5zdGFuY2UgdmFyaWFibGVzLiBTY2FsYWJpbGl0eSBh bmQgcHJvcGVyIHRyYW5zYWN0aW9uIG1hbmFnZW1lbnQgYXJlIG5vIHJlYXNvbiB0byBjaG9vc2Ug bG9jYWwgRUpCcyBhdCBhbGwsIHBhcnRpY3VsYXJseSB3aXRoIFNwcmluZy4NCiANCkp1ZXJnZW4N CiANCiANCg0KCS0tLS0tVXJzcHLDvG5nbGljaGUgTmFjaHJpY2h0LS0tLS0gDQoJVm9uOiBMYXJz IEZpc2NoZXIgW21haWx0bzpsYXJzLmZpc2NoZXJAZ214cHJvLm5ldF0gDQoJR2VzZW5kZXQ6IERp IDI2LjA4LjIwMDMgMjE6MjkgDQoJQW46IHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMu c291cmNlZm9yZ2UubmV0IA0KCUNjOiANCglCZXRyZWZmOiBSRTogW1NwcmluZ2ZyYW1ld29yay1k ZXZlbG9wZXJdIEEgZmV3IHF1ZXN0aW9ucw0KCQ0KCQ0KDQoJVGhlc2UgYXJlIHZlcnkgZ29vZCBl eHBsYW50aW9ucyBKw7xyZ2VuLCB0aGFua3MgYSBsb3QgIQ0KCQ0KCUkgYWxzbyBjaGVja2VkIFJv ZCdzIGJvb2sgYW5kIGl0J3MgYWxsIG11Y2ggY2xlYXJlciBmb3IgbWUgbm93IChzaG91bGQgaGF2 ZQ0KCWRvbmUNCgl0aGF0IGJlZm9yZSAuLi4pLg0KCQ0KCUNvbmNlcm5pbmcgdGhlIHNhbXBsZSBh cHBsaWNhdGlvbiBpbiBSb2QncyBib29rOg0KCQ0KCS0gUm9kIHVzZXMgU2Vzc2lvbiBCZWFucyBm b3IgY2VydGFpbiBvcGVyYXRpb25zIC0gaXMgdGhpcyBzdGlsbCB0aGUNCgkgIHByZWZlcmVkIGFw cHJvYWNoIG9yIHdvdWxkIHlvdSBjb21wbGV0ZWx5IGlnbm9yZSBFSkJzID8NCgkNCglBbm90aGVy IGludGVyZXN0aW5nIHF1ZXN0aW9uIGZvciBtZSBpcyBpZiBhbnlib2R5IHVzaW5nIFNwcmluZyBh bmQgSGliZXJuYXRlDQoJY2FuDQoJdGVsbCBtZSBhYm91dCByZWFsIHdvcmxkIGV4cGVyaWVuY2Vz LiBJcyBpdCBwb3NzaWJsZSB0byByZXBsYWNlIEVKQnMgd2l0aA0KCVNwcmluZyBhbmQNCglIaWJl cm5hdGUgYW5kIHN0aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdGhhdCBpcyBzdGFibGUgYW5kIHNj YWxhYmxlIChsZXQncw0KCXNheSBpdCB3b3Jrcw0KCWZvciAzIHVzZXJzIGFuZCBmb3IgMTAwIHVz ZXJzIHdpdGggdGhlIHNhbWUgYXBwbGljYXRpb24gZGVzaWduKS4NCgkNCglNYXliZSB3aGVuIGdh aW5pbmcgZnVydGhlciBleHBlcmllbmNlIEkgY2FuIHByb3ZpZGUgc29tZSBzaG9ydCByZWNpcGVz IGZvcg0KCXRoZSBXSUtJLg0KCQ0KCVJlZ2FyZHMNCglMYXJzDQoJDQoJPiBhZCAxKQ0KCT4NCgk+ IEEgZGF0YSBhY2Nlc3Mgb2JqZWN0IGlzIHN1cHBvc2VkIHRvIGJlIGNvbmNlcm5lZCBqdXN0IHdp dGggYWN0dWFsIGRhdGENCgk+IGFjY2VzcyBvcGVyYXRpb25zLCBpdCBzaG91bGRuJ3QgY2FyZSBh Ym91dCB0cmFuc2FjdGlvbnMgb3IgYmVpbmcgcGFydCBvZg0KCT4gYSBsYXJnZXIgdW5pdC1vZi13 b3JrLiBJdCB3aWxsIG1haW5seSBvZmZlciBtZXRob2RzIGxpa2UgImxvYWRQcm9kdWN0IiwNCgk+ ICJmaW5kUHJvZHVjdHMiLCAic3RvcmVPcmRlciIsICJkZWxldGVPcmRlciIuIEludm9rZWQgZGly ZWN0bHksIHRob3NlDQoJPiBtZXRob2RzIHdpbGwgc2ltcGx5IGV4ZWN1dGUgbm9uLXRyYW5zYWN0 aW9uYWwsIGkuZS4gd2l0aG91dA0KCT4gdHJhbnNhY3Rpb25hbCBndWFyYW50ZWVzLg0KCT4NCgk+ IEEgYnVzaW5lc3Mgb2JqZWN0IGlzIHN1cHBvc2VkIHRvIGltcGxlbWVudCBidXNpbmVzcyBvcGVy YXRpb25zLCBpLmUuIHRoZQ0KCT4gdW5pdHMtb2Ytd29yayB0aGF0IGEgd2ViIGNvbnRyb2xsZXIg b3IgcmVtb3RlIGNsaWVudCBuZWVkcyB0byB0cmlnZ2VyLg0KCT4gVGhpcyBjYW4gYmUgc2ltcGxl IGRlbGVnYXRpb25zIHRvIERBTyBtZXRob2RzLCBvciBtb3JlIGNvbXBsZXggYnVzaW5lc3MNCgk+ IGxvZ2ljIGxpa2UgY3JlYXRpbmcgYW4gT3JkZXIgb2JqZWN0LCBmaWxsaW5nIGl0IHdpdGggY3Vz dG9tZXIgZGF0YSBhbmQNCgk+IGxpbmUgaXRlbXMsIGFuZCBpbnZva2luZyB0aGUgREFPJ3Mgc3Rv cmVPcmRlciBhZnRlcndhcmRzLg0KCT4NCgk+IFN1Y2ggYSBidXNpbmVzcyBvYmplY3Qgd2lsbCB0 eXBpY2FsbHkgZGVtYXJjYXRlIHRyYW5zYWN0aW9ucywgaS5lLiBtb3N0DQoJPiBvZiBpdHMgbWV0 aG9kcyB3aWxsIG5lZWQgdG8gZXhlY3V0ZSB3aXRoaW4gYSB0cmFuc2FjdGlvbi4gSXQgY2FuDQoJ PiBkZW1hcmNhdGUgdGhvc2UgdHJhbnNhY3Rpb25zIHZpYSBUcmFuc2FjdGlvblRlbXBsYXRlLCB0 aGF0J3Mgd2h5IGl0DQoJPiByZWNlaXZlcyBhIHRyYW5zYWN0aW9uIG1hbmFnZXIgcmVmZXJlbmNl IGluIHRoZSBza2VsZXRvbi4gQW4gYWx0ZXJuYXRpdmUNCgk+IGlzIGFuIEFPUCBUcmFuc2FjdGlv bkludGVyY2VwdG9yIHRoYXQgcHJveGllcyB0aGUgYnVzaW5lc3Mgb2JqZWN0DQoJPiBpdHNlbGYu DQoJPg0KCT4gU28gYSBkYXRhIGFjY2VzcyBvYmplY3Qgc2hvdWxkIGdldCBhIHJlc291cmNlIGZh Y3RvcnkgbGlrZSBhIEpEQkMNCgk+IERhdGFTb3VyY2Ugb3IgYSBIaWJlcm5hdGUgU2Vzc2lvbkZh Y3RvcnkgYnV0IG5vdCBhIHRyYW5zYWN0aW9uIG1hbmFnZXIuDQoJPiBXaXRoIGEgYnVzaW5lc3Mg b2JqZWN0LCBpdCdzIGV4YWN0bHkgdGhlIG90aGVyIHdheSByb3VuZC4gQSBidXNpbmVzcw0KCT4g b2JqZWN0IHNob3VsZCB0YWxrIHRvIGl0cyBEQU9zIHRocm91Z2ggaW50ZXJmYWNlcyB0aGF0IGFy ZSBhZ25vc3RpYyBvZg0KCT4gdGhlIGFjdHVhbCBwZXJzaXN0ZW5jZSBzdHJhdGVneSwgdG8gYmUg YWJsZSB0byBzd2l0Y2ggZS5nLiBmcm9tIEpEQkMgdG8NCgk+IEhpYmVybmF0ZSBzZWFtbGVzc2x5 Lg0KCT4NCgk+IENvbXBhcmUgYSBidXNpbmVzcyBvYmplY3Qgd2l0aCBhIFN0YXRlbGVzcyBTZXNz aW9uIEJlYW4gdGhhdCBzZXJ2ZXMgYXMNCgk+IGJ1c2luZXNzIGZhY2FkZSwganVzdCBtdWNoIG1v cmUgbGlnaHR3ZWlnaHQuIEFmdGVyIGFsbCwgdGhlc2UgYXJlIGp1c3QNCgk+IHBhdHRlcm5zOiBG b3Igc2ltcGxlIHVzZSBjYXNlcywgeW91IG1pZ2h0IGtlZXAgYWxsIG9mIHRoaXMgaW4gb25lDQoJ PiBvYmplY3QsIG5vdCBzZXBhcmF0aW5nIGJldHdlZW4gYnVzaW5lc3MgYW5kIGRhdGEgYWNjZXNz IG9wZXJhdGlvbnMuDQoJPg0KCT4gMikNCgk+DQoJPiBBIERBTyB0aGF0IGp1c3QgdXNlcyBIaWJl cm5hdGVUZW1wbGF0ZSBkb2VzIG5vdCBndWFyYW50ZWUgdHJhbnNhY3Rpb25hbA0KCT4gc2FmZXR5 LiBZb3UgbmVlZCB0byBzb21lIGtpbmQgb2YgdHJhbnNhY3Rpb24gZGVtYXJjYXRpb24gZm9yIHRo aXMuIEFzDQoJPiBvdXRsaW5lZCBhYm92ZSwgdGhpcyB0eXBpY2FsbHkgaGFwcGVucyBpbiBidXNp bmVzcyBmYWNhZGVzIHRoYXQgZGVsZWdhdGUNCgk+IHRvIHRoZSBEQU9zLiBZb3UgY291bGQgYWxz byBjaG9vc2UgdG8gdXNlIGEgVHJhbnNhY3Rpb25UZW1wbGF0ZSBpbiB5b3VyDQoJPiBEQU8sIHBy ZWZlcmFibHkgaW4gZmFjYWRlIG1ldGhvZHMgdGhhdCBkZWxlZ2F0ZSB0byB0aGUgYWN0dWFsIGRh dGENCgk+IGFjY2VzcyBtZXRob2RzLiBPciBwcm94eSB5b3VyIERBTyB3aXRoIGFuIEFPUCBUcmFu c2FjdGlvbkludGVyY2VwdG9yLg0KCT4NCgk+IDMpDQoJPg0KCT4gVGhlcmUgaXMgaW5kZWVkIGEg c3Ryb25nIGRpZmZlcmVuY2UgYmV0d2VlbiBDb250cm9sbGVyIGFuZA0KCT4gTXVsdGlBY3Rpb25D b250cm9sbGVyLiBDb250cm9sbGVyIGlzIGludGVuZGVkIGZvciBjbGFzc2VzIHRoYXQgaW1wbGVt ZW50DQoJPiBvbmUgc2luZ2xlIHJlcXVlc3QgaGFuZGxpbmcgdXNlIGNhc2UgZWFjaCwgZS5nLiBh DQoJPiBTaG93UHJvZHVjdExpc3RDb250cm9sbGVyIGFuZCBhIFNob3dQcm9kdWN0RGV0YWlsc0Nv bnRyb2xsZXIuDQoJPiBDb250cm9sbGVyJ3Mgc29sZSBtZXRob2QgaXMgImhhbmRsZVJlcXVlc3Qo cmVxdWVzdCxyZXNwb25zZSIpLg0KCT4NCgk+IE11bHRpQWN0aW9uQ29udHJvbGxlciBvbiB0aGUg b3RoZXIgaGFuZCBhbGxvd3MgdG8gaW1wbGVtZW50IG11bHRpcGxlIHVzZQ0KCT4gY2FzZXMgaW4g b25lIGNsYXNzLCB2aWEgbXVsdGlwbGUgcmVxdWVzdCBoYW5kbGluZyBtZXRob2RzIGxpa2UNCgk+ ICJzaG93UHJvZHVjdExpc3QocmVxdWVzdCxyZXNwb25zZSkiIGFuZA0KCT4gInNob3dQcm9kdWN0 RGV0YWlscyhyZXF1ZXN0LHJlc3BvbnNlKSIuIFdoaWNoIG1ldGhvZCBnZXRzIGludm9rZWQgaXMN Cgk+IGRlY2lkZWQgdmlhIGEgcmVzcGVjdGl2ZSBNZXRob2ROYW1lUmVzb2x2ZXIgc3RyYXRlZ3ks IGUuZy4gYWNjb3JkaW5nIHRvDQoJPiBhIHJlcXVlc3QgcGFyYW1ldGVyIG9yIGFuIGV4cGxpY2l0 IG1hcHBpbmcuIFRoaXMgaXMgY29udmVuaWVudCBmb3INCgk+IG11bHRpcGxlIHNtYWxsIHVzZSBj YXNlcyB0byBhdm9pZCBhbiBleGNlc3NpdmUgbnVtYmVyIG9mIGNvbnRyb2xsZXINCgk+IGNsYXNz ZXMuDQoJPg0KCT4gTm90ZSB0aGF0IFNwcmluZyBzZXBhcmF0ZXMgcm9sZXMgc3RyaWN0ZXIgdGhh biBXZWJXb3JrLiBJbiBXZWJXb3JrLCBhbg0KCT4gQWN0aW9uIGlzIGNvbnRyb2xsZXIsIGNvbW1h bmQvZm9ybSwgYW5kIG1vZGVsIGluIG9uZSBvYmplY3Q6IEl0IGdldHMNCgk+IGluc3RhbnRpYXRl ZCwgcG9wdWxhdGVkLCBleGVjdXRlZCwgYW5kIHBhc3NlZCB0byB0aGUgdmlldy4gVGhpcyBpcyBu b3QNCgk+IHJlYWxseSBjbGVhbiwgYXMgYSB2aWV3IGRvZXNuJ3QgbmVlZCB0byBzZWUgdGhlIGNv bnRyb2xsZXIgbWV0aG9kcyBvcg0KCT4gdGhlIG9yaWdpbmFsIGNvbW1hbmQgcHJvcGVydGllczog QSB2aWV3IGp1c3QgbmVlZHMgdGhlIHB1cmUgbW9kZWwgdGhhdA0KCT4gaXQgc2hvdWxkIHJlbmRl ci4NCgk+DQoJPiBBIFNwcmluZyBDb250cm9sbGVyIGlzIGp1c3QgYSBjb250cm9sbGVyIGluIHRo ZSBzZW5zZSB0aGF0IGl0IGRldGVybWluZXMNCgk+IHRoZSBwcm9jZXNzaW5nIHdvcmtmbG93LCB0 aGF0J3Mgd2h5IGl0IGNhbiBiZSBhIHJldXNhYmxlIHNpbmdsZXRvbi4gQQ0KCT4gU3ByaW5nIGNv bW1hbmQgb2JqZWN0IGlzIGp1c3QgYSBob2xkZXIgb2YgY29tbWFuZCBwcm9wZXJ0aWVzLA0KCT4g aW5zdGFudGlhdGVkIHBlciByZXF1ZXN0LiBBIFNwcmluZyBtb2RlbCBpcyBhIG1hcCBvZiBuYW1l ZCBhdHRyaWJ1dGVzDQoJPiB0aGF0IGFyZSBwcm92aWRlZCB0byB2aWV3cywgd2hpY2ggbWF5IGlu Y2x1ZGUgYSBmb3JtIG9iamVjdCBhbmQvb3INCgk+IHJlZmVyZW5jZSBkYXRhLiBTdWNoIGEgbW9k ZWwgZG9lcyBub3QgaGF2ZSB0byBpbmNsdWRlIGFueXRoaW5nIHRoYXQgYQ0KCT4gdmlldyBkb2Vz bid0IG5lZWQgdG8gc2VlLg0KCT4NCgk+IEluIHRlcm1zIG9mIGNvbnZlbmllbmNlIGJhc2UgY2xh c3NlcywgeW91IGNhbiBjaG9vc2UgYmV0d2VlbjoNCgk+IC0gYSBwdXJlIGNvbnRyb2xsZXIgdGhh dCBhY3RzIGFzIGRpc3BhdGNoZWQgcmVwbGFjZW1lbnQgb2YgYSBzZXJ2bGV0Ow0KCT4gLSBhIGNv bW1hbmQgY29udHJvbGxlciB0aGF0IGluc3RhbnRpYXRlcyBhIGNvbW1hbmQgb2JqZWN0LCBwb3B1 bGF0ZXMgaXQNCgk+IHdpdGggcmVxdWVzdCBwYXJhbWV0ZXJzLCBhbmQgZGVjaWRlcyBob3cgdG8g cHJvY2VlZCB0aGVuOw0KCT4gLSBhIGZvcm0gY29udHJvbGxlciB0aGF0IHdvcmtzIHNpbWlsYXIg dG8gYSBjb21tYW5kIGNvbnRyb2xsZXIgYnV0DQoJPiBhcHBsaWVzIGEgZm9ybSBlZGl0aW5nIHdv cmtmbG93IHdpdGggZm9ybSB2aWV3IGFuZCBzdWJtaXQgdmlldzsNCgk+IC0gYSB3aXphcmQgZm9y bSBjb250cm9sbGVyIHRoYXQgYXBwbGllcyBhIGZvcm0gd29ya2Zsb3cgd2l0aCBtdWx0aXBsZQ0K CT4gcGFnZXMuDQoJPg0KCT4gU28gaWYgeW91J3JlIHVzZWQgdG8gdGhlIFdlYldvcmsgb3IgY2xh c3NpYyBTZXJ2bGV0IHN0eWxlLCBzaW1wbHkgc3RheQ0KCT4gd2l0aCBDb250cm9sbGVyIGFuZCBp dHMgY29udmVuaWVuY2Ugc3ViY2xhc3NlcyBsaWtlDQoJPiBBYnN0cmFjdENvbW1hbmRDb250cm9s bGVyIG9yIFNpbXBsZUZvcm1Db250cm9sbGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwNCgk+IHBlb3Bs ZSBjb21pbmcgZnJvbSBTdHJ1dHMgMS4xIG1pZ2h0IHByZWZlciBNdWx0aUFjdGlvbkNvbnRyb2xs ZXIgYXMgdGhleQ0KCT4ga25vdyBhIHNpbWlsYXIgY29uY2VwdDogU3RydXRzJyBEaXNwYXRjaEFj dGlvbi4NCgk+DQoJPiBKdWVyZ2VuDQoJPg0KCT4NCgk+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQoJPiBGcm9tOiBMYXJzIEZpc2NoZXIgW21haWx0bzpsYXJzLmZpc2NoZXJAZ214cHJvLm5l dF0NCgk+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyNiwgMjAwMyAxMjowMCBQTQ0KCT4gVG86IHNw cmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJPiBTdWJqZWN0 OiBbU3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blcl0gQSBmZXcgcXVlc3Rpb25zDQoJPg0KCT4NCgk+ IEZpbmFsbHkgSSd2ZSBtYW5hZ2VkIHRvIGdldCB0aGUgd2hvbGUgdGhpbmcgd29ya2luZyB3aXRo IEhpYmVybmF0ZSBhbmQNCgk+IFdlYkxvZ2ljLg0KCT4NCgk+IFRoZXJlIGFyZSBzdGlsbCBhIGZl dyBuZXdiaWUgcXVlc3Rpb25zIGxlZnQ6DQoJPg0KCT4gSW4gYXBwbGljYXRpb25Db250ZXh0Lnht bCBmcm9tIHRoZSBIaWJlcm5hdGUgc2tlbGV0b24gSSd2ZSBkZWZpbmVkIHRoaXMNCgk+IHBhcnQ6 DQoJPg0KCT4gPGJlYW4gaWQ9ImV4YW1wbGVEYXRhQWNjZXNzT2JqZWN0Ig0KCT4gY2xhc3M9ImV4 YW1wbGUuRXhhbXBsZURhdGFBY2Nlc3NPYmplY3QiPg0KCT4gICA8cHJvcGVydHkgbmFtZT0ic2Vz c2lvbkZhY3RvcnkiPjxyZWYNCgk+IGJlYW49Im15U2Vzc2lvbkZhY3RvcnkiLz48L3Byb3BlcnR5 Pg0KCT4gICA8cHJvcGVydHkgbmFtZT0iZXhhbXBsZVBhcmFtIj48dmFsdWU+c29tZVZhbHVlPC92 YWx1ZT48L3Byb3BlcnR5Pg0KCT4gPC9iZWFuPg0KCT4NCgk+IDEuKSBXaGVuIGRvIEkgbmVlZCB0 aGUgcGFydCBkZWZpbmluZyAoZG8gSSBuZWVkIGl0IGF0IGFsbD8pDQoJPg0KCT4gPGJlYW4gaWQ9 ImV4YW1wbGVCdXNpbmVzc09iamVjdCINCgk+IGNsYXNzPSJleGFtcGxlLkV4YW1wbGVCdXNpbmVz c09iamVjdCI+DQoJPiAgIDxwcm9wZXJ0eSBuYW1lPSJ0cmFuc2FjdGlvbk1hbmFnZXIiPjxyZWYN Cgk+IGJlYW49Im15VHJhbnNhY3Rpb25NYW5hZ2VyIi8+PC9wcm9wZXJ0eT4NCgk+ICAgPHByb3Bl cnR5IG5hbWU9ImRhdGFBY2Nlc3NPYmplY3QiPjxyZWYNCgk+IGJlYW49ImV4YW1wbGVEYXRhQWNj ZXNzT2JqZWN0Ii8+PC9wcm9wZXJ0eT4NCgk+ICAgPHByb3BlcnR5DQoJPiBuYW1lPSJleGFtcGxl UGFyYW0iPjx2YWx1ZT5zb21lT3RoZXJWYWx1ZTwvdmFsdWU+PC9wcm9wZXJ0eT4NCgk+IDwvYmVh bj4NCgk+DQoJPiAyLikgSW4gbXkgREFPIGltcGxlbWVudGF0aW9uIEkgdXNlIEhpYmVybmF0ZVRl bXBsYXRlLiBJIGFzc3VtZSB0aGF0DQoJPiB0aG9zZQ0KCT4gbWV0aG9kcw0KCT4gYXJlIHRyYW5z YWN0aW9uIHNhZmUgd2l0aCBvbmx5IHRoZSBmaXJzdCBwYXJ0DQoJPiAoImV4YW1wbGVEYXRhQWNj ZXNzT2JqZWN0IikNCgk+IGRlZmluZWQgKD8pLg0KCT4NCgk+IDMuKSBTcHJpbmcgcHJvdmlkZXMg YSAiQ29udHJvbGxlciIgYW5kIGEgIk11bHRpQWN0aW9uQ29udHJvbGxlciIuIEZvcg0KCT4gc3Vy ZQ0KCT4gdGhlcmUgYXJlIGxvdHMNCgk+IG9mIGFyY2hpdGVjdHVyYWwgcmVhc29ucyBmb3IgcHJv dmlkaW5nIGJvdGguIEJ1dCB3b3VsZG4ndCBpdCBiZSBlYXNpZXINCgk+IGp1c3QNCgk+IHRvIHBy b3ZpZGUgb25lDQoJPiBraW5kIG9mIGNvbnRyb2xsZXIgPyBFLmcuIGluIFdlYldvcmsgMSB5b3Ug Y2FuIG1ha2UgYSBjbGFzcyBBY3Rpb25Bd2FyZSwNCgk+IFNlc3Npb25Bd2FyZSwgZXRjLg0KCT4g d2hpY2ggaXMgdmVyeSBlYXN5IHRvIHVuZGVyc3RhbmQgKHdoZW4gdG8gdXNlIHdoYXQgZXZlbiB3 aXRob3V0DQoJPiBkb2N1bWVudGF0aW9uKS4NCgk+DQoJPiBUaGFua3MgYWdhaW4NCgk+IExhcnMN Cgk+DQoJPg0KCT4NCgk+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCgk+IFRoaXMgU0YubmV0IGVtYWlsIGlzIHNwb25zb3JlZCBieTogVk0g V2FyZQ0KCT4gV2l0aCBWTXdhcmUgeW91IGNhbiBydW4gbXVsdGlwbGUgb3BlcmF0aW5nIHN5c3Rl bXMgb24gYSBzaW5nbGUgbWFjaGluZS4NCgk+IFdJVEhPVVQgUkVCT09USU5HISBNaXggTGludXgg LyBXaW5kb3dzIC8gTm92ZWxsIHZpcnR1YWwgbWFjaGluZXMNCgk+IGF0IHRoZSBzYW1lIHRpbWUu IEZyZWUgdHJpYWwgY2xpY2sNCgk+IGhlcmU6aHR0cDovL3d3dy52bXdhcmUuY29tL3dsL29mZmVy LzM1OC8wDQoJPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xw0KCT4gU3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlciBtYWlsaW5nIGxpc3QNCgk+IFNwcmluZ2Zy YW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJPiBodHRwczovL2xpc3Rz LnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9zcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVy DQoJPg0KCT4NCgk+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCgk+IFRoaXMgU0YubmV0IGVtYWlsIGlzIHNwb25zb3JlZCBieTogVk0gV2Fy ZQ0KCT4gV2l0aCBWTXdhcmUgeW91IGNhbiBydW4gbXVsdGlwbGUgb3BlcmF0aW5nIHN5c3RlbXMg b24gYSBzaW5nbGUgbWFjaGluZS4NCgk+IFdJVEhPVVQgUkVCT09USU5HISBNaXggTGludXggLyBX aW5kb3dzIC8gTm92ZWxsIHZpcnR1YWwgbWFjaGluZXMNCgk+IGF0IHRoZSBzYW1lIHRpbWUuIEZy ZWUgdHJpYWwgY2xpY2sNCgk+IGhlcmU6aHR0cDovL3d3dy52bXdhcmUuY29tL3dsL29mZmVyLzM1 OC8wDQoJPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K CT4gU3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlciBtYWlsaW5nIGxpc3QNCgk+IFNwcmluZ2ZyYW1l d29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJPiBodHRwczovL2xpc3RzLnNv dXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9zcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyDQoJ Pg0KCQ0KCQ0KCQ0KCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCglUaGlzIFNGLm5ldCBlbWFpbCBpcyBzcG9uc29yZWQgYnk6IFZNIFdhcmUN CglXaXRoIFZNd2FyZSB5b3UgY2FuIHJ1biBtdWx0aXBsZSBvcGVyYXRpbmcgc3lzdGVtcyBvbiBh IHNpbmdsZSBtYWNoaW5lLg0KCVdJVEhPVVQgUkVCT09USU5HISBNaXggTGludXggLyBXaW5kb3dz IC8gTm92ZWxsIHZpcnR1YWwgbWFjaGluZXMNCglhdCB0aGUgc2FtZSB0aW1lLiBGcmVlIHRyaWFs IGNsaWNrIGhlcmU6aHR0cDovL3d3dy52bXdhcmUuY29tL3dsL29mZmVyLzM1OC8wDQoJX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCglTcHJpbmdmcmFtZXdv cmstZGV2ZWxvcGVyIG1haWxpbmcgbGlzdA0KCVNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlz dHMuc291cmNlZm9yZ2UubmV0DQoJaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMv bGlzdGluZm8vc3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blcg0KCQ0KDQo= |
|
From: Lars F. <lar...@gm...> - 2003-08-27 06:53:22
|
Rod, thanks for the insight, it's very valuable for me. With Spring there is the possibility to use a servlet engine without a full blown application server (this reduces the price for the application server). Another advantage is to get rid of all those J2EE patterns only needed to avoid bad performance. Regards, Lars > > Concerning the sample application in Rod's book: > > > > - Rod uses Session Beans for certain operations - is this still the > > prefered approach or would you completely ignore EJBs ? > > I used a single *local* SLSB. I would only use EJB now if I wanted to > distribute my business objects--something I normally try to avoid. > > So there are not that many situations where I would now use EJB. > > > > Another interesting question for me is if anybody using Spring and > Hibernate > > can > > tell me about real world experiences. Is it possible to replace EJBs > with > > Spring and > > Hibernate and still have an application that is stable and scalable > (let's > > say it works > > for 3 users and for 100 users with the same application design). > > There should be no scalable issues compared with using local EJBs. Using > remote EJBs is a different issue but in my experience, as I say in my > book, > distributing your business objects is bad for performance and not > particularly good for scalability. > > But I'd also like to hear about users' real experiences with Spring... I > don't currently have anything in production on Spring but I've been very > happy with the load testing etc I've done on the code I've developed so > far. > > Regards, > Rod > > |
|
From: Rob B. <rob...@ve...> - 2003-08-26 23:25:39
|
Hello all, I was just wondering what impact (if any) Java Server Faces will have on Spring? Will a JSF "adapter" be developed for spring? Since JSF will be part of the J2EE standard managers will start to expect everyone to use / know JSF, or the existing / entrenched Struts framework. Spring may have an uphill battle if it doesn't support JSF, when it appears Struts will. Thoughts / opinions. Later Rob |
|
From: Rod J. <rod...@in...> - 2003-08-26 21:48:19
|
> Concerning the sample application in Rod's book: > > - Rod uses Session Beans for certain operations - is this still the > prefered approach or would you completely ignore EJBs ? I used a single *local* SLSB. I would only use EJB now if I wanted to distribute my business objects--something I normally try to avoid. So there are not that many situations where I would now use EJB. > Another interesting question for me is if anybody using Spring and Hibernate > can > tell me about real world experiences. Is it possible to replace EJBs with > Spring and > Hibernate and still have an application that is stable and scalable (let's > say it works > for 3 users and for 100 users with the same application design). There should be no scalable issues compared with using local EJBs. Using remote EJBs is a different issue but in my experience, as I say in my book, distributing your business objects is bad for performance and not particularly good for scalability. But I'd also like to hear about users' real experiences with Spring... I don't currently have anything in production on Spring but I've been very happy with the load testing etc I've done on the code I've developed so far. Regards, Rod |
|
From: JP P. <jp....@ti...> - 2003-08-26 20:21:24
|
>> So could jdbc.object users please retest the latest Spring codebase >> against their own applications? :-) It's completely transparent for me. At least for basic queries and updates as I don't use any transaction for now. Regards, Jean-Pierre |
|
From: Lars F. <lar...@gm...> - 2003-08-26 19:30:26
|
These are very good explantions Jürgen, thanks a lot !
I also checked Rod's book and it's all much clearer for me now (should have
done
that before ...).
Concerning the sample application in Rod's book:
- Rod uses Session Beans for certain operations - is this still the
prefered approach or would you completely ignore EJBs ?
Another interesting question for me is if anybody using Spring and Hibernate
can
tell me about real world experiences. Is it possible to replace EJBs with
Spring and
Hibernate and still have an application that is stable and scalable (let's
say it works
for 3 users and for 100 users with the same application design).
Maybe when gaining further experience I can provide some short recipes for
the WIKI.
Regards
Lars
> ad 1)
>
> A data access object is supposed to be concerned just with actual data
> access operations, it shouldn't care about transactions or being part of
> a larger unit-of-work. It will mainly offer methods like "loadProduct",
> "findProducts", "storeOrder", "deleteOrder". Invoked directly, those
> methods will simply execute non-transactional, i.e. without
> transactional guarantees.
>
> A business object is supposed to implement business operations, i.e. the
> units-of-work that a web controller or remote client needs to trigger.
> This can be simple delegations to DAO methods, or more complex business
> logic like creating an Order object, filling it with customer data and
> line items, and invoking the DAO's storeOrder afterwards.
>
> Such a business object will typically demarcate transactions, i.e. most
> of its methods will need to execute within a transaction. It can
> demarcate those transactions via TransactionTemplate, that's why it
> receives a transaction manager reference in the skeleton. An alternative
> is an AOP TransactionInterceptor that proxies the business object
> itself.
>
> So a data access object should get a resource factory like a JDBC
> DataSource or a Hibernate SessionFactory but not a transaction manager.
> With a business object, it's exactly the other way round. A business
> object should talk to its DAOs through interfaces that are agnostic of
> the actual persistence strategy, to be able to switch e.g. from JDBC to
> Hibernate seamlessly.
>
> Compare a business object with a Stateless Session Bean that serves as
> business facade, just much more lightweight. After all, these are just
> patterns: For simple use cases, you might keep all of this in one
> object, not separating between business and data access operations.
>
> 2)
>
> A DAO that just uses HibernateTemplate does not guarantee transactional
> safety. You need to some kind of transaction demarcation for this. As
> outlined above, this typically happens in business facades that delegate
> to the DAOs. You could also choose to use a TransactionTemplate in your
> DAO, preferably in facade methods that delegate to the actual data
> access methods. Or proxy your DAO with an AOP TransactionInterceptor.
>
> 3)
>
> There is indeed a strong difference between Controller and
> MultiActionController. Controller is intended for classes that implement
> one single request handling use case each, e.g. a
> ShowProductListController and a ShowProductDetailsController.
> Controller's sole method is "handleRequest(request,response").
>
> MultiActionController on the other hand allows to implement multiple use
> cases in one class, via multiple request handling methods like
> "showProductList(request,response)" and
> "showProductDetails(request,response)". Which method gets invoked is
> decided via a respective MethodNameResolver strategy, e.g. according to
> a request parameter or an explicit mapping. This is convenient for
> multiple small use cases to avoid an excessive number of controller
> classes.
>
> Note that Spring separates roles stricter than WebWork. In WebWork, an
> Action is controller, command/form, and model in one object: It gets
> instantiated, populated, executed, and passed to the view. This is not
> really clean, as a view doesn't need to see the controller methods or
> the original command properties: A view just needs the pure model that
> it should render.
>
> A Spring Controller is just a controller in the sense that it determines
> the processing workflow, that's why it can be a reusable singleton. A
> Spring command object is just a holder of command properties,
> instantiated per request. A Spring model is a map of named attributes
> that are provided to views, which may include a form object and/or
> reference data. Such a model does not have to include anything that a
> view doesn't need to see.
>
> In terms of convenience base classes, you can choose between:
> - a pure controller that acts as dispatched replacement of a servlet;
> - a command controller that instantiates a command object, populates it
> with request parameters, and decides how to proceed then;
> - a form controller that works similar to a command controller but
> applies a form editing workflow with form view and submit view;
> - a wizard form controller that applies a form workflow with multiple
> pages.
>
> So if you're used to the WebWork or classic Servlet style, simply stay
> with Controller and its convenience subclasses like
> AbstractCommandController or SimpleFormController. On the other hand,
> people coming from Struts 1.1 might prefer MultiActionController as they
> know a similar concept: Struts' DispatchAction.
>
> Juergen
>
>
> -----Original Message-----
> From: Lars Fischer [mailto:lar...@gm...]
> Sent: Tuesday, August 26, 2003 12:00 PM
> To: spr...@li...
> Subject: [Springframework-developer] A few questions
>
>
> Finally I've managed to get the whole thing working with Hibernate and
> WebLogic.
>
> There are still a few newbie questions left:
>
> In applicationContext.xml from the Hibernate skeleton I've defined this
> part:
>
> <bean id="exampleDataAccessObject"
> class="example.ExampleDataAccessObject">
> <property name="sessionFactory"><ref
> bean="mySessionFactory"/></property>
> <property name="exampleParam"><value>someValue</value></property>
> </bean>
>
> 1.) When do I need the part defining (do I need it at all?)
>
> <bean id="exampleBusinessObject"
> class="example.ExampleBusinessObject">
> <property name="transactionManager"><ref
> bean="myTransactionManager"/></property>
> <property name="dataAccessObject"><ref
> bean="exampleDataAccessObject"/></property>
> <property
> name="exampleParam"><value>someOtherValue</value></property>
> </bean>
>
> 2.) In my DAO implementation I use HibernateTemplate. I assume that
> those
> methods
> are transaction safe with only the first part
> ("exampleDataAccessObject")
> defined (?).
>
> 3.) Spring provides a "Controller" and a "MultiActionController". For
> sure
> there are lots
> of architectural reasons for providing both. But wouldn't it be easier
> just
> to provide one
> kind of controller ? E.g. in WebWork 1 you can make a class ActionAware,
> SessionAware, etc.
> which is very easy to understand (when to use what even without
> documentation).
>
> Thanks again
> Lars
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: VM Ware
> With VMware you can run multiple operating systems on a single machine.
> WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
> at the same time. Free trial click
> here:http://www.vmware.com/wl/offer/358/0
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: VM Ware
> With VMware you can run multiple operating systems on a single machine.
> WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
> at the same time. Free trial click
> here:http://www.vmware.com/wl/offer/358/0
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
|
|
From: <jue...@we...> - 2003-08-26 18:22:20
|
RXZlcnlib2R5LA0KIA0KSSd2ZSBqdXN0IGFkZGVkIGEgbmV3IFF1ZXJ5RXhlY3V0b3IgaW50ZXJm YWNlIHRoYXQgSmRiY1RlbXBsYXRlIGRlbGVnYXRlcyBhY3R1YWwgU3RhdGVtZW50IGFuZCBQcmVw YXJlZFN0YXRlbWVudCBleGVjdXRpb24gdG8uIFRoZSBtYWluIGludGVudCBpcyB0byBhbGxvdyBm b3IgdW5jb3ZlcmluZyB1bmRlcmx5aW5nIFJlc3VsdFNldHMgaW4gY2FzZSBvZiBiZWluZyB3cmFw cGVkIGJ5IGEgY29ubmVjdGlvbiBwb29sLCB0byBiZSBhYmxlIHRvIGNhc3QgaXQgdG8gZS5nLiBP cmFjbGVSZXN1bHRTZXQuDQogDQpJJ3ZlIGFsc28gYWRkZWQgYW4gaW1wbGVtZW50YXRpb24sIG5h bWVseSBDb21tb25zRGJjcFF1ZXJ5RXhlY3V0b3IgZm9yIEpha2FydGEgQ29tbW9ucyBEQkNQLiBC VFcgd2l0aCBEQkNQLCB5b3UgbmVlZCB0byB1bndyYXAgaXRzIERlbGVnYXRpbmdTdGF0ZW1lbnQg YW5kIGV4ZWN1dGUgdGhlIHVuZGVybHlpbmcgb25lIHRvIGdldCB0aGUgbmF0aXZlIFJlc3VsdFNl dCwgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIHJldHJpZXZlIHRoZSB1bmRlcmx5aW5nIFJlc3VsdFNl dCBmcm9tIGEgREJDUCBEZWxlZ2F0aW5nUmVzdWx0U2V0Lg0KIA0KTm90ZSB0aGF0IHNldHRpbmcg YSBRdWVyeUV4ZWN1dG9yIG9uIEpkYmNUZW1wbGF0ZSBpcyBqdXN0IG5lY2Vzc2FyeSBpZiB5b3Ug bmVlZCB0byBjYXN0IHRoZSBSZXN1bHRTZXQgdG8gZS5nLiBPcmFjbGVSZXN1bHRTZXQuIEVsc2Us IGFueSB3cmFwcGVkIFJlc3VsdFNldCB3aWxsIGJlIGZpbmUgdG9vLg0KIA0KT24gdGhlIG9jY2Fz aW9uLCBJJ3ZlIGFsc28gcmV2aXNlZCB0aGUgUmRibXNPcGVyYXRpb24gaGllcmFyY2h5LCBlc3Bl Y2lhbGx5IFNxbE9wZXJhdGlvbi4gSXQgYWxsb3dzIGZvciBhbGwgb2YgSmRiY1RlbXBsYXRlJ3Mg b3B0aW9ucyBub3csIGluY2x1ZGluZyBhIGN1c3RvbSBRdWVyeUV4ZWN1dG9yLiBJIGhhZCB0byBy ZXdvcmtlZCBxdWl0ZSBhIGJpdCBvZiB0aGUgaW5pdGlhbGl6YXRpb24gY29kZSBmb3IgdGhpcywg c28gSSBob3BlIGV2ZXJ5dGhpbmcgc3RpbGwgd29ya3MgZmluZS4NCiANClNvIGNvdWxkIGpkYmMu b2JqZWN0IHVzZXJzIHBsZWFzZSByZXRlc3QgdGhlIGxhdGVzdCBTcHJpbmcgY29kZWJhc2UgYWdh aW5zdCB0aGVpciBvd24gYXBwbGljYXRpb25zPyA6LSkNCiANClJlZ2FyZHMsDQpKdWVyZ2VuDQog DQogDQoNCgktLS0tLVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tIA0KCVZvbjogS29weWxl bmtvLCBEbWl0cnkgW21haWx0bzpka29weWxlbmtvQGFjcy5ydXRnZXJzLmVkdV0gDQoJR2VzZW5k ZXQ6IE1vIDI1LjA4LjIwMDMgMjE6MTggDQoJQW46ICdzcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVy QGxpc3RzLnNvdXJjZWZvcmdlLm5ldCcgDQoJQ2M6IA0KCUJldHJlZmY6IFtTcHJpbmdmcmFtZXdv cmstZGV2ZWxvcGVyXSBBcHBsaWNhdGlvbiBDb2RlIHJ1bm5pbmcgMS4wIChsYXRlc3QgZnJvbSBD VlMpDQoJDQoJDQoNCglGLlkuSSAtICB0ZXN0ZWQgYXBwbGljYXRpb24gY29kZSBhZ2FpbnN0IHRo ZSBsYXRlc3Qgc3ByaW5nIGNvZGViYXNlIGZyb20gQ1ZTLiBXb3JrcyBiZWF1dGlmdWxseSA6LSkg DQoNCglEbWl0cml5LiANCg0K |
|
From: <jue...@we...> - 2003-08-26 16:49:07
|
SSd2ZSBqdXN0IHJld29ya2VkIERyaXZlck1hbmFnZXJEYXRhU291cmNlIGFuZCBTaW5nbGVDb25u ZWN0aW9uRGF0YVNvdXJjZSBhY2NvcmRpbmdseS4NCg0KSWYgZ2l2ZW4gYW4gZXhpc3RpbmcgY29u bmVjdGlvbiwgc2V0QXV0b0NvbW1pdCBpcyBub3QgY2FsbGVkLiBXaGVuIGNyZWF0aW5nIG5ldyBj b25uZWN0aW9ucyB2aWEgRHJpdmVyTWFuYWdlciwgdGhleSBhcmUgdHVybmVkIHRvIGF1dG8tY29t bWl0IG1vZGUgKGFsdGhvdWdoIHRoaXMgc2hvdWxkIGFscmVhZHkgaGF2ZSBoYXBwZW5lZCB0aHJv dWdoIHRoZSBKREJDIGRyaXZlciBpdHNlbGYgYW55ZWF5KS4NCg0KSSByZWFsbHkgZG9uJ3Qgc2Vl IGFueSBzZW5zZSBpbiByZXR1cm5pbmcgbmV3IGNvbm5lY3Rpb25zIGluIGF1dG9Db21taXQ9ZmFs c2Ugc3RhdGUgKGFrYSBhIHN0YXJ0ZWQgdHJhbnNhY3Rpb24pOiBBIERhdGFTb3VyY2UgaXMgbm90 IHN1cHBvc2VkIHRvIHJldHVybiBjb25uZWN0aW9ucyB0aGF0IGFyZSBpbiBhbiBhY3RpdmUgdHJh bnNhY3Rpb24uIEFwcGxpY2F0aW9uIGNvZGUgaGFzIHRvIGRlY2lkZSB3aGVuIHRvIHN0YXJ0IGFu ZCBlbmQgYSB0cmFuc2FjdGlvbi4NCg0KSnVlcmdlbg0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQpGcm9tOiBDb2xpbiBTYW1wYWxlYW51IFttYWlsdG86Y29saW5tbDFAZXhpcy5jb21d DQpTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjYsIDIwMDMgNTo0NCBBTQ0KVG86IHNwcmluZ2ZyYW1l d29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQpDYzogasO8cmdlbiBow7ZsbGVy IFt3ZXJrM0FUXQ0KU3ViamVjdDogUGF0Y2ggZm9yIFNpbmdsZUNvbm5lY3Rpb25EYXRhU291cmNl LmphdmEgdG8gYWxsb3cNCnNldEF1dG9Db21taXQgY29udHJvbA0KDQoNCkhlcmUncyBhIHBhdGNo IGZvciBTaW5nbGVDb25uZWN0aW9uRGF0YVNvdXJjZSB3aGljaCBhbGxvd3MgdGhlIA0Kc2V0QXV0 b0NvbW1pdCBjYWxsIHRvIGJlIGNvbnRyb2xsZWQsIGFzIHBlciBlYXJsaWVyIGRpc2N1c3Npb24u IEJ5IA0KZGVmYXVsdCwgdGhlIGNsYXNzIHdpbGwgbm8gbG9uZ2VyIGNhbGwgc2V0Q29tbWl0IGF0 IGFsbCBpZiBhbiBleGlzdGluZyANCmNvbm5lY3Rpb24gaXMgZ2l2ZW4gdG8gaXQgaW4gdGhlIGNv bnN0cnVjdG9yLiBPdGhlcndpc2UgaXQgd2lsbCBiZWhhdmUgDQp0aGUgc2FtZSBhcyBiZWZvcmUg YnkgZGVmYXVsdCAoaS5lLiBpZiB0aGUgY29ubmVjdGlvbiBpcyBvYnRhaW5lZCBmcm9tIA0KRHJp dmVNYW5hZ2VyIHRoZW4gc2V0QXV0b0NvbW1pdCh0cnVlKSBpcyBjYWxsZWQpLiBUaGVyZSBhcmUg ZmxhZ3MgdG8gDQpjb250cm9sIHRoZSBjYWxsaW5nIG9mIHNldEF1dG9Db21taXQgYW5kIHRoZSBp bml0aWFsIHN0YXRlLg0KDQpBcyB0byB3aGV0aGVyIHRoZSBjbGFzcyBzaG91bGQgZXZlbiBhbGxv dyBvdmVycmlkaW5nIHRoaXMgd2hlbiB0aGUgDQpjb25uZWN0aW9uIGNvbWVzIGZyb20gRHJpdmVy TWFuZ2VyOyBpdCdzIHRydWUgdGhhdCBtb3N0IHBlb3BsZSB3b3VsZCANCmV4cGVjdCB0aGUgc3Rh dGUgdG8gYmUgYXV0b2NvbW1pdD10cnVlIGFzIHBlciB0aGUgQ29ubmVjdGlvbiBqYXZhZG9jcywg DQpidXQgb24gdGhlIG90aGVyIGhhbmQgdGhlIGNvZGUgd2FzIHNpbXBsZXIgdGhpcyB3YXksIGFu ZCBtYXliZSB0aGUgZXh0cmEgDQpmbGV4aWJpbGl0eSB3aWxsIGhlbHAgaW4gdGVzdGluZy4uLg0K DQpSZWdhcmRzLA0KQ29saW4NCg0K |
|
From: Lars F. <lar...@gm...> - 2003-08-26 15:50:39
|
Thanks Jürgen,
your company must be very happy having such an outstanding developer
and personality.
Spring really seems to be a very complete framework. What makes it
hard for beginners is the amount of possibilities and configuration
options.
This kind of valuable information you provide to the list should be
put on the WIKI. What do you think about this ?
Lars
> > ad 1)
> >
> > A data access object is supposed to be concerned just with actual data
> > access operations, it shouldn't care about transactions or being part of
>
> > a larger unit-of-work. It will mainly offer methods like "loadProduct",
> > "findProducts", "storeOrder", "deleteOrder". Invoked directly, those
> > methods will simply execute non-transactional, i.e. without
> > transactional guarantees.
> >
> > A business object is supposed to implement business operations, i.e. the
>
> > units-of-work that a web controller or remote client needs to trigger.
> > This can be simple delegations to DAO methods, or more complex business
> > logic like creating an Order object, filling it with customer data and
> > line items, and invoking the DAO's storeOrder afterwards.
> >
> > Such a business object will typically demarcate transactions, i.e. most
> > of its methods will need to execute within a transaction. It can
> > demarcate those transactions via TransactionTemplate, that's why it
> > receives a transaction manager reference in the skeleton. An alternative
>
> > is an AOP TransactionInterceptor that proxies the business object
> > itself.
> >
> > So a data access object should get a resource factory like a JDBC
> > DataSource or a Hibernate SessionFactory but not a transaction manager.
> > With a business object, it's exactly the other way round. A business
> > object should talk to its DAOs through interfaces that are agnostic of
> > the actual persistence strategy, to be able to switch e.g. from JDBC to
> > Hibernate seamlessly.
> >
> > Compare a business object with a Stateless Session Bean that serves as
> > business facade, just much more lightweight. After all, these are just
> > patterns: For simple use cases, you might keep all of this in one
> > object, not separating between business and data access operations.
> >
> > 2)
> >
> > A DAO that just uses HibernateTemplate does not guarantee transactional
> > safety. You need to some kind of transaction demarcation for this. As
> > outlined above, this typically happens in business facades that delegate
>
> > to the DAOs. You could also choose to use a TransactionTemplate in your
> > DAO, preferably in facade methods that delegate to the actual data
> > access methods. Or proxy your DAO with an AOP TransactionInterceptor.
> >
> > 3)
> >
> > There is indeed a strong difference between Controller and
> > MultiActionController. Controller is intended for classes that implement
>
> > one single request handling use case each, e.g. a
> > ShowProductListController and a ShowProductDetailsController.
> > Controller's sole method is "handleRequest(request,response").
> >
> > MultiActionController on the other hand allows to implement multiple use
>
> > cases in one class, via multiple request handling methods like
> > "showProductList(request,response)" and
> > "showProductDetails(request,response)". Which method gets invoked is
> > decided via a respective MethodNameResolver strategy, e.g. according to
> > a request parameter or an explicit mapping. This is convenient for
> > multiple small use cases to avoid an excessive number of controller
> > classes.
> >
> > Note that Spring separates roles stricter than WebWork. In WebWork, an
> > Action is controller, command/form, and model in one object: It gets
> > instantiated, populated, executed, and passed to the view. This is not
> > really clean, as a view doesn't need to see the controller methods or
> > the original command properties: A view just needs the pure model that
> > it should render.
> >
> > A Spring Controller is just a controller in the sense that it determines
>
> > the processing workflow, that's why it can be a reusable singleton. A
> > Spring command object is just a holder of command properties,
> > instantiated per request. A Spring model is a map of named attributes
> > that are provided to views, which may include a form object and/or
> > reference data. Such a model does not have to include anything that a
> > view doesn't need to see.
> >
> > In terms of convenience base classes, you can choose between:
> > - a pure controller that acts as dispatched replacement of a servlet;
> > - a command controller that instantiates a command object, populates it
> > with request parameters, and decides how to proceed then;
> > - a form controller that works similar to a command controller but
> > applies a form editing workflow with form view and submit view;
> > - a wizard form controller that applies a form workflow with multiple
> > pages.
> >
> > So if you're used to the WebWork or classic Servlet style, simply stay
> > with Controller and its convenience subclasses like
> > AbstractCommandController or SimpleFormController. On the other hand,
> > people coming from Struts 1.1 might prefer MultiActionController as they
>
> > know a similar concept: Struts' DispatchAction.
> >
> > Juergen
> >
> >
> > -----Original Message-----
> > From: Lars Fischer [mailto:lar...@gm...]
> > Sent: Tuesday, August 26, 2003 12:00 PM
> > To: spr...@li...
> > Subject: [Springframework-developer] A few questions
> >
> >
> > Finally I've managed to get the whole thing working with Hibernate and
> > WebLogic.
> >
> > There are still a few newbie questions left:
> >
> > In applicationContext.xml from the Hibernate skeleton I've defined this
> > part:
> >
> > <bean id="exampleDataAccessObject"
> > class="example.ExampleDataAccessObject">
> > <property name="sessionFactory"><ref
> > bean="mySessionFactory"/></property>
> > <property name="exampleParam"><value>someValue</value></property>
> > </bean>
> >
> > 1.) When do I need the part defining (do I need it at all?)
> >
> > <bean id="exampleBusinessObject"
> > class="example.ExampleBusinessObject">
> > <property name="transactionManager"><ref
> > bean="myTransactionManager"/></property>
> > <property name="dataAccessObject"><ref
> > bean="exampleDataAccessObject"/></property>
> > <property
> > name="exampleParam"><value>someOtherValue</value></property>
> > </bean>
> >
> > 2.) In my DAO implementation I use HibernateTemplate. I assume that
> > those
> > methods
> > are transaction safe with only the first part
> > ("exampleDataAccessObject")
> > defined (?).
> >
> > 3.) Spring provides a "Controller" and a "MultiActionController". For
> > sure
> > there are lots
> > of architectural reasons for providing both. But wouldn't it be easier
> > just
> > to provide one
> > kind of controller ? E.g. in WebWork 1 you can make a class ActionAware,
> > SessionAware, etc.
> > which is very easy to understand (when to use what even without
> > documentation).
> >
> > Thanks again
> > Lars
> >
> >
> >
> > -------------------------------------------------------
> > This SF.net email is sponsored by: VM Ware
> > With VMware you can run multiple operating systems on a single machine.
> > WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
> > at the same time. Free trial click
> > here:http://www.vmware.com/wl/offer/358/0
> > _______________________________________________
> > Springframework-developer mailing list
> > Spr...@li...
> > https://lists.sourceforge.net/lists/listinfo/springframework-developer
> >
>
>
|
|
From: <jue...@we...> - 2003-08-26 15:29:34
|
ad 1)
A data access object is supposed to be concerned just with actual data =
access operations, it shouldn't care about transactions or being part of =
a larger unit-of-work. It will mainly offer methods like "loadProduct", =
"findProducts", "storeOrder", "deleteOrder". Invoked directly, those =
methods will simply execute non-transactional, i.e. without =
transactional guarantees.
A business object is supposed to implement business operations, i.e. the =
units-of-work that a web controller or remote client needs to trigger. =
This can be simple delegations to DAO methods, or more complex business =
logic like creating an Order object, filling it with customer data and =
line items, and invoking the DAO's storeOrder afterwards.
Such a business object will typically demarcate transactions, i.e. most =
of its methods will need to execute within a transaction. It can =
demarcate those transactions via TransactionTemplate, that's why it =
receives a transaction manager reference in the skeleton. An alternative =
is an AOP TransactionInterceptor that proxies the business object =
itself.
So a data access object should get a resource factory like a JDBC =
DataSource or a Hibernate SessionFactory but not a transaction manager. =
With a business object, it's exactly the other way round. A business =
object should talk to its DAOs through interfaces that are agnostic of =
the actual persistence strategy, to be able to switch e.g. from JDBC to =
Hibernate seamlessly.
Compare a business object with a Stateless Session Bean that serves as =
business facade, just much more lightweight. After all, these are just =
patterns: For simple use cases, you might keep all of this in one =
object, not separating between business and data access operations.
2)
A DAO that just uses HibernateTemplate does not guarantee transactional =
safety. You need to some kind of transaction demarcation for this. As =
outlined above, this typically happens in business facades that delegate =
to the DAOs. You could also choose to use a TransactionTemplate in your =
DAO, preferably in facade methods that delegate to the actual data =
access methods. Or proxy your DAO with an AOP TransactionInterceptor.
3)
There is indeed a strong difference between Controller and =
MultiActionController. Controller is intended for classes that implement =
one single request handling use case each, e.g. a =
ShowProductListController and a ShowProductDetailsController. =
Controller's sole method is "handleRequest(request,response").
MultiActionController on the other hand allows to implement multiple use =
cases in one class, via multiple request handling methods like =
"showProductList(request,response)" and =
"showProductDetails(request,response)". Which method gets invoked is =
decided via a respective MethodNameResolver strategy, e.g. according to =
a request parameter or an explicit mapping. This is convenient for =
multiple small use cases to avoid an excessive number of controller =
classes.
Note that Spring separates roles stricter than WebWork. In WebWork, an =
Action is controller, command/form, and model in one object: It gets =
instantiated, populated, executed, and passed to the view. This is not =
really clean, as a view doesn't need to see the controller methods or =
the original command properties: A view just needs the pure model that =
it should render.
A Spring Controller is just a controller in the sense that it determines =
the processing workflow, that's why it can be a reusable singleton. A =
Spring command object is just a holder of command properties, =
instantiated per request. A Spring model is a map of named attributes =
that are provided to views, which may include a form object and/or =
reference data. Such a model does not have to include anything that a =
view doesn't need to see.
In terms of convenience base classes, you can choose between:
- a pure controller that acts as dispatched replacement of a servlet;
- a command controller that instantiates a command object, populates it =
with request parameters, and decides how to proceed then;
- a form controller that works similar to a command controller but =
applies a form editing workflow with form view and submit view;
- a wizard form controller that applies a form workflow with multiple =
pages.
So if you're used to the WebWork or classic Servlet style, simply stay =
with Controller and its convenience subclasses like =
AbstractCommandController or SimpleFormController. On the other hand, =
people coming from Struts 1.1 might prefer MultiActionController as they =
know a similar concept: Struts' DispatchAction.
Juergen
-----Original Message-----
From: Lars Fischer [mailto:lar...@gm...]
Sent: Tuesday, August 26, 2003 12:00 PM
To: spr...@li...
Subject: [Springframework-developer] A few questions
Finally I've managed to get the whole thing working with Hibernate and
WebLogic.
There are still a few newbie questions left:
In applicationContext.xml from the Hibernate skeleton I've defined this
part:
<bean id=3D"exampleDataAccessObject" =
class=3D"example.ExampleDataAccessObject">
<property name=3D"sessionFactory"><ref =
bean=3D"mySessionFactory"/></property>
<property name=3D"exampleParam"><value>someValue</value></property>
</bean>
1.) When do I need the part defining (do I need it at all?)
<bean id=3D"exampleBusinessObject" =
class=3D"example.ExampleBusinessObject">
<property name=3D"transactionManager"><ref
bean=3D"myTransactionManager"/></property>
<property name=3D"dataAccessObject"><ref
bean=3D"exampleDataAccessObject"/></property>
<property =
name=3D"exampleParam"><value>someOtherValue</value></property>
</bean>
2.) In my DAO implementation I use HibernateTemplate. I assume that =
those
methods
are transaction safe with only the first part =
("exampleDataAccessObject")
defined (?).
3.) Spring provides a "Controller" and a "MultiActionController". For =
sure
there are lots=20
of architectural reasons for providing both. But wouldn't it be easier =
just
to provide one
kind of controller ? E.g. in WebWork 1 you can make a class ActionAware,
SessionAware, etc.=20
which is very easy to understand (when to use what even without
documentation).
Thanks again
Lars
-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click =
here:http://www.vmware.com/wl/offer/358/0
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: <jue...@we...> - 2003-08-26 14:42:43
|
Hi Martin,
PathMatcher works Ant-style, actually its code is even ripped from the =
Ant codebase ;-)
This means that "/journal/entry/*" will just map URLs in the same =
directory, i.e. "/journal/entry/myentry" but not =
"/journal/entry/mysubdir/myentry". You need to map "/journal/entry/**" =
to map any sub directory.
Juergen
-----Original Message-----
From: Martin Hald [mailto:mar...@ya...]
Sent: Monday, August 25, 2003 10:43 PM
To: Spring Developer
Subject: [Springframework-developer] Url Mapping Problem
Hi All,
Thanks to Jean-Pierre the for the alwaysUseFullPath suggestion. It did
solve my problem where I was mapping /foo/[a-z]* to a servlet, but I am
running into another quandary.
When I map longer URL's the code seems to break. I am trying to map
/journal/entry/2003-aug10/test/DSCN5023.jpg
to a web form. My project-servlet.xml looks like:
<bean id=3D"urlMapping" class=3D"...">
<property =
name=3D"alwaysUseFullPath"><value>true</value></property>
<property name=3D"mappings">
<props>
<prop key=3D"/journal/entry.html">JournalEntryForm</prop>
<prop key=3D"/journal/entry/*">JournalEntryForm</prop>
...
</props>
</property>
</bean>
and within my web.xml I use the following:
<servlet-mapping>
<servlet-name>project451</servlet-name>
<url-pattern>/journal/*</url-pattern>
</servlet-mapping>
I have tracked down the problem to PathMatcher.java where the =
conditional
"patIdxStart > patIdxEnd" seems to disallow my URL to be properly =
mapped.
As a test I just return true at that spot and everything is fine.
Am I doing something wrong or is there a problem with the path matcher?
Thanks,
Martin
---
PS Here's some debug output from within PathMatcher in that if =
statement:
looking for '/journal/entry/2003-aug10/test/DSCN5023.jpg' in
'/journal/entry/*'
pattern=3D/journal/entry/*
str=3D/journal/entry/2003-aug10/test/DSCN5023.jpg
patIdxStart=3D3
patIdxEnd=3D2
strIdxStart=3D3
strIdxEnd=3D4
returning false 3a
-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click =
here:http://www.vmware.com/wl/offer/358/0
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Darren D. <da...@da...> - 2003-08-26 13:17:56
|
On Monday 25 August 2003 09:02, j=FCrgen h=F6ller [werk3AT] wrote: > Unfortunately, the Servlet 2.3 spec leaves this unspecified. The Servlet > 2.4 spec clarifies that listeners have to be *initialized before* and > *destroyed after* any servlets. Tomcat and Resin already behave this way, > Orion does too since 2.0.2 after I've informed them about the Servlet 2.4 > clarification... > > For a solution with current WebLogic versions, I agree that using the > servlet initializers like ContextLoaderServlet and Log4jConfigServlet is > probably the best choice, as Thomas has recommended. Under the circumstances, I don't know whether you consider it important to= =20 remove the deprecation tags and comments from the ContextLoaderServlet et a= l=20 classes before the M1 release? If it's only in Servlet 2.4 that correct=20 behaviour can be guaranteed, then perhaps the comments should reflect this = to=20 avoid confusion for people using containers that implement the WebLogic=20 behaviour. Possible amendment attached.. Regards, =2D-=20 Darren Davison Public Key: http://www.davison.uk.net/key.jsp |
|
From: Lars F. <lar...@gm...> - 2003-08-26 10:00:20
|
Finally I've managed to get the whole thing working with Hibernate and
WebLogic.
There are still a few newbie questions left:
In applicationContext.xml from the Hibernate skeleton I've defined this
part:
<bean id="exampleDataAccessObject" class="example.ExampleDataAccessObject">
<property name="sessionFactory"><ref bean="mySessionFactory"/></property>
<property name="exampleParam"><value>someValue</value></property>
</bean>
1.) When do I need the part defining (do I need it at all?)
<bean id="exampleBusinessObject" class="example.ExampleBusinessObject">
<property name="transactionManager"><ref
bean="myTransactionManager"/></property>
<property name="dataAccessObject"><ref
bean="exampleDataAccessObject"/></property>
<property name="exampleParam"><value>someOtherValue</value></property>
</bean>
2.) In my DAO implementation I use HibernateTemplate. I assume that those
methods
are transaction safe with only the first part ("exampleDataAccessObject")
defined (?).
3.) Spring provides a "Controller" and a "MultiActionController". For sure
there are lots
of architectural reasons for providing both. But wouldn't it be easier just
to provide one
kind of controller ? E.g. in WebWork 1 you can make a class ActionAware,
SessionAware, etc.
which is very easy to understand (when to use what even without
documentation).
Thanks again
Lars
|
|
From: Lars F. <lar...@gm...> - 2003-08-26 10:00:03
|
Finally I've managed to get the whole thing working with Hibernate and
WebLogic.
There are still a few newbie questions left:
In applicationContext.xml from the Hibernate skeleton I've defined this
part:
<bean id="exampleDataAccessObject" class="example.ExampleDataAccessObject">
<property name="sessionFactory"><ref bean="mySessionFactory"/></property>
<property name="exampleParam"><value>someValue</value></property>
</bean>
1.) When do I need the part defining (do I need it at all?)
<bean id="exampleBusinessObject" class="example.ExampleBusinessObject">
<property name="transactionManager"><ref
bean="myTransactionManager"/></property>
<property name="dataAccessObject"><ref
bean="exampleDataAccessObject"/></property>
<property name="exampleParam"><value>someOtherValue</value></property>
</bean>
2.) In my DAO implementation I use HibernateTemplate. I assume that those
methods
are transaction safe with only the first part ("exampleDataAccessObject")
defined (?).
3.) Spring provides a "Controller" and a "MultiActionController". For sure
there are lots
of architectural reasons for providing both. But wouldn't it be easier just
to provide one
kind of controller ? E.g. in WebWork 1 you can make a class ActionAware,
SessionAware, etc.
which is very easy to understand (when to use what even without
documentation).
Thanks again
Lars
|
|
From: <jue...@we...> - 2003-08-26 08:26:21
|
SSBhZ3JlZSB0aGF0IGZvciBhbiBpbnRlZ3JhdGVkIGRhdGEgYWNjZXNzIHVuaXQgb2Ygd29yayBp dCBtYWtlcyBzZW5zZSB0byBhdm9pZCB0aGUgc2VwYXJhdGUgdHJhbnNhY3Rpb25hbCBjb25uZWN0 aW9uIGxvb2t1cCBhbmQgc2ltcGx5IGZlZWQgdGhlIGdpdmVuIGNvbm5lY3Rpb24gdG8gSmRiY1Rl bXBsYXRlLiBJJ2xsIHBhdGNoIFNpbmdsZUNvbm5lY3Rpb25EYXRhU291cmNlIGFjY29yZGluZ2x5 IHRvZGF5Lg0KIA0KTm90ZSB0aGF0IHRoZSBzZXR1cCB3aXRoIGEgZGVkaWNhdGVkIERhdGFTb3Vy Y2UgdGhhdCBJJ3ZlIHByb3Bvc2VkIGlzIGFwcHJvcHJpYXRlIHdoZW4gdGhlIEhpYmVybmF0ZSBh Y2Nlc3MgY29kZSBhbmQgdGhlIEpEQkMgYWNjZXNzIGNvZGUgYXJlIGluIGRpZmZlcmVudCBEQU9z LCBvciBpbiBkaWZmZXJlbnQgcHVibGljIG1ldGhvZHMgb2YgdGhlIHNhbWUgREFPLiBGb3IgcHJv cGVyIGxvb3NlIGNvdXBsaW5nLCBuZWl0aGVyIHNob3VsZCBoYXZlIHRvIGtub3cgYWJvdXQgdGhl IG90aGVyLiBFYWNoIHNpbXBseSBsb29rcyB1cCBpdHMgU2Vzc2lvbkZhY3Rvcnkgb3IgRGF0YVNv dXJjZSBhbmQgcGVyZm9ybXMgaXRzIHdvcmsuIFRoZSB0cmFuc2FjdGlvbiBtYW5hZ2VyIGNhcmVz IGZvciB0aGUgcHJvcGVyIGdsdWluZy4gQWZ0ZXIgYWxsLCBlYWNoIERBTyBtZXRob2QgY291bGQg YWxzbyBiZSB1c2VkIG9uIGl0cyBvd24gb3Igd2l0aGluIGEgZGlmZmVyZW50IHVuaXQgb2Ygd29y ay4NCiANClJlZ2FyZGluZyBKVEEgc3VwcG9ydCBpbiBPQzRKIGFuZCBXZWJTcGhlcmU6IEJvdGgg bGltaXRhdGlvbnMgd2VyZSBzcGVjaWZpY2FsbHkgZm9yIEpDQSBhZGFwdGVycy4gSSBzdGlsbCBh c3N1bWUgdGhhdCBib3RoIGRvIGxvY2FsIHRyYW5zYWN0aW9uIG9wdGltaXphdGlvbiBvbiBKREJD IERhdGFTb3VyY2VzLCBhcyB0aGlzIGlzIHRoZSBtb3N0IHByb21pbmVudCB1c2UgY2FzZSwgd2hp bGUgSkNBIGlzIGJhc2ljYWxseSBhbiBhZnRlcnRob3VnaHQgKGF0IGxlYXN0IGZvciB0aGVtKS4N CiANCklmIHlvdSdyZSBkb2luZyB0cmFuc2FjdGlvbnMgdGhhdCBzcGFuIG9uZSBzaW5nbGUgZGF0 YWJhc2UgYnV0IEhpYmVybmF0ZSBhbmQgSkRCQyBhY2Nlc3MgY29kZSwgSGliZXJuYXRlVHJhbnNh Y3Rpb25NYW5hZ2VyIGlzIGRlZmluaXRlbHkgdGhlIG1vcmUgbGlnaHR3ZWlnaHQgY2hvaWNlLiBU aGVyZSdzIG5vIGNvbnZpbmNpbmcgcmVhc29uIGZvciBjaG9vc2luZyBKdGFUcmFuc2FjdGlvbk1h bmFnZXIgaW4gc3VjaCBhIHNjZW5hcmlvLCBhcyB5b3UncmUgbm90IHVzaW5nIGFueSBwYXJ0aWN1 bGFyIEpUQSBmZWF0dXJlLg0KIA0KSnVlcmdlbg0KIA0KIA0KDQoJLS0tLS1VcnNwcsO8bmdsaWNo ZSBOYWNocmljaHQtLS0tLSANCglWb246IENvbGluIFNhbXBhbGVhbnUgW21haWx0bzpjb2xpbm1s MUBleGlzLmNvbV0gDQoJR2VzZW5kZXQ6IERpIDI2LjA4LjIwMDMgMDQ6MjkgDQoJQW46IGrDvHJn ZW4gaMO2bGxlciBbd2VyazNBVF0gDQoJQ2M6IHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlz dHMuc291cmNlZm9yZ2UubmV0IA0KCUJldHJlZmY6IFJlOiBbU3ByaW5nZnJhbWV3b3JrLWRldmVs b3Blcl0gV2h5IGRvZXMgU2luZ2xlQ29ubmVjdGlvbkRhdGFTb3VyY2UgYWx3YXlzIHNldCBhdXRv Q29tbWl0PXRydWU/DQoJDQoJDQoNCglJIGFtIGFueXRoaW5nIGJ1dCBhbiBleHBlcnQgaW4gdGhp cyBhcmVhIHVuZm9ydHVuYXRlbHksIGJ1dCBhZnRlcg0KCXRoaW5raW5nIGFib3V0IGl0LCBmcm9t IG15IHBvaW50IG9mIHZpZXcsIGl0J3Mgc29tZXdoYXQgb2YgYSB3YXNoIGFzIHRvDQoJd2hpY2gg YXBwcm9hY2ggaXMgJ2NsZWFuZXInLg0KCQ0KCVRoZXJlIGlzIGEgdmVyeSBzaW1wbGUgcmVxdWly ZW1lbnQgYW5kIHVzZSBjYXNlIGhlcmUuIFlvdSBhbHJlYWR5IGhhdmUgYQ0KCWNvbm5lY3Rpb24g b2JqZWN0LCBhbmQgYXQgdGhlIHNhbWUgbG9jYXRpb24gYXJlIGNyZWF0aW5nIGFub3RoZXIgb2Jq ZWN0DQoJd2hpY2ggdW5kZXIgaWRlYWwgY2lyY3Vtc3RhbmNlcyB1c2VzIHRoZSB2ZXJ5IHNhbWUg Y29ubmVjdGlvbiwgYW5kDQoJc2hvdWxkIGdldCBpdCB3aXRoIGFzIGxpdHRsZSB3b3JrIGFzIHBv c3NpYmxlLiAgU28gaW4geW91ciBpZGVhbCB1c2UNCglzY2VuYXJpbyBvZiB1c2luZyB0aGUgcmVh bCBkYXRhc291cmNlLCB5b3UgY2FuIHJlbHkgb24gdGhlIGZhY3QgdGhhdA0KCWFza2luZyB5b3Vy IGNvbnRhaW5lciAoc29td2hhdCBtb3JlIGluZGlyZWN0bHkpIGZvciBhIGNvbm5lY3Rpb24gZnJv bQ0KCXRoYXQgZGF0YXNvdXJjZSwgd2lsbCBnZXQgeW91IHRoZSBzYW1lIGNvbm5lY3Rpb24uIEJ1 dCBpdCdzIGFjdHVhbGx5IG91dA0KCW9mIHlvdXIgY29udHJvbCBhbmQgdGhlcmUncyBub3QgbmVj ZXNzYXJpbHkgbXVjaCB5b3UgY2FuIGRvIGFib3V0IGl0IGlmDQoJdGhlIGNvbnRhaW5lciBkb2Vz bid0IGRvIHRoaXMsIGluIHdoaWNoIGNhc2UgeW91ciBhcmUgbG9va2luZyBhdCBhDQoJcG90ZW50 aWFsbHkgbXVjaCBsZXNzIGVmZmljaWVudCByZXN1bHQuIEkndmUgZm91bmQgdHdvIHJlZmVyZW5j ZXMgdG8gdGhlDQoJcG9zc2libGl0eSB0aGF0IG1heWJlIE9DNEogYW5kIHRoZSBBZHZhbmNlZCBj b250YWluZXIgaW4gV2ViU3BoZXJlIGRvbid0DQoJZG8gdGhlIGxvY2FsIHRyYW5zYWN0aW9uIG9w dGltaXphdGlvbjoNCgkoc2VhcmNoIGZvciA2LjEyKQ0KCSAgaHR0cDovL290bi5vcmFjbGUuY29t L3RlY2gvamF2YS9vYzRqL2RvY19saWJyYXJ5LzkwMi9zZXJ2aWNlc2p1bjAyL2pjYS5odG0NCgkg DQoJaHR0cDovL3d3dy0zLmlibS5jb20vc29mdHdhcmUvd2Vic2VydmVycy9hcHBzZXJ2L2RvYy92 NDAvYWUvaW5mb2NlbnRlci93YXMvMDQwOTAxLmh0bWwNCgkNCglTbyBJIHRoaW5rIGluIHRoaXMg cGFydGljdWxhciBjYXNlIHRoZSB1c2Ugb2YgdGhlICdyZWFsJyBEYXRhU291cmNlIGp1c3QNCglj b21wbGljYXRlcyB0aGluZ3Mgd2l0aG91dCByZWFsbHkgYWRkaW5nIGFueSBhZHZ0YW50YWdlcy4g SXQncyBub3QNCgltYWtpbmcgdGVzdGluZyBlYXNpZXIsIGl0J3Mgbm90IHByb3ZpZGluZyBiZXR0 ZXIgc2VwYXJhdGlvbiBvZiBjb25jZXJucw0KCSh0aGUgY29udHJhcnksIEkgd291bGQgc2F5LCBh Y3R1YWxseSksIGV0Yy4NCgkNCglJbiBhbnkgY2FzZSwgdGhpcyBpcyBzb21ld2hhdCBvcnRob2dv bmFsIHRvIHRoZSBvcmlnaW5hbCBwb3N0IHdoaWNoIHdhcw0KCWFib3V0IHRoZSBuZWVkIHRvIGFs bG93IHRoZSBhdXRvQ29taXQgZmxhZyB0byBnbyBlaXRoZXIgd2F5IG9uIHRoZQ0KCWNvbm5lY3Rp b24gb2J0YWluZWQgZnJvbSBTaW5nbGVDb25uZWN0aW9uRGF0YVNvdXJjZSwgd2hldGhlciBvciBu b3QgaXQNCgl3YXMgZ2l2ZW4gYW4gZXhpc3RpbmcgY29ubmVjdGlvbiBvciBnZXRzIGl0IHRocm91 Z2ggRHJpdmVyTWFuYWdlci4NCglIb3BlZnVsbHkgd2UgYXJlIGJvdGggaW4gYWdyZWVtZW50IHRo YXQgdGhlIG9wdGlvbiBpcyBuZWVkZWQgaW4gdGhpcyBjbGFzcy4NCgkNCglSZWdhcmRzLA0KCUNv bGluDQoJDQoJasO8cmdlbiBow7ZsbGVyIFt3ZXJrM0FUXSB3cm90ZToNCgkNCgk+PlNpbmNlIGlu IHRoaXMgY2FzZSB0aGUgRGF0YVNvdXJjZSBpcyBub3QgYWxyZWFkeSBib3VuZCB0byB0aGUgdGhy ZWFkLCBpbiB0aGlzIGNhc2UsIG15IEpEQkMgY29kZSBlbmRzIHVwIGNhbGxpbmcgZ2V0Q29ubmVj dGlvbiBvbiB0aGUgcmVhbCBEYXRhU291cmNlIChmcm9tIEpOREkpLiBUaGVuIHRoYXQgZGF0YXNv dXJjZSBlbmRzIHVwIGFsbG9jYXRpbmcgYSBuZXcgY29ubmVjdGlvbiBmcm9tIGl0cyBwb29sLCB3 aGljaCBpcyByZXR1cm5lZCB0byBtZS4gVGhlcmUgaXMgbm8gaXNzdWUgaW4gdGVybXMgb2Ygd29y a2luZyB0b2dldGhlciB3aXRoIHRoZSBleGlzdGluZyBjb25uZWN0aW9uLCBKVEEgdGFrZXMgY2Fy ZSBvZiB0aGF0LCBidXQgdGhlIHdob2xlIHByb2Nlc3MgaXMgYSBsb3QgbW9yZSBoZWF2eXdlaWdo dCBhbmQgdGFrZXMgbW9yZSByZXNvdXJjZXMgKHR3byBwb29sZWQgY29ubmVjdGlvbnMgaW5zdGVh ZCBvZiBvbmUpLCBwbHVzIHRoZSBjb29yZGluYXRpb24gYW1vbmcgdGhlbS4NCgk+PiAgIA0KCT4+ DQoJPg0KCT5UbyB0aGUgYmVzdCBvZiBteSBrbm93bGVkZ2UsIGFueSBkZWNlbnQgSlRBIGltcGxl bWVudGF0aW9uIHdpbGwgcmV0dXJuIHRoZSBzYW1lIENvbm5lY3Rpb24gaW5zdGFuY2UgaWYgYXNr ZWQgZm9yIGEgQ29ubmVjdGlvbiBmb3IgdGhlIHNhbWUgRGF0YVNvdXJjZSBhZ2FpbiB3aXRoaW4g YW4gYWN0aXZlIHRyYW5zYWN0aW9uLiBUaGlzIGlzIGV2ZW4gcmVjb21tZW5kZWQgYnkgdGhlIEpU QSBzcGVjLCB1bmRlciB0aGUgbmFtZSAibG9jYWwgdHJhbnNhY3Rpb24gb3B0aW1pemF0aW9uIiBJ SVJDLiBKVEEgdHJhbnNhY3Rpb24gbWFuYWdlcnMgd2lsbCB0eXBpY2FsbHkgbm90IHBlcmZvcm0g MlBDIGZvciBzdWNoIHNpbmdsZSBEYXRhU291cmNlIHRyYW5zYWN0aW9ucyBidXQganVzdCBmb3Ig YWN0dWFsIGRpc3RyaWJ1dGVkIG9uZXMuIEkgY29uc2lkZXIgaXQgc2FmZSB0byBhc3N1bWUgdGhh dCBhbGwgbWFqb3IgY29udGFpbmVycyBpbXBsZW1lbnQgaXQgdGhhdCB3YXkuDQoJPg0KCT5KdWVy Z2VuDQoJPg0KCT4NCgk+asO8cmdlbiBow7ZsbGVyIFt3ZXJrM0FUXSB3cm90ZToNCgk+DQoJPiAN Cgk+DQoJPj5Db2xpbiwNCgk+Pg0KCT4+WW91IG9idmlvdXNseSB3YW50IHRvIHBlcmZvcm0gcGxh aW4gSkRCQyBhY2Nlc3Mgd2l0aGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uIGFzIHRoZSBIaWJlcm5h dGUgYWNjZXNzLiBUaGlzIGNhbiBiZSBhY2hpZXZlZCBlYXNpbHkgdmlhIEhpYmVybmF0ZVRyYW5z YWN0aW9uTWFuYWdlciBvciBKdGFUcmFuc2FjdGlvbk1hbmFnZXIsIHdpdGhvdXQgYW55IHNwZWNp ZmljIGdsdWluZy4NCgk+Pg0KCT4+SWYgeW91IGRlZmluZSBhIHJlc3BlY3RpdmUgSkRCQyBEYXRh U291cmNlIGluIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LCBwb2ludGluZyB0byB0aGUgc2FtZSBv bmUgdGhhdCBIaWJlcm5hdGUgdXNlcyAoYmUgaXQgYSBsb2NhbCBvbmUgc3BlY2lmaWVkIG9uIExv Y2FsU2Vzc2lvbkZhY3RvcnlCZWFuIG9yIGEgc2hhcmVkIEpOREkgb25lKSwgeW91IGNhbiBtYWtl IEhpYmVybmF0ZVRyYW5zYWN0aW9uTWFuYWdlciBleHBvcnQgaXRzIHRyYW5zYWN0aW9ucyBmb3Ig dGhpcyBwYXJ0aWN1bGFyIERhdGFTb3VyY2UgYnkgcGFzc2luZyB0aGUgRGF0YVNvdXJjZSBhcyBi ZWFuIHJlZmVyZW5jZSBpbnRvIGl0cyAiZGF0YVNvdXJjZSIgcHJvcGVydHkuIEhpYmVybmF0ZVRy YW5zYWN0aW9uTWFuYWdlciB3aWxsIHNpbXBseSB0YWtlIHRoZSB2ZXJ5IEpEQkMgQ29ubmVjdGlv biB0aGF0IHRoZSBIaWJlcm5hdGUgU2Vzc2lvbiB1c2VzIGFuZCBiaW5kIGl0IHRvIHRoZSB0aHJl YWQgdmlhIERhdGFTb3VyY2VVdGlscyBmb3IgcGxhaW4gSkRCQyBhY2Nlc3Mgb24gdGhhdCBEYXRh U291cmNlLiBUaGUgbGF0dGVyIGRvZXMgbm90IGhhdmUgdG8gYmUgYXdhcmUgdGhhdCBpdCBpcyB3 b3JraW5nIHdpdGggYSBIaWJlcm5hdGUtcHJvdmlkZWQgQ29ubmVjdGlvbiENCgk+Pg0KCT4+V2l0 aCBKdGFUcmFuc2FjdGlvbk1hbmFnZXIsIGl0J3Mgc2ltaWxhcjogRGVmaW5lIHRoZSBzYW1lIEpO REkgRGF0YVNvdXJjZSB0aGF0IHRoZSBIaWJlcm5hdGUgU2Vzc2lvbkZhY3RvcnkgdXNlcyBmb3Ig dGhlIEpkYmNUZW1wbGF0ZSwgYW5kIEpUQSB3aWxsIGNhcmUgZm9yIHJldHVybmluZyB0aGUgc2Ft ZSBDb25uZWN0aW9uIHRvIGJvdGggdGhlIEhpYmVybmF0ZSBTZXNzaW9uIGFuZCB0aGUgSkRCQyBh Y2Nlc3MgY29kZSBpZiBpbiBhbiBhY3RpdmUgdHJhbnNhY3Rpb24uDQoJPj4NCgk+PlNvIGluIGFu eSBjYXNlLCB0aGlzICJzYW1lIERhdGFTb3VyY2UiIGFwcHJvYWNoIGlzIGFzIGVmZmljaWVudCBh cyBwYXNzaW5nIHRoZSBIaWJlcm5hdGUgU2Vzc2lvbidzIEpEQkMgQ29ubmVjdGlvbiBtYW51YWxs eSB0byBhIEpkYmNUZW1wbGF0ZSBpbnN0YW5jZSwgYXMgaXQgcmV1c2VzIHRoZSBzYW1lIENvbm5l Y3Rpb24gZm9yIGJvdGggdGhlIEhpYmVybmF0ZSBTZXNzaW9uIGFuZCB0aGUgSmRiY1RlbXBsYXRl IHdpdGhpbiBhIHRyYW5zYWN0aW9uLiBJIHN0cm9uZ2x5IHJlY29tbWVuZCBzdWNoIGEgc29sdXRp b24gb3ZlciBtYW51YWwgZ2x1aW5nLg0KCT4+DQoJPj5KdWVyZ2VuDQoJPj4NCgk+Pg0KCT4+DQoJ Pj4gICAgICAtLS0tLVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tDQoJPj4gICAgICBWb246 IENvbGluIFNhbXBhbGVhbnUgW21haWx0bzpjb2xpbm1sMUBleGlzLmNvbV0NCgk+PiAgICAgIEdl c2VuZGV0OiBNbyAyNS4wOC4yMDAzIDIzOjE0DQoJPj4gICAgICBBbjogasO8cmdlbiBow7ZsbGVy IFt3ZXJrM0FUXQ0KCT4+ICAgICAgQ2M6IHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMu c291cmNlZm9yZ2UubmV0DQoJPj4gICAgICBCZXRyZWZmOiBSZTogW1NwcmluZ2ZyYW1ld29yay1k ZXZlbG9wZXJdIFdoeSBkb2VzIFNpbmdsZUNvbm5lY3Rpb25EYXRhU291cmNlIGFsd2F5cyBzZXQg YXV0b0NvbW1pdD10cnVlPw0KCT4+ICAgIA0KCT4+ICAgIA0KCT4+DQoJPj4gICAgICBXL3JlZ2Fy ZHMgdG8gYXV0byBjb21taXQgaW4gdGhlIGRlZmF1bHQgY2FzZSAod2hlbiB0aGUgY2xhc3MgZ2V0 cyB0aGUNCgk+PiAgICAgIGNvbm5lY3Rpb24gaXRzZWxmKSwgSSB3b3VsZCBzYXksIGV4YWN0bHks IHRoZSBKREJDIHNwZWNzIHNwZWNpZmljYWxseQ0KCT4+ICAgICAgc2F5IHRoZSBnZXRDb25uZWN0 aW9uIGNhbGxlZCBvbiB0aGUgZGF0YXNvdXJjZSB3aWxsIHJldHVybiBhIGNvbm5lY3Rpb24NCgk+ PiAgICAgIHdpdGggYXV0b0NvbW1pdCBvbiBieSBkZWZhdWx0LiBTbyB3aHkgaXMgU2luZ2xlQ29u bmVjdGlvbkRhdGFTb3VyY2UgdGhlbg0KCT4+ICAgICAgZ29pbmcgYW5kIHNldHRpbmcgaXQgb24g YXMgd2VsbC4gR2l2ZW4gdGhhdCBTaW5nbGVDb25uZWN0aW9uRGF0YXNvdXJjZQ0KCT4+ICAgICAg ZG9lc24ndCBoYXZlIGFueSBjbHVlIGFib3V0IHRoZSBpbnRlbmRlZCB1c2Ugb2YgdGhlIGNvbm5l Y3Rpb24sIHRoZSBtb3N0DQoJPj4gICAgICBjb3JyZWN0IGJlaGF2aW91ciBpcyBwcm9iYWJseSB0 byBub3QgaGF2ZSBpdCBjYWxsIHNldEF1dG9Db21taXQgd2l0aA0KCT4+ICAgICAgZWl0aGVyIHN0 YXRlLCBieSBkZWZhdWx0LCB3aGljaCB3b3VsZCBtaXJyb3Igbm9ybWFsDQoJPj4gICAgICBkYXRh c291cmNlL2Nvbm5lY3Rpb24gdXNhZ2UsIGFuZCBhbHNvIGFsbG93IGEgbWVjaGFuaXNtIHRvIHNw ZWNpZnkgdGhhdA0KCT4+ICAgICAgaXQgc2hvdWxkIGJlIGNhbGxlZCBvbmUgd2F5IG9yIGFub3Ro ZXIuIEhvd2V2ZXIsIHRoaXMgbWF5IGJlIG1vcmUgd29yaw0KCT4+ICAgICAgdGhhbiBpcyB3b3J0 aCBpdCwgYW5kIGEgZGVmYXVsdCBjYWxsIHdpdGggdGhlIG9wdGlvbiB0byBvbiwgYWxvbmcgd2l0 aCBhDQoJPj4gICAgICBtZWNoYW5pc20gKGFub3RoZXIgY29uc3RydWN0b3Igd2l0aCBhIHZhbHVl IGZvciB0aGUgY2FsbCkgdG8gb3ZlcnJpZGUNCgk+PiAgICAgIGl0LCB3b3VsZCBiZSBmaW5lLiBT byB0byBiZSBjbGVhciwgSSBkbyB0aGluayBldmVuIHdoZW4NCgk+PiAgICAgIFNpbmdsZUNvbm5l Y3Rpb25EYXRhU291cmNlIGdldHMgdGhlIGNvbm5lY3Rpb24gdGhlcmUgaXMgYSBuZWVkIGZvciBh bg0KCT4+ICAgICAgb3ZlcnJpZGUuDQoJPj4gICAgDQoJPj4gICAgICBBcyBmb3IgbXkgdXNlIGNh c2UsIEkgZG9uJ3QgdGhpbmsgSSB3YXMgY2xlYXIgZW5vdWdoLiAgSSBoYXZlIHNvbWUgY29kZQ0K CT4+ICAgICAgaW4gYSBIaWJlcm5hdGUgc3BlY2lmaWMgREFPL01hcHBlciBvYmplY3QuIEkgYW0g YWxyZWFkeSBleGVjdXRpbmcgaW5zaWRlDQoJPj4gICAgICBhIHRyYW5zYWN0aW9uIGludHJvZHVj ZWQgdmlhIFNwcmluZydzIEFPUCBpbnRlcmNlcHRvci4gU28gSSBkbyBoYXZlIGENCgk+PiAgICAg IFNlc3Npb25GYWN0b3J5LCBldGMuIGJvdW5kIHRvIHRoZSB0aHJlYWQuIE5vdyBpbnNpZGUgYSBt ZXRob2QgaW4gdGhpcw0KCT4+ICAgICAgbWFwcGVyIEkgbmVlZCB0byBkbyBhbiBvcGVyYXRpb24g b24gYSBCTE9CL0NMT0IsIHdoZXJlIHRoZXJlIGFyZSBhDQoJPj4gICAgICBudW1iZXIgb2YgZGIg cGxhdGZvcm0gc3BlY2lmaWMgaXNzdWVzLCBhbmQgSGliZXJuYXRlJ3Mgc3VwcG9ydCBvZg0KCT4+ ICAgICAgQkxPQnMvQ0xPQnMgaXMgbm90IGdvb2QgZW5vdWdoLiBHaXZlbiB0aGF0IEkgaGF2ZSBh IEhpYmVybmF0ZSBTZXNzaW9uDQoJPj4gICAgICB3aGljaCBhbHJlYWR5IGhhcyBhIGNvbm5lY3Rp b24gYXZhaWxhYmxlLCB1c2luZyBpdCBpcyB0aGUgYmVzdCBtZWNoYW5pc20NCgk+PiAgICAgIChh cyBvcHBvc2VkIHRvIHRyeWluZyB0byBnZXQgYSByZWFsIERhdGFTb3VyY2UgaW4gU3ByaW5nJ3Mg Y29udGV4dCB0bw0KCT4+ICAgICAgdXNlKS4gTm93IEkgYW0gdXNpbmcgSkRCQ1RlbXBsYXRlIGFu ZCBKREJDSGVscGVyIGFzIGNvbnZlbmllbmNlIGNsYXNzZXMsDQoJPj4gICAgICB0byB3cmFwIEpE QkMgZXhjZXB0aW9ucywgYW5kIGZvciB0aGUgbWV0aG9kcyB0aGV5IHByb3ZpZGUuIE5vdyBJIGNv dWxkIGNhbGwNCgk+PiAgICAgICAgRGF0YVNvdXJjZVV0aWxzLmdldFRocmVhZE9iamVjdE1hbmFn ZXIoKS5iaW5kVGhyZWFkT2JqZWN0KC4uLikNCgk+PiAgICAgIHRvIGJpbmQgdGhlIFNpbmdsZUNv bm5lY3Rpb25EYXRhc291cmNlIHRvIHRoZSB0aHJlYWQsIGJlZm9yZSB1c2luZyB0aGUNCgk+PiAg ICAgIEpEQkNUZW1wbGF0ZSwgYnV0IEknbSBub3Qgc3VyZSB0aGF0J3MgYnV5aW5nIG1lIG11Y2gg b3ZlciB0aGUgY2FzZSBvZg0KCT4+ICAgICAgbm90IGJpbmRpbmcgaXQuIEluIGVpdGhlciBjYXNl LCBKREJDVGVtcGxhdGUgaXMgc2ltcGx5IGdvaW5nIHRvIGVuZCB1cA0KCT4+ICAgICAgZ2V0dGlu ZyB0aGUgc2FtZSBDb25uZWN0aW9uLiBCZWNhdXNlIEkgYW0gdXNpbmcgdGhlDQoJPj4gICAgICBT aW5nbGVDb25uZWN0aW9uRGF0YXNvdXJjZSwgaXQncyBub3QgbGlrZSBpbiB0aGlzIGNhc2UgdGhl cmUgaXMgYSByZWFsDQoJPj4gICAgICBEYXRhU291cmNlIG9iamVjdCwgYW5kIHlvdSBvbmx5IHdh bnQgdG8gY2FsbCBnZXRDb25uZWN0aW9uIG9uIGl0IG9uY2UuLi4NCgk+PiAgICANCgk+PiAgICAg IEhvcGVmdWxseSBteSBleGFwbGFuYXRpb24gaXMgY2xlYXIgbm93Li4uDQoJPj4gICAgDQoJPj4g ICAgDQoJPj4gICAgICBqw7xyZ2VuIGjDtmxsZXIgW3dlcmszQVRdIHdyb3RlOg0KCT4+ICAgIA0K CT4+ICAgICAgPkkgYWdyZWUgdGhhdCBpbiBjYXNlIG9mIGFuIGV4aXN0aW5nIGNvbm5lY3Rpb24s IFNpbmdsZUNvbm5lY3Rpb25EYXRhU291cmNlIHNob3VsZCBub3Qgb3ZlcnJpZGUgdGhlIGNvbW1p dCBtb2RlLiBGb3IgdGhlIGRlZmF1bHQgY2FzZSwgSSBjb25zaWRlciBhdXRvIGNvbW1pdCBtb2Rl IGFwcHJvcHJpYXRlIHRob3VnaC4gQW55IEoyRUUgRGF0YVNvdXJjZSB3aWxsIHJldHVybiBhbiBh dXRvIGNvbW1pdCBjb25uZWN0aW9uIG91dHNpZGUgYSB0cmFuc2FjdGlvbiwgc28gd2h5IHNob3Vs ZG4ndCBTaW5nbGVDb25uZWN0aW9uRGF0YVNvdXJjZSBkbyB0b28/DQoJPj4gICAgICA+DQoJPj4g ICAgICA+QlRXLCB3aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGRvIHNlZW1zIGEgYml0IGF3a3dhcmQu IFdoeSBtYW51YWxseSBmZWVkIHRoZSBDb25uZWN0aW9uIG9mIGEgSGliZXJuYXRlIFNlc3Npb24g dmlhIFNpbmdsZUNvbm5lY3Rpb25EYXRhU291cmNlIHRvIEpkYmNUZW1wbGF0ZT8gSmRiY1RlbXBs YXRlIGlzIHN1cHBvc2VkIHRvIGJlIGEgdGhyZWFkc2FmZSwgcmV1c2FibGUgb2JqZWN0LCBmZXRj aGluZyBjb25uZWN0aW9ucyBvbiBkZW1hbmQuIFdvdWxkbid0IGl0IGJlIGVhc2llciB0byB1c2Ug U3ByaW5nJ3MgdGhyZWFkLWJpbmRpbmcgbWVjaGFuaXNtIChEYXRhU291cmNlVXRpbHMuZ2V0VGhy ZWFkT2JqZWN0TWFuYWdlcikgdG8gbWFrZSBKZGJjVGVtcGxhdGUgdXNlIGEgc3BlY2lmaWMgY29u bmVjdGlvbiwgYmUgaXQgaW1wbGljaXRseSB2aWEgSGliZXJuYXRlVHJhbnNhY3Rpb25NYW5hZ2Vy IG9yIGV4cGxpY2l0bHkgaW4gc29tZSBjdXN0b20gd2F5Pw0KCT4+ICAgICAgPg0KCT4+ICAgICAg Pkp1ZXJnZW4NCgk+PiAgICAgID4NCgk+PiAgICAgID4NCgk+PiAgICAgID4NCgk+PiAgICAgID4g ICAgICAgLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQtLS0tLQ0KCT4+ICAgICAgPiAgICAg ICBWb246IENvbGluIFNhbXBhbGVhbnUgW21haWx0bzpjb2xpbm1sMUBleGlzLmNvbV0NCgk+PiAg ICAgID4gICAgICAgR2VzZW5kZXQ6IE1vIDI1LjA4LjIwMDMgMjA6MDINCgk+PiAgICAgID4gICAg ICAgQW46IHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJ Pj4gICAgICA+ICAgICAgIENjOg0KCT4+ICAgICAgPiAgICAgICBCZXRyZWZmOiBbU3ByaW5nZnJh bWV3b3JrLWRldmVsb3Blcl0gV2h5IGRvZXMgU2luZ2xlQ29ubmVjdGlvbkRhdGFTb3VyY2UgYWx3 YXlzIHNldCBhdXRvQ29tbWl0PXRydWU/DQoJPj4gICAgICA+ICAgIA0KCT4+ICAgICAgPiAgICAN Cgk+PiAgICAgID4NCgk+PiAgICAgID4gICAgICAgSSB3YW50IHRvIHVzZSBTaW5nbGVDb25uZWN0 aW9uRGF0YVNvdXJjZSB3aXRoIEhpYmVybmF0ZSwgc28gSSBjYW4gd3JhcCBhDQoJPj4gICAgICA+ ICAgICAgIGNvbm5lY3Rpb24gSSBnZXQgZnJvbSBhIEhpYmVybmF0ZSBTZXNzaW9uLCBhbmQgZmVl ZCBpdCBhcyBhIERhdGFTb3VyY2UNCgk+PiAgICAgID4gICAgICAgdG8gSkRCQ1RlbXBsYXRlL0pE QkNIZWxwZXIuDQoJPj4gICAgICA+ICAgIA0KCT4+ICAgICAgPiAgICAgICBIb3dldmVyLCByaWdo dCBub3cgSSd2ZSBoYWQgdG8gbWFrZSBteSBvd24gdmFyaWFudCBzaW5jZSB0aGUgY3VycmVudA0K CT4+ICAgICAgPiAgICAgICBjb2RlIGFsd2F5cyBjYWxscw0KCT4+ICAgICAgPiAgICAgICAgIHNv dXJjZS5zZXRBdXRvQ29tbWl0KHRydWUpOw0KCT4+ICAgICAgPiAgICAgICBpbiB0aGUgaW5pdCgp IG1ldGhvZC4gIFRoaXMgc2VlbXMgdmVyeSBhcmJpdHJhcnkgdG8gbWUuIEF0IGxlYXN0IGluIHRo ZQ0KCT4+ICAgICAgPiAgICAgICBjYXNlIHdoZW4gdGhlIGNsYXNzIGlzIGdpdmVuIGFuIGV4aXN0 aW5nIGNvbm5lY3Rpb24sIGl0IHNob3VsZCBqdXN0DQoJPj4gICAgICA+ICAgICAgIGFzc3VtZSB0 aGUgY29tbWl0IG9wdGlvbiBoYXMgYmVlbiBzZXQgYXBwcm9wcmlhdGVseSBvbiB0aGUgY29ubmVj dGlvbi4NCgk+PiAgICAgID4gICAgDQoJPj4gICAgICA+ICAgICAgIEV2ZW4gaW4gdGhlIGNhc2Ug d2hlbiB0aGUgY2xhc3MgaXMgb3BlbmluZyB0aGUgY29ubmVjdGlvbiBpdHNlbGYgZnJvbSBhbg0K CT4+ICAgICAgPiAgICAgICBleGlzdGluZyBEYXRhU291cmNlLCB0aGVyZSBuZWVkcyB0byBiZSBh biBvcHRpb24gdG8gc2V0IGF1dG9Db21taXQNCgk+PiAgICAgID4gICAgICAgZWl0aGVyIHdheS4N Cgk+PiAgICAgID4gICAgDQoJPj4gICAgICA+ICAgICAgIFJlZ2FyZHMsDQoJPj4gICANCgk+Pg0K CQ0KCQ0KCQ0KCQ0KDQo= |
|
From: <jue...@we...> - 2003-08-26 08:09:17
|
RG9uJ3Qgd29ycnkgYWJvdXQgdGhlIG1lc3NhZ2Ugb24gdW5kZXBsb3kuIENvbnRleHQgc2h1dGRv d24gaGFzIGJlZW4gaW50cm9kdWNlZCBhZnRlciAwLjkuMSwgY2FsbGluZyB0aGUgZGVzdHJveSBt ZXRob2RzIG9mIGJlYW5zIGlmIGFueS4gVGhvbWFzIHNlZW1zIHRvIGhhdmUgdGFrZW4gdGhlIENv bnRleHRMb2FkZXJTZXJ2bGV0IGZyb20gdGhlIHBvc3QtMC45LjEgdHJlZS4gMS4wIE0xIHNob3Vs ZCBpbmNsdWRlIGV2ZXJ5dGhpbmcgaW4gY29ycmVjdCBvcmcuc3ByaW5nZnJhbWV3b3JrIHZlcnNp b25zLg0KIA0KSnVlcmdlbg0KIA0KIA0KDQoJLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQt LS0tLSANCglWb246IExhcnMgRmlzY2hlciBbbWFpbHRvOmxhcnMuZmlzY2hlckBnbXhwcm8ubmV0 XSANCglHZXNlbmRldDogRGkgMjYuMDguMjAwMyAwOTozOCANCglBbjogdHJpc2JlcmdAdHJpZGIu Y29tIA0KCUNjOiBqw7xyZ2VuIGjDtmxsZXIgW3dlcmszQVRdOyBzcHJpbmdmcmFtZXdvcmstZGV2 ZWxvcGVyQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCANCglCZXRyZWZmOiBSRTogW1NwcmluZ2ZyYW1l d29yay1kZXZlbG9wZXJdIEV4YW1wbGUgY2xhc3NlcyBuZWVkZWQNCgkNCgkNCg0KCVRob21hcywN CgkNCgl0aGFua3MgYSBsb3QsIGRlcGxveW1lbnQgd29ya3Mgbm93Lg0KCQ0KCVRoZXJlIGlzIG9u ZSBlcnJvciBtZXNzYWdlIHdoZW4gdW5kZXBsb3lpbmcgYnV0IEkgaG9wZSBhbGxlIHRoZXNlDQoJ bWlzc2luZyBjbGFzc2VzIGFyZSBpbmNsdWRlZCBpbiB0aGUgbmV4dCByZWxlYXNlLg0KCQ0KCVJl Z2FyZHMNCglMYXJzDQoJDQoJUC5TLjogRXJyb3Igd2hlbiB1bmRlcGxveWluZyAoZG8gbm90IGZv cmdldCBpbiAxLjApOg0KCQ0KCUZhaWxlZCB3aGlsZSBkZXN0cm95aW5nIHNlcnZsZXQ6IGNvbnRl eHRMb2FkZXIuDQoJamF2YS5sYW5nLk5vU3VjaE1ldGhvZEVycm9yOg0KCWNvbS5pbnRlcmZhY2Uy MS53ZWIuY29udGV4dC5Db250ZXh0TG9hZGVyLmNsb3NlQ29udGV4dChMamF2YXgvc2VydmxldC9T ZXJ2bGV0Q29udGV4dDspVg0KCQ0KCT4gSnVlcmdlbiwNCgk+DQoJPiBUaGUgcHJvYmxlbSBpcyB0 aGF0ICdjb20uaW50ZXJmYWNlMjEud2ViLmNvbnRleHQuQ29udGV4dExvYWRlclNlcnZsZXQnDQoJ PiBjYW4ndA0KCT4gYmUgZm91bmQgaW4gdGhlIGNsYXNzcGF0aCAtIGl0IGlzIG5vdCBpbiB0aGUg c3ByaW5nLWZ1bGwtMC45LmphciBmcm9tIHRoZQ0KCT4gZGlzdHJpYnV0aW9uLiAgRGlkIHdlIHJl bW92ZSB0aGlzIGZpbGUgYW5kIGxhdGVyIGFkZCBpdCBiYWNrIGluPw0KCT4NCgk+IExhcnMgLSBJ IGhhdmUgYXR0YWNoZWQgYSBqYXIgZmlsZSB0aGF0IGNvbnRhaW5zIHRoaXMgbWlzc2luZyBjbGFz cyAtIGFkZA0KCT4gdGhhdA0KCT4gdG8geW91ciBsaWIgZGlyZWN0b3J5LiAgQWxzbywgcmVtb3Zl IHRoZSA8bGlzdGVuZXI+IGVudHJ5IGluIHdlYi54bWwuDQoJPg0KCT4gVGhvbWFzDQoJPg0KCT4g PiBMYXJzLA0KCT4gPg0KCT4gPiBZb3UgbWVhbiB0aGF0DQoJPiA+DQoJPiA+ICAgPHNlcnZsZXQ+ DQoJPiA+ICAgICA8c2VydmxldC1uYW1lPmNvbnRleHRMb2FkZXI8L3NlcnZsZXQtbmFtZT4NCgk+ ID4gICANCgk+ID4NCgk+IDxzZXJ2bGV0LWNsYXNzPmNvbS5pbnRlcmZhY2UyMS53ZWIuY29udGV4 dC5Db250ZXh0TG9hZGVyU2VydmxldDwvc2VydmxldC0NCgk+IGNsYXNzPg0KCT4gPiAgICAgPGxv YWQtb24tc3RhcnR1cD4xPC9sb2FkLW9uLXN0YXJ0dXA+DQoJPiA+ICAgPC9zZXJ2bGV0Pg0KCT4g Pg0KCT4gPiAgIDxzZXJ2bGV0Pg0KCT4gPiAgICAgPHNlcnZsZXQtbmFtZT5leGFtcGxlPC9zZXJ2 bGV0LW5hbWU+DQoJPiA+ICAgDQoJPiA+DQoJPg0KCTxzZXJ2bGV0LWNsYXNzPmNvbS5pbnRlcmZh Y2UyMS53ZWIuc2VydmxldC5EaXNwYXRjaGVyU2VydmxldDwvc2VydmxldC1jbGFzcz4NCgk+ID4g ICAgIDxsb2FkLW9uLXN0YXJ0dXA+MjwvbG9hZC1vbi1zdGFydHVwPg0KCT4gPiAgIDwvc2Vydmxl dD4NCgk+ID4NCgk+ID4gc3RpbGwgbG9hZHMgdGhlIERpc3BhdGNoZXJTZXJ2bGV0IGJlZm9yZSB0 aGUgQ29udGV4dExvYWRlclNlcnZsZXQ/DQoJPiBJZ25vcmluZw0KCT4gPiB0aGUgbG9hZC1vbi1z dGFydHVwIHZhbHVlcyB3b3VsZCBiZSBhIG1ham9yIGJ1ZyBpbiBXZWJMb2dpYydzIHdlYg0KCT4g Y29udGFpbmVyLg0KCT4gPiBBcmUgeW91ICpyZWFsbHkqIHN1cmUgdGhhdCBhIHdlYi54bWwgd2l0 aCBlbnRyaWVzIGxpa2UgdGhlIGFib3ZlIGNhdXNlcw0KCT4gd3JvbmcNCgk+ID4gaW5pdGlhbGl6 YXRpb24gb3JkZXI/IFBsZWFzZSByZWNoZWNrIHRoYXQgdGhvcm91Z2hseSENCgk+ID4NCgk+ID4g SXQncyBiYWQgZW5vdWdoIHRoYXQgV2ViTG9naWMgaW52b2tlcyB0aGUgbGlzdGVuZXJzIGF0IHRo ZSB3cm9uZyB0aW1lLA0KCT4gYnV0DQoJPiA+IHVuZm9ydHVuYXRlbHkgdGhhdCBpcyBub3QgYWN0 dWFsbHkgY29uZmxpY3Rpbmcgd2l0aCB0aGUgY3VycmVudCBzcGVjLiBJDQoJPiBjYW4ndA0KCT4g PiBiZWxpZXZlIHRoYXQgaXQgaWdub3JlcyBzZXJ2bGV0IGxvYWQtb24tc3RhcnR1cCB2YWx1ZXMg dGhvdWdoIC0gaG93IGRpZA0KCT4gaXQNCgk+ID4gZ2V0IGl0cyBKMkVFIDEuMyBjZXJ0aWZpY2F0 aW9uIHRoZW4/IEl0IHNlZW1zIHRvIHdvcmsgb24gVGhvbWFzJw0KCT4gPiBpbnN0YWxsYXRpb24s IHNvIHRoZXJlIHNob3VsZCBiZSBhIHdheSB0byBtYWtlIGl0IHdvcmsgb24geW91cnMuDQoJPiA+ DQoJPiA+IEV2ZW4gaW4gdGhlIGV4dHJlbWUgY2FzZSwgYSBzb2x1dGlvbiBjYW4gYmUgZm91bmQu IFlvdSBjb3VsZCBmb3IgZXhhbXBsZQ0KCT4ganVzdA0KCT4gPiB1c2UgYSBzZXJ2bGV0LXNwZWNp ZmljIGNvbnRleHQgYW5kIG5vIHJvb3QgY29udGV4dCwgYnkgc2ltcGx5IG9taXR0aW5nDQoJPiB0 aGUNCgk+ID4gY29udGV4dCBsb2FkZXIgZGVmaW5pdGlvbi4gWW91IGNvdWxkIHN1YmNsYXNzIERp c3BhdGNoZXJTZXJ2bGV0IHRvDQoJPiBwZXJmb3JtDQoJPiA+IGluaXRpYWxpemF0aW9uIG9mIHRo ZSByb290IGNvbnRleHQgYmVmb3JlIGNvbnRpbnVpbmcgd2l0aCBpdHMgb3duLiBCdXQNCgk+IEkn bQ0KCT4gPiBwcmV0dHkgc3VyZSB0aGF0IG5vbmUgb2YgdGhlc2Ugd2lsbCBiZSBuZWNlc3Nhcnku DQoJPiA+DQoJPiA+IEp1ZXJnZW4NCgk+ID4NCgk+ID4NCgk+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCgk+ID4gRnJvbTogTGFycyBGaXNjaGVyIFttYWlsdG86bGFycy5maXNjaGVyQGdt eHByby5uZXRdDQoJPiA+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDI1LCAyMDAzIDEwOjMyIEFNDQoJ PiA+IFRvOiBqw7xyZ2VuIGjDtmxsZXIgW3dlcmszQVRdDQoJPiA+IENjOiB0cmlzYmVyZ0B0cmlk Yi5jb207IHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoJ PiA+IFN1YmplY3Q6IFJFOiBbU3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blcl0gRXhhbXBsZSBjbGFz c2VzIG5lZWRlZA0KCT4gPg0KCT4gPg0KCT4gPiBKw7xyZ2VuLA0KCT4gPg0KCT4gPiB0aGUgcHJv YmxlbSBpcyB0aGF0IHRoZSAqKiotc2VydmxldC54bWwgc3R1ZmYgaXMgYWx3YXlzIGxvYWRlZCBi ZWZvcmUNCgk+ID4gdGhlIGFwcGxpY2F0aW9uQ29udGV4dC54bWwgc3R1ZmYgbm8gbWF0dGVyIHdo YXQgSSBkZWZpbmUgaW4NCgk+ID4gd2ViLnhtbC4gVGhpcyBpcyBhZ2FpbnN0IHRoZSBkb2N1bWVu dGF0aW9uLg0KCT4gPg0KCT4gPiBJIHdpbGwgb3BlbiBhIGNhc2Ugd2l0aCBCRUEgc3VwcG9ydCAo dGhpcyB3b3VsZCBiZSB0aGUgZmlyc3QgdGltZSB0aGV5DQoJPiA+IHdvdWxkIHNvbHZlIGFuIGlz c3VlIGJ1dCB5b3UgY2FuIG5ldmVyIGtub3cgLi4uKS4NCgk+ID4NCgk+ID4gSXQgc2VlbXMgbGlr ZSBJIGhhdmUgdG8gdXNlIGFub3RoZXIgc2VydmVyIGJ1dCB1bmxlc3MgdGhlcmUgaXMgbm8gZXJy b3INCgk+ID4gaW4gbXkgYXBwbGljYXRpb24gU3ByaW5nIGlzIG5vIGFsdGVybmF0aXZlIGZvciBw cm9kdWN0aW9uIGFwcGxpY2F0aW9ucw0KCT4gPiAoUGV0Y2xpbmljIGRvZXMgbm90IHdvcmsgdG9v IGF0IHRoZSBtb21lbnQpLg0KCT4gPg0KCT4gPiBJcyB0aGVyZSBhbnkgZGlmZmVyZW5jZSBiZXR3 ZWVuIHRoZSBKYXZhIFNESyB2ZXJzaW9ucyA/DQoJPiA+DQoJPiA+IFRoYW5rcw0KCT4gPiBMYXJz DQoJPiA+DQoJPiA+ID4gTGFycywgVGhvbWFzLA0KCT4gPiA+DQoJPiA+ID4gSSBndWVzcyB0aGF0 IFdlYkxvZ2ljIHNpbXBseSBpbnZva2VzIHRoZSBsaXN0ZW5lcnMgYWZ0ZXINCgk+IGxvYWQtb24t c3RhcnR1cA0KCT4gPiA+IHNlcnZsZXRzLiBCYWQgV2ViTG9naWMgOy0pDQoJPiA+ID4NCgk+ID4g PiBVbmZvcnR1bmF0ZWx5LCB0aGUgU2VydmxldCAyLjMgc3BlYyBsZWF2ZXMgdGhpcyB1bnNwZWNp ZmllZC4gVGhlDQoJPiBTZXJ2bGV0DQoJPiA+ID4gMi40IHNwZWMgY2xhcmlmaWVzIHRoYXQgbGlz dGVuZXJzIGhhdmUgdG8gYmUgKmluaXRpYWxpemVkIGJlZm9yZSogYW5kDQoJPiA+ID4gKmRlc3Ry b3llZCBhZnRlciogYW55IHNlcnZsZXRzLiBUb21jYXQgYW5kIFJlc2luIGFscmVhZHkgYmVoYXZl IHRoaXMNCgk+ID4gPiB3YXksIE9yaW9uIGRvZXMgdG9vIHNpbmNlIDIuMC4yIGFmdGVyIEkndmUg aW5mb3JtZWQgdGhlbSBhYm91dCB0aGUNCgk+ID4gPiBTZXJ2bGV0IDIuNCBjbGFyaWZpY2F0aW9u Li4uDQoJPiA+ID4NCgk+ID4gPiBGb3IgYSBzb2x1dGlvbiB3aXRoIGN1cnJlbnQgV2ViTG9naWMg dmVyc2lvbnMsIEkgYWdyZWUgdGhhdCB1c2luZyB0aGUNCgk+ID4gPiBzZXJ2bGV0IGluaXRpYWxp emVycyBsaWtlIENvbnRleHRMb2FkZXJTZXJ2bGV0IGFuZCBMb2c0akNvbmZpZ1NlcnZsZXQNCgk+ IGlzDQoJPiA+ID4gcHJvYmFibHkgdGhlIGJlc3QgY2hvaWNlLCBhcyBUaG9tYXMgaGFzIHJlY29t bWVuZGVkLg0KCT4gPiA+DQoJPiA+ID4gSnVlcmdlbg0KCT4gPiA+DQoJPiA+ID4NCgk+ID4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KCT4gPiA+IEZyb206IHRyaXNiZXJnQHRyaWRiLmNv bSBbbWFpbHRvOnRyaXNiZXJnQHRyaWRiLmNvbV0NCgk+ID4gPiBTZW50OiBTdW5kYXksIEF1Z3Vz dCAyNCwgMjAwMyAxMDo0OSBQTQ0KCT4gPiA+IFRvOiBMYXJzIEZpc2NoZXINCgk+ID4gPiBDYzog c3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCgk+ID4gPiBT dWJqZWN0OiBSZTogW1NwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJdIEV4YW1wbGUgY2xhc3NlcyBu ZWVkZWQNCgk+ID4gPg0KCT4gPiA+DQoJPiA+ID4gTGFycywNCgk+ID4gPg0KCT4gPiA+IExvYWRp bmcgQ29udGV4dExvYWRlclNlcnZsZXQgYXMgYSBzZXJ2bGV0IHdpdGggbG9hZC1vbi1zdGFydHVw IHNldCB0bw0KCT4gMQ0KCT4gPiA+IGFuZA0KCT4gPiA+IGxvYWRpbmcgRGlzcGF0Y2hlclNlcnZs ZXQgd2l0aCBsb2FkLW9uLXN0YXJ0dXAgc2V0IHRvIDIgd29ya3MgZm9yIG1lDQoJPiBvbg0KCT4g PiA+IFdlYkxvZ2ljDQoJPiA+ID4gOC4xIFNQMS4gIElmIGl0IGRvZXMgbm90IHdvcmssIGNvdWxk IHlvdSBzZW5kIG1lIHRoZSB3ZWIueG1sIGFuZCB5b3VyDQoJPiA+ID4gbG9nIG91dHB1dD8NCgk+ ID4gPg0KCT4gPiA+IEFsc28sIEkgZ2V0IHRoZSBzYW1lIGVycm9ycyBkZXBsb3lpbmcgdGhlIFBl dGNsaW5pYywgc28gaXQgZG9lcyBub3QNCgk+IHdvcmsNCgk+ID4gPiBmb3IgbWUuDQoJPiA+ID4g IENhbiB5b3Ugc2VuZCBtZSB0aGUgcGV0Y2xpbmljIHdhciBmaWxlIHRoYXQgd29ya3Mgd2l0aCBX ZWJMb2dpYyA4LjENCgk+IFNQMQ0KCT4gPiA+IHNvIEkNCgk+ID4gPiBjYW4gdHJ5IGl0IG9uIG15 IHNlcnZlcj8NCgk+ID4gPg0KCT4gPiA+IFRob21hcw0KCT4gPiA+DQoJPiA+ID4NCgk+ID4gPiA+ IFRob21hcywNCgk+ID4gPiA+DQoJPiA+ID4gPiB0aGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uLiBU cmllZCBpdCBidXQgaXQgZG9lc24ndCB3b3JrLg0KCT4gPiA+ID4NCgk+ID4gPiA+IFRoaXMgaXMg YSBzZXJpb3VzIG9uZToNCgk+ID4gPiA+DQoJPiA+ID4gPiBUZXN0ZWQgbXkgYXBwIHdpdGggVG9t Y2F0IDQuMS4yNCBhbmQgaXQgd29ya3MuDQoJPiA+ID4gPg0KCT4gPiA+ID4gSSBkb2VzIE5PVCB3 b3JrIHdpdGgNCgk+ID4gPiA+DQoJPiA+ID4gPiBXZWJMb2dpYyA4LjEgU1AxLCBXZWJMb2dpYyBF eHByZXNzIFNQMSwgV2ViTG9naWMgNy4wIFNQMy4NCgk+ID4gPiA+DQoJPiA+ID4gPiBXaGF0IG1h a2VzIG1lIHdvbmRlciBpcyB0aGF0IFBldGNsaW5pYyB3b3JrcyB3aXRoIFdlYkxvZ2ljIDguMSBT UDEuDQoJPiA+ID4gPg0KCT4gPiA+ID4gUmVnYXJkcw0KCT4gPiA+ID4gTGFycw0KCT4gPiA+ID4N Cgk+ID4gPiA+ID4gTGFycywNCgk+ID4gPiA+ID4NCgk+ID4gPiA+ID4gSSBoYXZlIGxvb2tlZCBp bnRvIHRoaXMgYSBsaXR0bGUgYml0IG1vcmUuICBXaGF0IGhhcHBlbnMgaXMgdGhhdA0KCT4gPiA+ ID4gPiBTZXJ2bGV0Q29udGV4dExpc3RlbmVyLmNvbnRleHRJbml0aWFsaXplZCgpIG1ldGhvZCBp cyBjYWxsZWQNCgk+IF9hZnRlcl8NCgk+ID4gPiB0aGUgDQoJPiA+ID4gPiA+IEh0dHBTZXJ2bGV0 LmluaXQoKSBtZXRob2QgaXMgY2FsbGVkIG9uIHNlcnZsZXRzIHNwZWNpZmllZCB3aXRoDQoJPiA+ ID4gPGxvYWQtb24tDQoJPiA+ID4gPiA+IHN0YXJ0dXA+LiAgVGhpcyBjYXVzZXMgdGhlIHh4eC1z ZXJ2bGV0LnhtbCB0byBiZSBsb2FkZWQgYmVmb3JlIHRoZQ0KCT4NCgk+ID4gPiA+ID4gYXBwbGlj YXRpb25Db250ZXh0LnhtbCBpcyBsb2FkZWQsIHNvIHRoYXQgaXMgd2h5IHlvdSBjYW4ndA0KCT4g cmVmZXJlbmNlDQoJPiA+ID4NCgk+ID4gPiA+ID4gdGhlICdjd3hEYW8nIGJlYW4uICBUaGlzIGJl aGF2aW9yIGlzIHRoZSBvcHBvc2l0ZSBvZiB3aGF0IEkgc2VlDQoJPiBmb3INCgk+ID4gPiA+ID4g VG9tY2F0LA0KCT4gPiA+ID4gPiBhbmQgSSdtIHN1cmUgdGhlIHNhbWUgaXMgdHJ1ZSBmb3IgT3Jp b24gYW5kIFJlc2luIHRoYXQgSnVlcmdlbiBpcw0KCT4gPiA+IHVzaW5nLg0KCT4gPiA+ID4gPiBJ DQoJPiA+ID4gPiA+IGxvb2tlZCBpbiB0aGUgU2VydmxldCAyLjMgc3BlY2lmaWNhdGlvbiwgYnV0 IEkgZGlkIG5vdCBzZWUNCgk+IGFueXRoaW5nDQoJPiA+ID4gPiA+IHNwZWNpZnlpbmcNCgk+ID4g PiA+ID4gd2hpY2ggb3JkZXIgdGhlc2UgbWV0aG9kcyBzaG91bGQgYmUgY2FsbGVkIGluLiAgTWF5 YmUgSnVlcmdlbiBvcg0KCT4gUm9kDQoJPiA+ID4gY2FuDQoJPiA+ID4gPiA+IHNoZWQNCgk+ID4g PiA+ID4gc29tZSBtb3JlIGxpZ2h0IG9uIHRoaXMgaXNzdWUuIA0KCT4gPiA+ID4gPg0KCT4gPiA+ ID4gPiBZb3Ugc2hvdWxkIGJlIGFibGUgdG8gdXNlIHRoZSBDb250ZXh0TG9hZGVyU2VydmxldCBm b3Igbm93Lg0KCT4gPiA+ID4gPg0KCT4gPiA+ID4gPiBUaG9tYXMNCgk+ID4gPg0KCT4gPg0KCT4g Pg0KCT4NCgk+DQoJPg0KCT4NCgkNCgkNCg0K |
|
From: Lars F. <lar...@gm...> - 2003-08-26 07:38:41
|
Thomas, thanks a lot, deployment works now. There is one error message when undeploying but I hope alle these missing classes are included in the next release. Regards Lars P.S.: Error when undeploying (do not forget in 1.0): Failed while destroying servlet: contextLoader. java.lang.NoSuchMethodError: com.interface21.web.context.ContextLoader.closeContext(Ljavax/servlet/ServletContext;)V > Juergen, > > The problem is that 'com.interface21.web.context.ContextLoaderServlet' > can't > be found in the classpath - it is not in the spring-full-0.9.jar from the > distribution. Did we remove this file and later add it back in? > > Lars - I have attached a jar file that contains this missing class - add > that > to your lib directory. Also, remove the <listener> entry in web.xml. > > Thomas > > > Lars, > > > > You mean that > > > > <servlet> > > <servlet-name>contextLoader</servlet-name> > > > > > <servlet-class>com.interface21.web.context.ContextLoaderServlet</servlet- > class> > > <load-on-startup>1</load-on-startup> > > </servlet> > > > > <servlet> > > <servlet-name>example</servlet-name> > > > > > <servlet-class>com.interface21.web.servlet.DispatcherServlet</servlet-class> > > <load-on-startup>2</load-on-startup> > > </servlet> > > > > still loads the DispatcherServlet before the ContextLoaderServlet? > Ignoring > > the load-on-startup values would be a major bug in WebLogic's web > container. > > Are you *really* sure that a web.xml with entries like the above causes > wrong > > initialization order? Please recheck that thoroughly! > > > > It's bad enough that WebLogic invokes the listeners at the wrong time, > but > > unfortunately that is not actually conflicting with the current spec. I > can't > > believe that it ignores servlet load-on-startup values though - how did > it > > get its J2EE 1.3 certification then? It seems to work on Thomas' > > installation, so there should be a way to make it work on yours. > > > > Even in the extreme case, a solution can be found. You could for example > just > > use a servlet-specific context and no root context, by simply omitting > the > > context loader definition. You could subclass DispatcherServlet to > perform > > initialization of the root context before continuing with its own. But > I'm > > pretty sure that none of these will be necessary. > > > > Juergen > > > > > > -----Original Message----- > > From: Lars Fischer [mailto:lar...@gm...] > > Sent: Monday, August 25, 2003 10:32 AM > > To: jürgen höller [werk3AT] > > Cc: tri...@tr...; spr...@li... > > Subject: RE: [Springframework-developer] Example classes needed > > > > > > Jürgen, > > > > the problem is that the ***-servlet.xml stuff is always loaded before > > the applicationContext.xml stuff no matter what I define in > > web.xml. This is against the documentation. > > > > I will open a case with BEA support (this would be the first time they > > would solve an issue but you can never know ...). > > > > It seems like I have to use another server but unless there is no error > > in my application Spring is no alternative for production applications > > (Petclinic does not work too at the moment). > > > > Is there any difference between the Java SDK versions ? > > > > Thanks > > Lars > > > > > Lars, Thomas, > > > > > > I guess that WebLogic simply invokes the listeners after > load-on-startup > > > servlets. Bad WebLogic ;-) > > > > > > Unfortunately, the Servlet 2.3 spec leaves this unspecified. The > Servlet > > > 2.4 spec clarifies that listeners have to be *initialized before* and > > > *destroyed after* any servlets. Tomcat and Resin already behave this > > > way, Orion does too since 2.0.2 after I've informed them about the > > > Servlet 2.4 clarification... > > > > > > For a solution with current WebLogic versions, I agree that using the > > > servlet initializers like ContextLoaderServlet and Log4jConfigServlet > is > > > probably the best choice, as Thomas has recommended. > > > > > > Juergen > > > > > > > > > -----Original Message----- > > > From: tri...@tr... [mailto:tri...@tr...] > > > Sent: Sunday, August 24, 2003 10:49 PM > > > To: Lars Fischer > > > Cc: spr...@li... > > > Subject: Re: [Springframework-developer] Example classes needed > > > > > > > > > Lars, > > > > > > Loading ContextLoaderServlet as a servlet with load-on-startup set to > 1 > > > and > > > loading DispatcherServlet with load-on-startup set to 2 works for me > on > > > WebLogic > > > 8.1 SP1. If it does not work, could you send me the web.xml and your > > > log output? > > > > > > Also, I get the same errors deploying the Petclinic, so it does not > work > > > for me. > > > Can you send me the petclinic war file that works with WebLogic 8.1 > SP1 > > > so I > > > can try it on my server? > > > > > > Thomas > > > > > > > > > > Thomas, > > > > > > > > thanks for the suggestion. Tried it but it doesn't work. > > > > > > > > This is a serious one: > > > > > > > > Tested my app with Tomcat 4.1.24 and it works. > > > > > > > > I does NOT work with > > > > > > > > WebLogic 8.1 SP1, WebLogic Express SP1, WebLogic 7.0 SP3. > > > > > > > > What makes me wonder is that Petclinic works with WebLogic 8.1 SP1. > > > > > > > > Regards > > > > Lars > > > > > > > > > Lars, > > > > > > > > > > I have looked into this a little bit more. What happens is that > > > > > ServletContextListener.contextInitialized() method is called > _after_ > > > the > > > > > HttpServlet.init() method is called on servlets specified with > > > <load-on- > > > > > startup>. This causes the xxx-servlet.xml to be loaded before the > > > > > > applicationContext.xml is loaded, so that is why you can't > reference > > > > > > > > the 'cwxDao' bean. This behavior is the opposite of what I see > for > > > > > Tomcat, > > > > > and I'm sure the same is true for Orion and Resin that Juergen is > > > using. > > > > > I > > > > > looked in the Servlet 2.3 specification, but I did not see > anything > > > > > specifying > > > > > which order these methods should be called in. Maybe Juergen or > Rod > > > can > > > > > shed > > > > > some more light on this issue. > > > > > > > > > > You should be able to use the ContextLoaderServlet for now. > > > > > > > > > > Thomas > > > > > > > > > > > |
|
From: Kopylenko, D. <dko...@ac...> - 2003-08-26 05:01:54
|
F.Y.I - tested application code against the latest spring codebase from CVS. Works beautifully :-) Dmitriy. |
|
From: <tri...@tr...> - 2003-08-26 04:23:10
|
Juergen, The problem is that 'com.interface21.web.context.ContextLoaderServlet' can't be found in the classpath - it is not in the spring-full-0.9.jar from the distribution. Did we remove this file and later add it back in? Lars - I have attached a jar file that contains this missing class - add that to your lib directory. Also, remove the <listener> entry in web.xml. Thomas > Lars, > > You mean that > > <servlet> > <servlet-name>contextLoader</servlet-name> > > <servlet-class>com.interface21.web.context.ContextLoaderServlet</servlet- class> > <load-on-startup>1</load-on-startup> > </servlet> > > <servlet> > <servlet-name>example</servlet-name> > > <servlet-class>com.interface21.web.servlet.DispatcherServlet</servlet-class> > <load-on-startup>2</load-on-startup> > </servlet> > > still loads the DispatcherServlet before the ContextLoaderServlet? Ignoring > the load-on-startup values would be a major bug in WebLogic's web container. > Are you *really* sure that a web.xml with entries like the above causes wrong > initialization order? Please recheck that thoroughly! > > It's bad enough that WebLogic invokes the listeners at the wrong time, but > unfortunately that is not actually conflicting with the current spec. I can't > believe that it ignores servlet load-on-startup values though - how did it > get its J2EE 1.3 certification then? It seems to work on Thomas' > installation, so there should be a way to make it work on yours. > > Even in the extreme case, a solution can be found. You could for example just > use a servlet-specific context and no root context, by simply omitting the > context loader definition. You could subclass DispatcherServlet to perform > initialization of the root context before continuing with its own. But I'm > pretty sure that none of these will be necessary. > > Juergen > > > -----Original Message----- > From: Lars Fischer [mailto:lar...@gm...] > Sent: Monday, August 25, 2003 10:32 AM > To: jürgen höller [werk3AT] > Cc: tri...@tr...; spr...@li... > Subject: RE: [Springframework-developer] Example classes needed > > > Jürgen, > > the problem is that the ***-servlet.xml stuff is always loaded before > the applicationContext.xml stuff no matter what I define in > web.xml. This is against the documentation. > > I will open a case with BEA support (this would be the first time they > would solve an issue but you can never know ...). > > It seems like I have to use another server but unless there is no error > in my application Spring is no alternative for production applications > (Petclinic does not work too at the moment). > > Is there any difference between the Java SDK versions ? > > Thanks > Lars > > > Lars, Thomas, > > > > I guess that WebLogic simply invokes the listeners after load-on-startup > > servlets. Bad WebLogic ;-) > > > > Unfortunately, the Servlet 2.3 spec leaves this unspecified. The Servlet > > 2.4 spec clarifies that listeners have to be *initialized before* and > > *destroyed after* any servlets. Tomcat and Resin already behave this > > way, Orion does too since 2.0.2 after I've informed them about the > > Servlet 2.4 clarification... > > > > For a solution with current WebLogic versions, I agree that using the > > servlet initializers like ContextLoaderServlet and Log4jConfigServlet is > > probably the best choice, as Thomas has recommended. > > > > Juergen > > > > > > -----Original Message----- > > From: tri...@tr... [mailto:tri...@tr...] > > Sent: Sunday, August 24, 2003 10:49 PM > > To: Lars Fischer > > Cc: spr...@li... > > Subject: Re: [Springframework-developer] Example classes needed > > > > > > Lars, > > > > Loading ContextLoaderServlet as a servlet with load-on-startup set to 1 > > and > > loading DispatcherServlet with load-on-startup set to 2 works for me on > > WebLogic > > 8.1 SP1. If it does not work, could you send me the web.xml and your > > log output? > > > > Also, I get the same errors deploying the Petclinic, so it does not work > > for me. > > Can you send me the petclinic war file that works with WebLogic 8.1 SP1 > > so I > > can try it on my server? > > > > Thomas > > > > > > > Thomas, > > > > > > thanks for the suggestion. Tried it but it doesn't work. > > > > > > This is a serious one: > > > > > > Tested my app with Tomcat 4.1.24 and it works. > > > > > > I does NOT work with > > > > > > WebLogic 8.1 SP1, WebLogic Express SP1, WebLogic 7.0 SP3. > > > > > > What makes me wonder is that Petclinic works with WebLogic 8.1 SP1. > > > > > > Regards > > > Lars > > > > > > > Lars, > > > > > > > > I have looked into this a little bit more. What happens is that > > > > ServletContextListener.contextInitialized() method is called _after_ > > the > > > > HttpServlet.init() method is called on servlets specified with > > <load-on- > > > > startup>. This causes the xxx-servlet.xml to be loaded before the > > > > applicationContext.xml is loaded, so that is why you can't reference > > > > > > the 'cwxDao' bean. This behavior is the opposite of what I see for > > > > Tomcat, > > > > and I'm sure the same is true for Orion and Resin that Juergen is > > using. > > > > I > > > > looked in the Servlet 2.3 specification, but I did not see anything > > > > specifying > > > > which order these methods should be called in. Maybe Juergen or Rod > > can > > > > shed > > > > some more light on this issue. > > > > > > > > You should be able to use the ContextLoaderServlet for now. > > > > > > > > Thomas > > > > |