Both the S-ramp Wagon, Maven Repository Servlet Facade and Deploy Command (shell) uses the s-ramp client to store maven artifacts in the system.
They make more or less the same, use the same methods to find existing artifacts and to save the artifact. Also all of them have methods that parse the input string that contains the gav, and store this info in different mojos.
This means there is lot of common duplicate code. The idea is to create in s-ramp common project a new package maven and there include only one MavenMetadata class, and include one Factory class that transform from Metadata to BaseArtifactType.
Also it is required a MavenUtil class where will be included the common operations.