Changed UserResolverChain so that it passes up the module version meta-data without first unpacking and reassembling it. Changed BuildableModuleVersionMetaData to allow the dependency meta-data to be replaced (say, with revConstraint used instead of rev).
Introduced IvyAwareModuleVersionRepository to allow ivy settings to be attached to the repository (when it cares). Moved isLocal() to this interface from ModuleVersionRepository.
Added ConfigurationResolver which is used by DefaultConfiguration to resolve itself, to decouple DefaultConfiguration from all the infrastructure that is required to resolve it.
Moved a couple of classes from core -> coreImpl.
Added (internal) ResolutionAwareRepository, which represents a repository that knows how to resolve stuff and changed ArtifactDependencyResolver.resolve() to accept these as a parameter. Not used yet.