Am 08/04/16 um 18:44 schrieb Paul Benedict: > In my own experience regarding the difficulty of naming something, it has > always indicated the codebase is too big and multi-functional. > > Thus, there are two paths to take: > 1) Slap a brand name on it because no descriptive name can succinctly > capture all the provided functionality > 2) Break down the code base so you can apply individual descriptive names > > So, perhaps a change of perspective could help here....
+1 > Has anyone thought about breaking apart Aether after the import? It does a lot of different things and it overcomplicates things, in my opinion. Maybe we should try to find a better interface than 'RepositorySystem'/split that up/review the API/improve the abstractions. <https://git-wip-us.apache.org/repos/asf?p=maven-aether.git;a=blob;f=aether-api/src/main/java/org/eclipse/aether/RepositorySystem.java;h=8706f891afa2d76e1d90c54dc7ce8bb51c930dbd;hb=HEAD> In my opinion the following methods do not belong there: 'install' 'collectDependencies' 'resolveDependencies' 'newLocalRepositoryManager' 'newSyncContext' 'newResolutionRepositories' 'newDeploymentRepository' The methods to keep should be implemented differently. For example: 'resolveArtifact': Resolves the path for an artifact. The artifact will be downloaded to the local repository if necessary. The whole local repository logic should not be part of that. It's just a cache to be put in front of it. Has nothing to do with a 'RepositorySystem'. And then there is lack of features/use cases requested by users. Things like getting the list of all available artifacts of a given group id. Missing queries. A lot - if not all - of the methods of that interface could be replaced by a yet to be implemented query language which can capture all use-cases in a single place. Finding versions, finding artifacts, finding paths. All simple queries. Deploy is the only one not just querying but modifying the repository. That makes it 2 methods. One for querying the repository. One for modifying the repository. You could as well throw away Aether - just take what is needed to retain backwards compatibility and start from scratch with something much more simple. Leads to something like Maven Artifact Repository Query Language, for example. Regards, -- Christian --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org