unlike jmx this isnt part of core, so if you dont want to activate it dont put it on your classpath. furthermore, like i said, there are no sideffects in activating it.
the only downside i can think of is how to configure these things. usually you would do it when installing them, but when they install themselves it gets trickier. in case of wicket-spring there is no configuration.... -igor On 2/18/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
I like the idea. It's very much like the IInitializer idea anyway, and I agree it's funny we didn't actually think of this before. The only catch with auto-discovery/config/whateveryoucallit is - like we can see now with JMX - what do you do when people want it to be not activated. If we can have that as part of the pattern, I'm all for it. Eelco On 2/18/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote: > i disagree. having things explicit is very nice when there is a need for you > to know, but what if there isnt? > > take wicket-spring module. its only service is to make fields annotated with > @SpringBean injectable. why should the user care that this is done with the > componentinstantiationlistener, or what a componentinstantiationlistener is. > > there is also no need to make the user dig in though the docs and figure out > they they need to have > addComponentInstantionListener(new SpringComponentInjector(this)); > > to them its total garbage they just have to paste in. no one cares what it > is, they only care @SpringBean fields are injected. > > so perhaps i should chage "zero-configuration" to "zero-installation". > > same for security > > if i provide a module that provides a couple of annots like @Admin @User, > etc and a security strategy for them - why make user go through all the > gritty details of installing it. what if they have their own and want to mix > it with the one in the module? they have to do all the wrapping themselves - > it gets messy and the end result is exactly the same as when the module > wouldve installed its own by itself. if we move to veto semantics for return > values of strategies there is no difference how it is mixed in as long as it > is. > > i dont know. if there is only one way to install something, why not have it > done automatically? > > like i said, just thinking out loud > > -igor > > > > > > > On 2/18/07, Jonathan Locke <[EMAIL PROTECTED]> wrote: > > > > > > I like the idea of snap-in modules of some sort, but I don't completely > > understand what you're talking about here and I'm not sure I agree with > > what > > all of what I do get. > > > > I'm unsure about auto-installing modules using the classpath. With the > > classpath loading, you wind up with a lot of magic going on that you don't > > explicitly specify. I find that kind of "zero config" to be slippery, > > sometimes surprising and generally harder to manage than simply requiring > > a > > single line of code in your application constructor that makes it clear to > > everyone exactly what is supposed to happen (and when). It is very > > straightforward and self-documenting to explicitly state the dependency > > for > > each module you want to use in your app constructor. It's extremely hard > > to > > mistake the intention of something like "add(new WhateverModule())". You > > don't have to know anything about how Wicket modules might work to figure > > it > > out. > > > > I also think that the current approach of having /a/ security strategy is > > quite elegant and straightforward. The mechanism is extensible by > > explicit > > chaining and I think probably better than a fancy one that has locators, > > searching or cascading because you end up with magic again. Saying > > "add(new > > WebApplicationAuthenticator())" (instead of extending > > AuthenticatedWebApplication) lets you to add web application > > authentication > > functionality without having to educate anyone about how it happens. > > > > I think what we should be shooting for is an easy way to use modules in > > Wicket that add behavior explicitly in your application constructor. I > > think this ought to be some kind of simple and explicit pattern of > > composition. > > > > I like the start of what you're thinking here, but let's be careful not to > > invent for invention's sake. Wicket would best remain a highly > > predictable > > and simple framework. > > > > > > igor.vaynberg wrote: > > > > > > just thinking out loud... > > > > > > for a long time we have had problems with addons that have their own > > > application subclass because if you wanted to use more then one addon > > you > > > had to bastardize the code of one and add it to the application subclass > > > of > > > the other. recently i refactored wicket-spring to not have its own > > > application subclass, but the user still had to install the component > > > injector - and needs to know how to do that. > > > > > > i thought it would be great to have modules that users can install that > > > would take place of the module-specific application subclass. and then i > > > thought about it some more and realized we already have something like > > > that. > > > > > > interface wicketmodule extends iinitializer, idestroyer {} > > > > > > and there you have it, a beginnings of a wicket module. i just > > refactored > > > wicket-spring to work like this, it uses an initializer to register the > > > springcomponnetinjector so now for user there is zero-configuration. > > drop > > > the jar onto the classpath and its ready to go. why didnt i do this a > > long > > > time ago? :| > > > > > > now for security stuff we can also do some really cool things. it gets a > > > bit > > > controversial here but bare with me. what if we let the security > > strategy > > > cascade from session->application->modules and instead of returning true > > > or > > > false it returns pass or veto? the controversial bit is removing > > security > > > strategy from a setting and letting session, application, wicketmodule > > be > > > able to implement it directly - or implement a locator interface. this > > way > > > installing wicket-auth is pretty simple, drop the jar in and create your > > > own > > > roles. the module takes care of installing the right security strategy, > > > etc. > > > > > > could be cool, the module interface can be extended to handle other > > > usefull > > > callbacks, etc. > > > > > > -igor > > > > > > > > > > -- > > View this message in context: > > http://www.nabble.com/wicket-modules-tf3250868.html#a9037838 > > Sent from the Wicket - Dev mailing list archive at Nabble.com. > > > > >