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