	Just some random thoughts I had while reviewing the plexus code.  Some
are very detailed and specific, while others are more general.  -pete

+ PlexusContainer.setConfigurationResource(Reader) is in the
  interface, but DefaultPlexusContainer.setConfigurationResource just
  calls DefaultPlexusContainer.setConfigurationReader(Reader).
  Perhaps it should be renamed ot setConfigurationReader instead in
  PlexusContainer?

+ Also, DefaultPlexusContainer has *public*
  set/getDefaultConfiguration(), but PlexusContainer does not.  Is
  this intentional?

- Whats the deal with ResourceManager not having an interface defined
  and the use of DefaultResourceManager everywhere?  If there is no
  interface, might as well ditch it.  Also, based on the current
  implementation, it is impossible to swap out the ResourceManager
  because it will fail the cast in the ResourceManagerFactory.create. 

- DefaultPlexusContainer.initializeResourceManager overwrites the
  previous version of classLoader.  Confusing.  You have a note about
  it but I'm still not sure what you are talking about.

- LifecycleHandlerFactor.create doesn't do anything with the suspend
  and resume blocks of plexus.conf at the moment.

- Not sure why PlexusContainer even exists ... why not just have a
  ComponentRepository? 

- A component's Key should _not_ be the simple concatenation of Role
  and Hint (or Id) because this might clash with another valid Role.
  Perhaps it would be better to use a '/' as a separator, although
  that doesn't resolve the issue completely either because role names
  can be anything.

  Note: Pete and I have agreed we will use "/" and forbid that character
  from being used in role names. I change this later this week as I've have
  oodles of places where I use the concatenation instead of lookup(role,hint).
