[GSoC] Java Eclipse integration

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[GSoC] Java Eclipse integration

Bernd Bergler
Hey everyone!

My name is Bernd. I am from Austria and would like to participate in the GSoC
for Gentoo.

I have already posted this on the gentoo-soc mailing list but I think
some of you
guys might be interested in this project and can give me advices or comments
on my ideas. I would really appreciate any help from you.

I would like to write an Eclipse Plugin which enables Eclipse to
import installed
java libraries into java projects[1].

The goal of this project is to create a plugin for Eclipse which lets
the user easily
import libraries. The plugin displays a list of all installed java
libraries to the user.
The user can now import libraries from this list into his project.
Along to the library
available javadocs and sourcecode of the library gets imported as well.

My thoughts about the requirements and the design.

The plugin should use a white-list to figure out which packages should be taken
into account. This list must be extensible by the user.

The first big design decision is if the plugin should use a data backend (i.e. a
database or a script which is responsible to provide the data) or accesses the
information on its own.
I think the direct solution would be easier to use because only the Eclipse
plugin needs to be installed.
The other option with the data backend could be reused for a future Netbeans
plugin. Another advantage is that it could be extended for other languages than
java. The major disadvantage is that the backend must be installed separately
via emerge, tough.

The next important aspect, which I take a closer look at, is the
information retriveal.
 In my opinion there are several possible ways to retrieve the information.
  * using a database with all installed and relevant java packages
      + with a database the plugin has instant access which packages
are installed
        an which are not.
       - the database  must be kept up to date
  * searching the /usr/share/ directory to find the packages
      + no further information needed, all information is gathered when needed
       - information retrival might take some time which can be anoying.

If a database is chosen where does the data come from and how is it
kept up to date.
 Some possible options are:
 * use the library from eix(which adds eix as dependency)
 * generate a database on installation and keep it up to date with:
  + hook in portage which adds or removes entry to db if package from
whitelist is
  + manually refresh the db from within the plugin

I think all these options are possible with a backed and the direct
access from the plugin.

Now to the eclipse plugin itself.
I haven't thought too much about the Interface itself but some general thoughts
The interface should be fairly easy. All installed packages are listed
and can be enabled
with a simple ckeckbox.
Most likely the dialog will be launched through the "Import..."
functionality and if possible
in add Library in the project properties.

Here are some requirement which I think they might be very useful
 * An extensible whitelist should be used
 * Additional to the libraries itself it should be possible to attach
javadocs and source files
 * option to copy into the workspace/project directory
 * option to update the libraries when a new version is emerged
 * it should be possible to install new packages directly or at least
launch the installation

What are your thought about this project and my thought about it?

At the end some information about me.

As said before I am from Austria but currently  I am in Norway on an
exchange year. I am
24 years old. Currently I am doing my master in Telematics in Graz.
Telematic is a
combination of computer science and electrical engineering. My majors
are information
security and artificial intelligence.
I really like to code. I am using Gentoo since about 4 years and I
really love it.

I have a good knowledge in Java but I have never written a Eclipse plugin.
As said I am using Gentoo since about 4 years but just as a user. So i
have no knowledge
about the deep internals of Gentoo.

I am looking forward to your thoughts and suggestions

I should be around in irc @ #gentoo-soc.


[1] http://www.gentoo.org/proj/en/userrel/soc/ideas.xml#doc_chap2_sect21