Hi Alex,
We have been analyzing your suggestions/comments. They are really interesting! So, thank you again for your feedback!
These are our comments/answers to your suggestions:
Now, walkmod can be executed from Maven using the Maven Exec Plugin (
http://mojo.codehaus.org/exec-maven-plugin/), but a Maven plugin with an embedded walkmod is better because the user is able to run walkmod without any previous installation.
We already would like to have an IDE plugins to avoid using the console and improve the user experience.
2, 3, 4 Configuration. We have opened a ticket for the next 3 issues. We decided to start from an XML configuration because using DTDs, editors help users to fulfill the configuration parameters. However, to support future user preferences (e.g JSON configuration), our architecture allows to have multiple configuration readers to populate the "configuration object" before running any transformation. So, it is easy to do :-).
We agree with you in using annotations inside a project might simplify the walkmod configuration for some Java developers (specially include and exclude rules). Indeed, it is a good practice in Java frameworks (such as Hibernate, Struts2, Spring..). However, these frameworks already need to appear as a library (dependency) in the project classpath in runtime, but walkmod doesn't and IMO, it messes the code.
Anyway, you are right and it may be an interesting feature for several users.
5 Spring. We decided to use Spring instead of Guice (for example) to allow initialize complex components from XML files and to assure the minimum coupling with the DI engine. A given class may be used under different bean definitions because due to having different default initialization parameters. Moreover, Spring allows to parametrize complex object initializations such as a map, an array or a complex structure for a given component.
For example, if a user would like to share a template or an Script through a plugin, it should declare a new bean with the same class to process templates or scripts but parametrizing a fixed template file.
6 SNAPSHOT. Yes, of course. Now it is 1.0 SNAPSHOT because we would like to start publicly with an stable 1.0, but it will change once we have the hole project modularized in GitHub.
8 AsciiDoc. Well, we would like a lot writing just once the documentation and upload it the several formats. However, web pages have the Twitter bootstrap style. Could we generate the same output style using AsciiDoc?