Although javax.tools.Tool and javax.tools.ToolProvider have been somewhat superceded by the new java.util.spi.ToolProvider, they still have a use with respect to use with ServiceLoader, but there has always been a problem with using javax.tools.Tool with ServiceLoader because there has not been a well-defined way to identify the tools that may be returned.
Although by no means perfect, it would be good to follow the example set by java.util.spi.ToolProvider and provide a default method for the javax.tools.Tool interface,
default String name() { return ""; }