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

Lincoln Baxter, III lincolnbaxter at gmail.com
Fri Mar 21 10:03:28 EDT 2014


Thanks Matt!

Yes, this should focus on Forge 2.x. As Matt said, Forge 1.x is no longer
being improved.

~Lincoln


On Fri, Mar 21, 2014 at 8:57 AM, Matt Benson <gudnabrsam at gmail.com> wrote:

> 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
>>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
>



-- 
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20140321/c7ca7fdf/attachment-0001.html 


More information about the forge-dev mailing list