harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tomek Maciejewski <tomek.maciejew...@gmail.com>
Subject [GSoC] GUI for jar tool
Date Wed, 08 Apr 2009 21:29:39 GMT

I have got an email from Mark that it was not your intention to propose 
jar tool as a part of GSoC program, because of the simplicity of this 
task. I agree with you that it is quiet simple task, maybe too simple 
;-) However I was asked to provide some detailed information about the 
GUI tool I was intended to provide (as an addition to console one). I 
have written down some major functionality of such interface. I must 
mention that you can find some of the descriptions not complete, that’s 
because I have planned it earlier, only as a small addition and haven’t 
had enough time to create a coherent vision. I would like to know what 
do out think about it? Will Apache Harmony benefit from such kind of 
tool? Or maybe it is completely unnecessary? ;)

	This tool would consist of two main parts: file navigator and main 
window. As a file navigator I understand the directories tree, as a main 
window – the normal window to display files (similar to the one from “My 
computer”, etc.). There would be also some toolbar and some menu. Below, 
you can find major use cases I have thought about:

1. Creating JAR file
This is one of the basic functionalities. User will be able to select 
proper file and directories he wants to pack into archive. Then he will 
choose ‘Create JAR’ option from menu or toolbar. The settings window 
will appear and user will be able to specify several options, like:
- Name and location of output file
- JAR index creation (yes/no)
- JAR signing settings
- Set Manifest and entry point values
- Create optional JAD descriptor

2. Listing JAR file
When user marks the JAR file in navigator, he will see its content 
(included files and directories) in main window, and will be able to 
navigate through it.

3. Extracting from JAR
Extracting process will be similar to the JAR listing. But, user will be 
able to mark whole JAR or just a subset of included resources, and 
choose “Extract from” button. He will be also able to specify desired 

4. Updating the JAR file
User will be able to drag&drop additional files to JAR archive or remove 
the existing ones. It will be also possible to change Manifest, generate 
or remove index or sign a JAR.

5. Find class in JAR
GUI will provide option to search existing JAR files for some specified 
class. User will select JARs and specify name of the class he want to 
search for. If program finds the specified class, it will notify user 
about its location.

6. JAR repositories
The last functionality will be possibility to group JAR files into JAR 
repository. User will be able to create one or more virtual repositories 
aggregating JAR archives. Such solution will be quiet comfortable for 
end users, and will also provides fast way to search JARs for specified 
class, because it will be possible to invoke search on logic repository 
(all JARs in repository).

Summing up, I think that for some cases console interface (like the one 
provided by Sun) is slightly better, especially if you are familiar with 
it. But there exist some cases where additional GUI tool can make 
difference. The most popular case is when you want to integrate 
functionality of several tools like jar, jarsigner, jar preverification 
tool etc. The next advantage is possibility to save your preferred 
settings to reuse them in future (like information about JAR 
repositories). Additionally GUI may be a good start point for users, who 
start with Java. In Sun’s JVM you can find several GUI tools, like 
jconsole or visualvm. Of course these tools are little different, and it 
would be hard to imagine console version of visualvm ;-) But it is 
commonly known that GUI tools are quiet attractive for people (more than 


View raw message