Hi, I am close to finishing what will be my proposal for what I preliminarily call "Rat 2". But, before I publish that to Git, I thought it might be a good idea to discuss my intentions, and gather wishes, alternative suggestions, or other sorts of input:
Rat 2 is a complete rewrite of the current Rat. I did that rewrite in order to introduce the features/address the pain points below: 1.) Radically simplified, leaner code base. Right now, the size of the *.java files in the api, and core projects is 553388 characters, whereas my rat2-core has 179260 characters. 2.) Driven by configuration. If a user claims, that "Rat doesn't do that", or whatever, then I want our standard reply to be along the lines of "Here's how to change your configuration", rather than "We need a new class Foo, which will come with the next release in something like 12 months." 3.) Pluggable architecture. Rat 2 basically has less than 10 classes, which are instantiated (for example, all the full text licenses are sharing a single class, rather than creating a new class for any additional license). 4.) Really modular. I want us to be able to release the maven plugin/ant task/cli separately, if and when there is a problem in those components, rather than wait for a release of the complete Rat. This implies, in particular, that in Rat 2 the core takes over a lot of tasks, that the other components did in Rat 1. As a prize, Rat 2 is now mainly driven by a configuration file, rather than by the Maven POM/Ant Build script/CLI Options. Basically, the components are invoking the core to "run the Rat engine, based on the given configuration file". 5.) Support for using multiple threads while scanning. Hoping, this sounds interesting to you, Jochen -- The next time you hear: "Don't reinvent the wheel!" http://www.keystonedevelopment.co.uk/wp-content/uploads/2014/10/evolution-of-the-wheel-300x85.jpg
