First the question: how do I actually use a custom shader? I've created my own Shader implementation based on DefaultShader, set a new hint, and modified the working pom.xml entry with <shaderHint>myShaderHint</shaderHint>.
It blows up - it can't find a class implementing the Shader interface. I KNOW that that class is present, I don't know why it can't find it. I also tried adding <shader implementation="fully.qualified.class.Name"/>. No joy there either. So how do I specify the custom shader??? Now two ideas. I would contribute code but my employer is rather paranoid so my hands are tied until the end of my contract. Fortunately these are simple ideas that would only take a few hours for someone familiar with the code to knock out. 1. Add "artifact" to ShadeRequest. This lets the custom shader to make a distinction between "internal" dependencies and "external" dependencies. 2. Add a standard Shader that creates a jar-of-jars instead of an uberjar. The specific motivation for the jar-of-jars is that we need to collect dependencies for third-party vulnerability assessment. We've been doing it by hand but it's very error prone. With a trivial change to DefaultShader we can immediately create a jar containing all of the dependencies. We can then upload that monster for assessment. (The ability to capture the corresponding source is a free additional benefit!) 3. We're trying to implement a refinement of the second item. The specs are still in flux but the idea is that anything "internal" (same groupId) goes in the parent directory but is stripped of version information. Everything else goes into a "lib" directory. Again the idea is that it makes it much easier to pass to a third-party validation tool. I don't know if this is too specific for a general tool or if it's something easily supported with a configuration flag or two. Thanks, Bear
