I see two apparent sinks of permgen in our build from yourkit. One is the XSD-to-Java mojo, which doesn't belong to us. But we might be able to wrap it in such a way as to change its behavior.
The other is the SOAPBindingUtil.getProxy. The proxy classes, which co-locate in the class loader of the classes they proxy, never go away. So, they end up in the per-plugin class loader, which isn't going to go away for the life of the build. So, it looks like we need an additional classloader in the path here that can be GC'd. The WSDL2Java mojo is the top of this. Question: should SOAPBindingUtil just use the thread context class loader, which would allow us to easily deal with this in the mojo, instead of sticking the proxies into the same class loader as the things proxied? I think so.
