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

Reply via email to