Hi all,

at the ApacheCon Europe, we decided to perform some cleanup on the Droids
code base.
Currently for beginners Droids is really hard to use.
You have to create a lot of code, before you can get started.

So I created a cleanup branch
https://svn.apache.org/repos/asf/incubator/droids/branches/0.2.x-cleanup/

First I just wanted to remove unused and confusing classes, but I ended up
in refactoring the project.
Maybe this is too much, but it would be really nice, if you can have a look
and share your opinions.
I did not change anything on the core concepts, but used the principle that
everything should be managed by a Droid.
For simplicity I did not use any @Deprecated Annotations. Otherwise the
code would be really hard to read.
Currently I implemented only the core module and the walker to show the way
- droids-core
- droids-walker

So basically I moved to crawling (currently not implemented) and walking
stuff to their separate modules.
I renamed the api package to core and moved some interfaces /
implementations to their corresponding packages.
There are a lot of changes in the Droids API to make it easier to use.

I created some test cases in the droids-walker module to show how easy it
now is to create a new walker.
Here is an example that would run:

  Collection<File> initialFiles = new LinkedList<File>();
  initialFiles.add("/home/user/docs");

  SimpleWalkingDroid droid = new SimpleWalkingDroid();
  droid.setInitialFiles(initialFiles);
  droid.addParsers(new FileNameParser());
  droid.addHandlers(new SysoutHandler());

  droid.start();

In this example, the queue and the taskmaster are predefined.
For base cases, like walking or crawling, we should define some basic
conventions.
It would be nice to create a crawling droid just with an URL and everything
else is set up with defaults (which can be overriden).

So please test it and share your opinions.

Tobias

Reply via email to