1 |
Hey everyone! |
2 |
|
3 |
My name is Bernd. I am from Austria and would like to participate in the GSoC |
4 |
for Gentoo. |
5 |
|
6 |
I have already posted this on the gentoo-soc mailing list but I think |
7 |
some of you |
8 |
guys might be interested in this project and can give me advices or comments |
9 |
on my ideas. I would really appreciate any help from you. |
10 |
|
11 |
I would like to write an Eclipse Plugin which enables Eclipse to |
12 |
import installed |
13 |
java libraries into java projects[1]. |
14 |
|
15 |
The goal of this project is to create a plugin for Eclipse which lets |
16 |
the user easily |
17 |
import libraries. The plugin displays a list of all installed java |
18 |
libraries to the user. |
19 |
The user can now import libraries from this list into his project. |
20 |
Along to the library |
21 |
available javadocs and sourcecode of the library gets imported as well. |
22 |
|
23 |
My thoughts about the requirements and the design. |
24 |
|
25 |
The plugin should use a white-list to figure out which packages should be taken |
26 |
into account. This list must be extensible by the user. |
27 |
|
28 |
The first big design decision is if the plugin should use a data backend (i.e. a |
29 |
database or a script which is responsible to provide the data) or accesses the |
30 |
information on its own. |
31 |
I think the direct solution would be easier to use because only the Eclipse |
32 |
plugin needs to be installed. |
33 |
The other option with the data backend could be reused for a future Netbeans |
34 |
plugin. Another advantage is that it could be extended for other languages than |
35 |
java. The major disadvantage is that the backend must be installed separately |
36 |
via emerge, tough. |
37 |
|
38 |
The next important aspect, which I take a closer look at, is the |
39 |
information retriveal. |
40 |
In my opinion there are several possible ways to retrieve the information. |
41 |
* using a database with all installed and relevant java packages |
42 |
+ with a database the plugin has instant access which packages |
43 |
are installed |
44 |
an which are not. |
45 |
- the database must be kept up to date |
46 |
* searching the /usr/share/ directory to find the packages |
47 |
+ no further information needed, all information is gathered when needed |
48 |
- information retrival might take some time which can be anoying. |
49 |
|
50 |
If a database is chosen where does the data come from and how is it |
51 |
kept up to date. |
52 |
Some possible options are: |
53 |
* use the library from eix(which adds eix as dependency) |
54 |
* generate a database on installation and keep it up to date with: |
55 |
+ hook in portage which adds or removes entry to db if package from |
56 |
whitelist is |
57 |
installed |
58 |
+ manually refresh the db from within the plugin |
59 |
|
60 |
I think all these options are possible with a backed and the direct |
61 |
access from the plugin. |
62 |
|
63 |
Now to the eclipse plugin itself. |
64 |
I haven't thought too much about the Interface itself but some general thoughts |
65 |
The interface should be fairly easy. All installed packages are listed |
66 |
and can be enabled |
67 |
with a simple ckeckbox. |
68 |
Most likely the dialog will be launched through the "Import..." |
69 |
functionality and if possible |
70 |
in add Library in the project properties. |
71 |
|
72 |
|
73 |
Here are some requirement which I think they might be very useful |
74 |
* An extensible whitelist should be used |
75 |
* Additional to the libraries itself it should be possible to attach |
76 |
javadocs and source files |
77 |
* option to copy into the workspace/project directory |
78 |
* option to update the libraries when a new version is emerged |
79 |
* it should be possible to install new packages directly or at least |
80 |
launch the installation |
81 |
process |
82 |
|
83 |
|
84 |
What are your thought about this project and my thought about it? |
85 |
|
86 |
At the end some information about me. |
87 |
|
88 |
As said before I am from Austria but currently I am in Norway on an |
89 |
exchange year. I am |
90 |
24 years old. Currently I am doing my master in Telematics in Graz. |
91 |
Telematic is a |
92 |
combination of computer science and electrical engineering. My majors |
93 |
are information |
94 |
security and artificial intelligence. |
95 |
I really like to code. I am using Gentoo since about 4 years and I |
96 |
really love it. |
97 |
|
98 |
I have a good knowledge in Java but I have never written a Eclipse plugin. |
99 |
As said I am using Gentoo since about 4 years but just as a user. So i |
100 |
have no knowledge |
101 |
about the deep internals of Gentoo. |
102 |
|
103 |
|
104 |
I am looking forward to your thoughts and suggestions |
105 |
|
106 |
I should be around in irc @ #gentoo-soc. |
107 |
|
108 |
Bernd |
109 |
|
110 |
|
111 |
[1] http://www.gentoo.org/proj/en/userrel/soc/ideas.xml#doc_chap2_sect21 |