On May 24, 2007, at 10:10 AM, Remy Maucherat wrote:

David Jencks wrote:
I tend to agree that a new branch is more appropriate. However, earlier versions of the patch had a compatibility layer so the old api could continue to work. I'm happy to add that back in on request.

I am examining the patch in detail as part of the new trunk branch (adjusting things like package names), and unfortunately it turns out I still dislike it due to design implications with Jasper.

Modern JSPs now uses lots of tags, and especially lots of SimpleTags, which are not pooled. As a result, the InstanceManager design leads to replacing "new MySimpleTag()" with "newInstance (String className)" (which creates the instance in a much more expensive way). Maybe adding access to InstanceManager.newInstance (Object instance) would be a solution (in effect making InstanceManager an extension of the old AnnotationProcessor).

To reorient myself to this.... these tags can have injected stuff, correct? So it would theoretically be possible to support constructor injection on them, with suitable constructor metadata?

Are tags typically created once per jsp instance or once per request (or at some other frequency)?

And your objection here is that

new Foo();

is sufficiently faster than

Class fooClass = cl.loadClass("Foo");
Object foo = fooClass.newInstance();

that we should separate the object construction and injection phases?


My thoughts at this time are that:
- if tags are created once per jsp we're only talking a difference in startup time which is not important
- it might be worth eliminating the loadClass call in any case
- if tags use injection the cost of looking up the stuff to inject so far dwarfs the time to create the object that the single InstanceManager.newInstance method still makes sense - if a tag doesn't use injection and is created once per request (or more often) then it would be worth measuring the speed difference and possibly modifying the code generator to directly create the tags when there are no injections for it.

I haven't done any speed measurements yet, have you?

thanks
david jencks



Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to