[forge-dev] GSoC project idea: Create Tattletale plugin for Eclipse

Matt Benson gudnabrsam at gmail.com
Fri Mar 21 08:57:08 EDT 2014


I know your proposal is due today, so I'll talk out of turn: There is no
future in Forge 1. You should be concentrating on Forge 2, but more
generally in realistic terms you should aim for your addon to be compatible
with whatever the current version of Forge is near the end of the summer if
at all possible. I.e., if F3 were to be released it would be similar in
most respects to F2, and migration would probably not represent much, if
any, burden. Good luck to you!

Matt
On Mar 21, 2014 7:50 AM, "Dejan Simeonov" <dejanfrancuzo at gmail.com> wrote:

> Hi,
> I started working with earlier version, Forge 1.4.4. but I have some
> issues since switched to Forge 2.2.0.
> -Eclipse plugin could not be installed from the Eclipse Update Site -
> http://download.jboss.org/jbosstools/builds/staging/jbosstools-forge_master/all/repo/
> Error is:
> Cannot complete the install because one or more required items could not
> be found.
>   Software being installed: JBoss Tools - Tests - Forge
> 1.3.0.Beta2-v20140321-0817-B552
> (org.jboss.tools.forge.ext.test.feature.feature.group
> 1.3.0.Beta2-v20140321-0817-B552)
>   ...
> I used Eclipse Juno Service Release 2
>
> Now, I switched to Eclipse 4.3, Kepler,  I managed to install Forge plugin
> and Forge console works fine, but it is using older Forge, version 1.4.4
>
> What you prefer: We could implement Tattletale addon for Forge 2, or to be
> more specific, for current official release, Forge 2.3.0.Final, or it is
> better to use older version, 1.4.4?
> What is your opinion? Please advice.
>
>
>
>
>
> On Thu, Mar 20, 2014 at 8:23 PM, George Gastaldi <ggastald at redhat.com>wrote:
>
>> That's awesome Dejan. The docs you mentioned covers Forge 1.x. The docs
>> for 2.x are available in github.com/forge/core at the moment. We are
>> working on a new website for Forge 2 and it should be available soon.
>>
>> Join us on irc.freenode.net @ #forge if you have any questions. We'll be
>> glad to help you out.
>>
>> Em 20/03/2014, às 16:17, Dejan Simeonov <dejanfrancuzo at gmail.com>
>> escreveu:
>>
>> 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
>> Dejan
>>
>> On Wed, Mar 19, 2014 at 3:53 PM, George Gastaldi <ggastald at redhat.com>wrote:
>>
>>>  Nice to meet you Dejan.
>>>
>>> First of all, have you tried Forge 2? I'd like you to give it a try:
>>>
>>> https://github.com/forge/core/blob/master/README.asciidoc
>>>
>>> The idea in Forge is to provide tooling that is not coupled to the IDE
>>> implementation, that is, the code you write will run in Shell, Eclipse,
>>> NetBeans, IDEA, etc (as long as there is an implementation of the Forge
>>> APIs for each IDE - at the moment we have Eclipse and Shell).
>>>
>>> I believe that a Tattletale addon would be nice to have.
>>> There is also a talk about Forge 2 in here: http://t.co/aWCzQPWeTp(Thanks to Ivan).
>>>
>>> Best Regards,
>>>
>>> George Gastaldi
>>>
>>>
>>> On 19-03-2014 07:41, Dejan Simeonov wrote:
>>>
>>>
>>>  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
>>>
>>>
>>> _______________________________________________
>>> forge-dev mailing listforge-dev at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>>
>>>
>>> _______________________________________________
>>> forge-dev mailing list
>>> forge-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140321/aca9de1b/attachment-0001.html 


More information about the forge-dev mailing list