Hi Forge team, Hi George,
Let me briefly introduce myself:
My name is Dejan Simeonov, and I am final-year student of
Faculty of Organizational Sciences, University of Belgrade,
Serbia.
I have experience with Java, PHP, HTML and CSS, SVN, GIT...
I am familiar with Eclipse and several open-source tools for
Statistic Code analysis as Eclipse and Hudson plugins.
Currently I am learning about Maven and Eclipse Plugins
implementation.
And I would like to participate as a student in Google
Summer Of Code 2014.
Several days ago I proposed my ideas for GSoC to Jonathan,
JBoss's GSoC mentor. We talked about them and he advised me
to review one of them with you, Forge team, hopefully to help
me with the concrete details and specification.
One of tools I used is Tattletale. I found it very useful
for investigating dependencies inside the project and to
discovering unused jars.
I used it as command line and Maven plugin, but I think it
could be even more useful as Eclipse plugin. So, idea is:
Create Tattletale plugin for Eclipse
Lot of tools have plugin for Eclipse. (Findbugs, PMD...).
Tattletale plugin for Eclipse still does not exist, but this
way it should be easier to use comparing to usage trough
console . Tattletale tool could be used as engine for this
plugin. The basic plugin implementation could display
standard Tattletale HTML report inside the Eclipse, but some
sub reports like "Unused Jar" or "Multiple Jar files" could
"mark" some referenced libraries displayed in the Eclipse
controls and highlight them for the removal.
I investigate a little and I found that developers like to
periodically use the Tattletale tool to review dependencies
inside the project, to remove unused ones and this way, to
keep projects 'fit'.
This option could be one of the main feature of the future
plugin.
Other things this plugin should be able to do are (several
ideas):
- Tattletale tool requires that all dependencies should be
placed in the same folder. Tattletale Eclipse plugin should
be able to automatically recognize all libraries referenced
by the Eclipse project, like jars inside the project,
external jars and Maven dependencies.
- This plugin should include compiled classes of current
Eclipse project into report. Dependent eclipse project
should be included, too. This way, developer does not have
to create build(all jars) to create the valid Tattletale
report.
- Mark Duplicated class in the Project Explorer(Multiple
Locations report should be used). This is possible, Eclipse
API supports this, Findbugs plugin can do it.
- Mark Unused JAR files in the Project Explorer's Referenced
Libraries node(Unused Jars report should be used).
Currently, I do not know is this possible.
- This plugin should be able to create and open default HTML
report in Eclipse plugin. This report could allow to
navigate to particular class listed in it using
CTRL+LeftClick. Currently Tattletale does not support this.
- Graphical dependencies report should work "out of the box"
- We could add options like "Remove unused dependencies",
"Eliminate Jar files with different versions", but this
should be discussed. This tool could have only "advisory"
nature and could manage class-path for Maven and Eclipse
Java projects. I am not sure should we provide potentially
risky options which are managing eclipse project
class-path?
- This plugin could be displayed in the new "Tattletale
Eclipse perspective".
I should ask you if someone is interested to become a GSoC
mentor for this project, to finish it together?
In this case, I could try implement prototype of this
plugin with basic options as part of the GSoC proposal
evaluation process.
I think I can finish this plugin, and this project seems as
great opportunity to me, first, to create an useful tool which
will be widely used as part of Eclipse and to gain more
experience in lot of open-source tools.
Please, feel free to ask if you have any questions, Any
comment or suggestions is appriciated.
Best Regards,
Dejan Simeonov