Hi George,
actually I haven't been tried Forge, but now I tried it and I can share my thoughts.
I did not have time to use Forge project in the real life, but I installed and tested it a little and walk through several tutorials and examples. For now I am amazed with it's simplicity and usability of this tool.
For example, before I discovered Maven I have previous experience with crating of JEE project setup, or using Hibernate so I know how amount of Google-ing, how much effort is needed, and how painful process was that.
Because of that, I appreciate tools like Forge.
Regarding my previous idea, I think it can be applied to Forge, too. I think that Tattletale could be used by Forge through its plug-in(addon) mechanism.
Because Forge is not limited only to creating and displaying the reports, but most of his commands are created to solve common problems, we should implement remove-unused-dependencies addon with reporting capabilities, too. This extension should use Tattletale for the core logic.
So idea is to:
Create Tattletale addon for Forge2
The main features of future plugin remains the same as that are previously proposed for the Eclipse plugin:
- Tattletale tool requires that all dependencies should be placed in the same folder. Tattletale Forge plugin should be able to automatically recognize all libraries referenced by the different types of projects project.
- This plugin should include compiled classes of current project into report. This way, developer does not have to create build(all jars) to create the valid Tattletale report. Process should be automated.
- list-duplicated-classes command should be implemented(Multiple Locations report should be used)
- find/list-unused-dependencies command should be implemented (Unused Jars report should be used).
- We should add commands like "remove-unused-dependencies", "eliminate-dependencies-with different-versions". The nature of Forge tool is not only "advisory" and it should be able to manage class-path for example, for Maven projects.
These commands should be able to guide user through step by step process of finding/marking and removing the unused dependencies. - For the beginning we should create plugin and make it work fine with one type of projects(Maven), and then in the next iterations we could expand support for more type of projects.
- This plugin should be able to create default Tattletale HTML report.
I already started developing my first Forge plugin. You have great tutorial here:
http://forge.jboss.org/docs/plugin_development/#content
I will play with it for a while, review API, and then will come with mode in-depth proposal.
It will be great if we can create this plugin as part of GSoC 2014.
Please, review the ideas, advice and feel free to comment
Thank you