I think we would want to strongly recommend that people use the
ActionContext as a base class, as Joe is doing in his application.
Just as is done with the Commons Chain members.

So long as people follow our advice, and extend the base class, they
will be protected from changes to the API. If someone chooses to
implement the interface from scratch, then they will have some more
work to do. If they've setup a base class of their own, then there
shouldn't be so much to do.  (At least not more than we would put into
our own base class.)

As to the number of members, I'm a DRY guy myself. If I see the same
3++ lines appearing in more then one place, then into a convenience
method they go. (Heck, one line if its convoluted!)

For something, like ActionContext, I'd suggest we start with any
convenience method know found in the Action class, and add whatever
other methods we can point to in the example applications or derive
from *actual* use cases in our own work. So long as an argument is not
hypothetical, but based on actual practice, then it's not an argument
:)

Adding more members might even encourage good practice. People will
tend to use the base class so they don't have to implement everything
themselves. If there were very few members, more people might start
rolling their own.

We might want to take care to document which methods are used by the
framework and which methods are "optional." Nothing unusual in that.
Many of the larger Sun interfaces have "optional" methods, which, "if
implemented", should do this or that. We could just follow suit. If a
method is referenced by the stock framework, it's required, if not,
it's "optional". If someone doesn't use it in their applications, then
they don't have to implement it.

If we identify one form the other, then we've done our job. And, if
you are using something like IDEA, it's not much of a challenge. IDEA
will gladly find the usages of a method throughout a given codebase :)

-Ted.

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

Reply via email to