1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
|
#include "include/layout.wml"
##
#
# Special Tags
#
# <task
# title="task title"
# contact="contact person"
# skills="..."
# estimation="..."
# >
# ... task description ...
# </task>
# the task counter
#
<set-var __TASKSEQCNT=1>
<define-tag task-section endtag=required>
<preserve name>
<set-var %attributes>
{#TASKINDEX#:
<boxitem>
<!---boxtitle--->
<strong><get-var __TASKSEQCNT>. <get-var name></strong> <br>
<!---/boxtitle--->
:#TASKINDEX#}
<boxtitle><get-var __TASKSEQCNT>. <get-var name></boxtitle>
<set-var __TASKCNT=1>
%body
{#TASKINDEX#:
</boxitem>
<br>
:#TASKINDEX#}
<increment __TASKSEQCNT>
<restore name>
</define-tag>
<define-tag task endtag=required>
<preserve title>
<preserve contact>
<preserve skills>
<preserve estimation>
<set-var %attributes>
{#TASKINDEX#:
<!---strong--><a href="tasks.html#task<get-var __TASKSEQCNT>_<get-var __TASKCNT>"><get-var __TASKSEQCNT>.<get-var __TASKCNT> <get-var title></a><!---/strong--> (<get-var estimation>)<br>
:#TASKINDEX#}
<boxitem>
<h3><a name="task<get-var __TASKSEQCNT>_<get-var __TASKCNT>"><get-var __TASKSEQCNT>.<get-var __TASKCNT> <get-var title></a></h3>
<table border="0">
<tr><td valign="top"><strong>Description:</strong></td><td>%body</td></tr>
<tr><td><strong>Skills:</strong></td><td><get-var skills></td></tr>
<tr><td><strong>Estimated time:</strong></td><td><get-var estimation></td></tr>
<tr><td><strong>Contact person:</strong></td><td><get-var contact></td></tr>
</table>
</boxitem>
<increment __TASKCNT>
<restore estimation>
<restore skills>
<restore contact>
<restore title>
</define-tag>
<define-tag sb>
Sascha Brawer
</define-tag>
<define-tag mw>
Mark Wielaard
</define-tag>
<define-tag pr>
Patrik Reali
</define-tag>
<define-tag cm>
Casey Marshall
</define-tag>
<define-tag dt>
Dalibor Topic
</define-tag>
<define-tag mk>
Michael Koch
</define-tag>
<set-var last-modified-author="prk">
<subject "GNU Classpath Tasklist">
<h1>GNU Classpath Tasklist</h1>
<box>
<boxitem>
This list is a collection of tasks for helping GNU Classpath's progress. They are a good starting point if you would like to help in producing a complete and high-quality free Java implementation.
<p>Another source of inspiration are GNU Classpath's <createlink name="task list" url="http://savannah.gnu.org/pm/?group=classpath"> and <createlink name="patch list" url="http://savannah.gnu.org/patch/?group=classpath"> on Savannah, though these are usually meant for the project members.
</boxitem>
<boxtitle>Index</boxtitle>
{#TASKINDEX#}
<task-section name="Graphics">
<task
title="javax.imageio"
estimation="2 weeks"
skills=""
contact="<sb> or <mk>"
>
Write an implementation of the javax.imageio framework.
</task>
<task
title="Constructive Area Geometry"
estimation="6 weeks (?)."
skills="Computational geometry skills"
contact="<sb>"
>
Implement java.awt.geom.Area. This would be useful for some
graphics applications.
</task>
<task
title="Composite Contexts"
estimation="2 days for each operator"
skills="It helps if you are familiar with the java.awt.image framework."
contact="<sb>"
>
Implement some CompositeContexts for Porter/Duff operators on raster
images. This would be useful for supporting 2D graphics. See
java.awt.AlphaComposite and its createContext method.
</task>
</task-section>
<task-section name="CORBA">
<task
title="Help with CORBA implementation"
estimation="This depends from the sub-task you pick."
skills="Know or be ready to read the OMG documentation."
contact="Audrius Meskauskas"
>
The development of CORBA in Classpath project have reached
the stage of surely incomplete, but working prototype. A number of CORBA
related tasks are available. If you are not a CORBA expert, you should be ready
to learn by reading the OMG specifications and probably by writing some
relatively simple classes.
</task>
</task-section>
<task-section name="Testing">
<task
title="Make Mauve an application"
estimation=""
skills=""
contact="<pr>"
>
On some environments, it is not possible to run shell scripts
because there is no shell. Make the Mauve test suite a self-contained
application (one big JAR file).
</task>
<task
title="Write Mauve tests"
estimation=""
skills=""
contact="<mw>"
>
Write Mauve tests.
</task>
<task
title="Mauve tests for javax.image.io"
estimation="1 week"
skills=""
contact="<sb>"
>
<p>Write Mauve tests for reading in images. You could use the test images
at libpng.org and write Mauve testlets that load each image from
a file. Compute a hash (such as SHA-1) over the contents of the
DataBuffer. If the hash matches, the test succeeds.
</p><p>
Note that we don't have javax.imageio yet, so you'd have to develop
this with the Sun JDK.
</p>
</task>
<task
title="Generator for Mauve tests"
estimation="2 weeks (prototype) + 2 weeks (tuning)"
skills=""
contact="<dt>"
>
Write a program which automatically generates basic Mauve tests.
</task>
</task-section>
<task-section name="Automation">
<task
title="Script for running regression tests"
estimation="1 week"
skills="???"
contact=""
>
Write a script that once a night checks out Classpath from cvs,
compiles it, runs the Mauve test suite (also from cvs) on it
using some free JVM (e.g. Kissme), and posts the results to
some web site. For comparison, it would be very helpful if the
same Mauve testlets were also run with a current Sun JVM.
</task>
<task
title="Integrate Classpath testsuite into Mauve"
estimation=""
skills=""
contact="<mw>"
>
Classpath has a rather small number of tests in the subdirectories
test/ and testsuite/. Look through these tests and check whether the
same functionality is already tested by Mauve. If not, write a
Mauve testlet and submit it to mauve-patches@sources.redhat.com <mailto:mauve-patches@sources.redhat.com>.
The goal is to remove the test suite from Classpath.
</task>
<task
title="Script for running Japitools"
estimation="1 week"
skills=""
contact="???"
>
Write a script that once a night checks out Classpath from cvs,
runs Japitools on it, and posts the results on some web site.
</task>
<task
title="Script for running gjdoc"
estimation="1 week"
skills=""
contact=""
>
Write a script that once a night checks out Classpath from cvs,
runs gjdoc on it, and posts the generated documentation on some
web site. While you're at it, fix gjdoc so it copies embedded
documentation images (classpath-tools support request #102205).
</task>
<task
title="JAR file verification"
estimation=""
skills=""
contact="<mw>"
>
</task>
</task-section>
<task-section name="Native stuff">
<task
title="Libiconv Service Provider for java.nio.charset"
estimation="2 weeks"
skills=""
contact=""
>Write a service provider for java.nio.charset that uses the
libiconv library for converting character encodings to and
from UTF-16. This would be a first step for replacing
gnu.java.io.EncodingManager by the java.nio.charset framework,
which is richer and not specific to Classpath.
</task>
</task-section>
<task-section name="Security">
<task
title="Security Audit"
estimation=""
skills=""
contact=""
>We need to make a pass over the Classpath Java source, making sure
that all required calls to the SecurityManager are in place. At the same
time we need to ensure that there is no way to get around
SecurityManager by directly calling code in gnu.*.
</task>
<task
title="Security Testing"
estimation=""
skills=""
contact=""
>We need Mauve tests for all the calls to SecurityManager.
Additionally, enabling a security manager will probably reveal
code in Classpath that needs to be wrapped in AccessController.doPrivileged().
</task>
</task-section>
<task-section name="Related Projects">
<task
title="Help GNU Crypto"
estimation=""
skills=""
contact="<cm>"
>
</task>
<task
title="Help Classpath-x"
estimation=""
skills=""
contact=""
>
??? (maybe this should be more specific, e.g. "Write an
IMAP plug-in for javax.mail on top of inetlib" (if they want
this at all)
</task-section>
</box>
|