On 30 Oct 2002 [EMAIL PROTECTED] wrote:

> Rename "Application" components to "Module"

It would probably be more convenient to have this conversation directly on
STRUTS-DEV while we hash out the details :-).

Regarding Rob's basic issue, it might be worthwhile to see how I treated
essentially the same problem in the 1.0->1.1 transition.  For example, the
concept of ActionMapping (1.0) is now called ActionConfig (1.1).

In that case, I did:

* Put all the functionality that used to be in ActionMapping into
  ActionConfig (tweaking for new properties as needed, of course).

* Made ActionMapping extend ActionConfig, and added the few extra
  method signatures needed for backwards compatibility to the old
  ActionMapping API.

* In this case, I chose not to deprecate ActionMapping because it
  is part of the fundamental application APIs (i.e. we pass one to
  the Action, so changing that would have a *lot* of impact on
  existing applications).  I don't think that argument applies to
  things like ApplicationConfig, which would be deprecated in favor
  of ModuleConfig.

This approach is *not* binary backwards compatible (because the underlying
inheritance hierarchy of ActionMapping changed), but it *is* source
backwards compatible - a recompile against the new struts.jar makes
everything work.

So, this is a long-winded case of asking "why can't we do this"?

* Move all the functionality of ApplicationConfig to ModuleConfig.

* Make ApplicaitonConfig a subclass of ModuleConfig with no
  extra methods of its own.

* Deprecate the ApplicationConfig class itself.

* Modify all source references from ApplicationConfig to ModuleConfig
  (which is a fairly large, but fairly mechanical, exercise) -- and
  don't forget the unit tests :-).

Craig


--
To unsubscribe, e-mail:   <mailto:struts-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-dev-help@;jakarta.apache.org>

Reply via email to