Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[soc-dev] GSoC 2013, Code Recommenders for Javadoc

Hi,

I'm a student at the Darmstadt University of Technology and a Eclipse contributor for the Code Recommenders project and I'd like to participate in GSoC 2013. After a brief talk with Marcel Bruch, we came up with the idea of extending the Javadoc Tool [1] with some elements from Code Recommenders including a social component.

For instance, we'd like to include some of Code Recommenders' statistics like * when selecting a package: 'What are the most frequently overwritten (used) classes in package org.eclipse.xyz*?'
* when selecting a type: Which methods of type X frequently used by clients?
* when selecting a method: which methods are frequently called together with m()? * when selecting a type: A field of this type has been frequently annotated with @Inject or @Named (as of interest for e4 developers for instance)

and similar documentations.

For the generation part, I plan to extend the Javadoc Tool framework by one or more 'Doclets' (see [1]) that allow different extdoc providers (based on the extdoc providers of Code Recommenders) to contribute directly to the generated HTML output via the Javadoc api. In contrast to the normal way how the javadoc command is used, I'd like to develop a little helper utility that fetches and unzips the sources directly from a maven repository, runs the normal javadoc tool and adds the recommenders documentation to the standard javadoc output, and finally uploads the updated javadocs to the repository or deploys them on a website.

In addition (when there is still some time :-) ), I'd like to enable users to directly edit, comment or rate on API documentation and new code snippets, which are provided by the Snipmatch subproject of Code Recommenders. Alternatively, these code snippets could also be posted directly by developers through the webinterface or even via a REST API (so you could implement an additional IDE plugin for this afterwards). The code snippets shall be grouped by java classes and/or packages, which then can be tagged, commented and rated by other developers. Top rated code snippets ('favorites') will appear at the top of the list, similar to stackoverflow.com.

For this, an additional backend (a RESTful api) will be needed, which stores and organizes the code snippets, including tags and comments by users. The snippets shall be inserted dynamically in the (so far static generated) Javadoc website. For the server-side part I'm thinking of using OData [2] protocol backed up by a sql database like mysql.

I'm very interested in the idea of having a dynamic social component in the generated Javadoc website and looking forward to implement it.



Best regards,
Patrick Gottschaemmer


[1]http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/
[2]http://www.odata.org/



Back to the top