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]