it seems like any kind of injection ought to be framework-internal such that we could manage that very special case (maybe pass a special internal constant value as the parent that signifies that the parent can be set just once later). of course, injected components then behave differently than non-injected components. they might fail due to unavailable parent in a variety of ways. it doesn't seem to me that you'd ever be able to get partial construction of wicket pages via IOC to work completely. perhaps a better way to do it is to drive the injection with a special panel that creates components from data. i don't know much about spring, but could you make a SpringPanel which would basically say "the user can stick stuff /here/ via spring IOC?" then perhaps that injection could occur during construction of the spring panel... or maybe you can't do this in spring, i dunno.

Kamil Rembalski wrote:
Yes, I can. Now, how about the second part of it - IoC...

One of "kicks" for wicket was the possibility of extremely tight IoC integration. The user is able to configure pages and components in IoC config files. My current strategy was to do it - I was configuring all the pages in spring context and injectng some components into them. Less important components (borders, panels, etc.) were created "by hand" in java code. The only IoC-aware objects were the page factory and application.

The reason behind it is a product customization strategy - we sell product, but do not sell source. However, client should be able to customize the app - IoC contexts and db scripts are placed outside jar/war and modifiable. By modifying these, client can masivelly customize application - if we place e.g. registration form in spring context, client will be able to do suppply a new implementation, e.g. adding a field or simply modifying validator behavior.

Without possibility of creating component without the parent, we would have to configure all the components in IoC, which is a masacre.

Is it really necessary to remove add() ? I understand that the features like line-precise fail or getPath() in constructor will not work if one of the components in the chain will use it, but what about the people who don't need them? Is there no possibility of, say, throwing an exception if the parent is unknown in getPath() or not giving line-precise messages when it is not possible?

Besides the IoC issue, it is also a problem of compatibility with previous versions... This is very core API, guys...

Cheers,
Kamil



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Wicket-develop mailing list
Wicket-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-develop

Reply via email to