I was hoping to provide a custom ArtifactTransformation object from a plugin so that I can define the likes of RELEASE and LATEST in my project.
But it turns out that because DefaultArtifactTransformationManager is instantiated and composed very early on, even before any plugin gets loaded,
DefaultArtifactTransformationManager.artifactTransformations do not get my ArtifactTransformation.
Note that the fact that DefaultArtifactTransformationManager is created early on by itself makes sense because to load a plugin you'd need to be able to resolve plugin versions.
I think what's really needed here is for DefaultArtifactTransformationManager to have smaller scopes like PerLookup (so that it gets the list of ArtifactTransformation that matches the current context.)