harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Harmony Wiki] Update of "KapilaLane/My GSOC Proposal - 2010" by KapilaLane
Date Sun, 04 Apr 2010 03:38:21 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Harmony Wiki" for change notification.

The "KapilaLane/My GSOC Proposal - 2010" page has been changed by KapilaLane.
http://wiki.apache.org/harmony/KapilaLane/My%20GSOC%20Proposal%20-%202010?action=diff&rev1=1&rev2=2

--------------------------------------------------

- ##master-page:HomepageReadPageTemplate
- ##master-date:Unknown-Date
- #format wiki
- #language en
- ...
+ =Google Summer of Code 2010 - Project Proposal=
+ ------------------------------------------------------------------------------
+ ||Project||||Implement the javadoc Command Line Tool ||
+ ||Student Name||||Kapila Lanerolle||
+ ||E-mail||||klanerolle@gmail.com||
+ ||Time Zone||||UTC+5:30(SriLanka)||
  
+ ==Abstract:==
+ 
+ Harmony’s aim is certifies implementation of the Java Platform Standard
+ Edition. But it is missing several of the useful tools which in JDK, JAR is
+ one of it. The JAVA platform widely used over the world, but it makes
+ programmer programming easier and user use harder. JAR tools have solved
+ this problem. The JAR tools can aggregates lots of files into one file. So
+ developers can easily use .jar files to distribute Java classes and
+ associated metadata. User also can use the tools like JAVAW to execute it.
+ This project’s aim is to implement a tool like JAR in Harmony platform.
+ 
+ 
+ Detailed Description: Introduction
+ 
+ Java Platform, Standard Edition or Java SE is a widely used platform for
+ programming in the Java language. Apache Harmony is the Java SE project of
+ the Apache Software Foundation. The aim of the project is to produce a large
+ and healthy community of those interested in runtime platforms tasked with
+ creation blew: 1).A compatible, independent implementation of the Java SE 5
+ JDK under the Apache License v2. 2).A community-developed modular runtime
+ (VM and class library) architecture. But Harmony is missing several of the
+ tools that ship with the JDK, including jar, jconsole and javaws. This
+ project’s aim is to implement a tool like JAR in Harmony platform.
+ 
+ 
+ JAR stands for Java Archive. It's a file format based on the popular ZIP
+ file format and is used for aggregating many files into one. Although JAR
+ can be used as a general archiving tool, the primary motivation for its
+ development was so that Java applets and their requisite components (.class
+ files, images and sounds) can be downloaded to a browser in a single HTTP
+ transaction, rather than opening a new connection for each piece. In this
+ way it can let user easily used. This greatly improves the speed with which
+ an applet can be loaded onto a web page and begin functioning. The JAR
+ format also supports compression, which reduces the size of the file and
+ improves download time still further. Additionally, individual entries in a
+ JAR file may be digitally signed by the applet author to authenticate their
+ origin. JAR consists of a zip archive, as defined by PKWARE, containing a
+ manifest file and potentially signature files.
+ 
+ 
+ Project Goal
+ 
+ The Harmony development kit will compatible the JDK environment, so the JAR
+ tools in HDK also will fully compatible that tools in JDK. So we will
+ consult the JAR file specification to implement our tools.
+ 
+ 
+ Must have functions 1). Creating a JAR File
+ 
+ The basic format of the command for creating a JAR file is: jar cf jar-file
+ input-file(s) The options and arguments used in this command are: The c
+ option indicates that you want to create a JAR file. The f option indicates
+ that you want the output to go to a file rather than to stdout. jar-file is
+ the name that you want the resulting JAR file to have. You can use any
+ filename for a JAR file. By convention, JAR filenames are given a .jar
+ extension, though this is not required. The input-file(s) argument is a
+ space-separated list of one or more files that you want to include in your
+ JAR file. The input-file(s) argument can contain the wildcard * symbol. If
+ any of the "input-files" are directories, the contents of those directories
+ are added to the JAR archive recursively. The c and f options can appear in
+ either order, but there must not be any space between them.
+ 
+ 
+ This command will generate a compressed JAR file and place it in the current
+ directory. The command will also generate a default manifest file for the
+ JAR archive.
+ 
+ 
+ You can add any of these additional options to the cf options of the basic
+ command: v Produces verbose output on stdout while the JAR file is being
+ built. The verbose output tells you the name of each file as it's added to
+ the JAR file. 0 (zero) Indicates that you don't want the JAR file to be
+ compressed. M Indicates that the default manifest file should not be
+ produced. m Used to include manifest information from an existing manifest
+ file. –C To change directories during execution of the command.
+ 2). Viewing the Contents of a JAR File
+ 
+ The basic format of the command for viewing the contents of a JAR file is:
+ jar tf jar-file Let's look at the options and argument used in this command:
+ The t option indicates that you want to view the table of contents of the
+ JAR file. The f option indicates that the JAR file whose contents are to be
+ viewed is specified on the command line. The jar-file argument is the path
+ and name of the JAR file whose contents you want to view. The t and f
+ options can appear in either order, but there must not be any space between
+ them. This command will display the JAR file's table of contents to stdout.
+ You can optionally add the verbose option, v, to produce additional
+ information about file sizes and last-modified dates in the output.
+ 
+ 
+ 3). Extracting the Contents of a JAR File
+ 
+ The basic command to use for extracting the contents of a JAR file is: jar
+ xf jar-file [archived-file(s)] Let's look at the options and arguments in
+ this command: The x option indicates that you want to extract files from the
+ JAR archive. The f options indicates that the JAR file from which files are
+ to be extracted is specified on the command line, rather than through stdin.
+ The jar-file argument is the filename (or path and filename) of the JAR file
+ from which to extract files. archived-file(s) is an optional argument
+ consisting of a space-separated list of the files to be extracted from the
+ archive. If this argument is not present, the Jar tool will extract all the
+ files in the archive. As usual, the order in which the x and f options
+ appear in the command doesn't matter, but there must not be a space between
+ them. When extracting files, the Jar tool makes copies of the desired files
+ and writes them to the current directory, reproducing the directory
+ structure that the files have in the archive. The original JAR file remains
+ unchanged.
+ 4). Updating a JAR File
+ 
+ The Jar tool provides a u option which you can use to update the contents of
+ an existing JAR file by modifying its manifest or by adding files. The basic
+ command for adding files has this format: jar uf jar-file input-file(s) In
+ this command: The u option indicates that you want to update an existing JAR
+ file. The f option indicates that the JAR file to update is specified on the
+ command line. jar-file is the existing JAR file that's to be updated.
+ input-file(s) is a space-deliminated list of one or more files that you want
+ to add to the Jar file. Any files already in the archive having the same
+ pathname as a file being added will be overwritten. When creating a new JAR
+ file, you can optionally use the -C option to indicate a change of
+ directory.
+ 
+ 
+ Should have functions 1.) Signing JAR Files
+ 
+ You use the JAR Signing and Verification Tool to sign JAR files. You invoke
+ the JAR Signing and Verification Tool by using the jarsigner command, so
+ we'll refer to it as "Jarsigner" for short.The basic form of the command for
+ signing a JAR file is jarsigner jar-file alias In this command: jar-file is
+ the pathname of the JAR file that's to be signed. alias is the alias
+ identifying the private key that's to be used to sign the JAR file, and the
+ key's associated certificate. The Jarsigner tool will prompt you for the
+ passwords for the keystore and alias. This basic form of the command assumes
+ that the keystore to be used is in a file named .keystore in your home
+ directory. It will create signature and signature block files with names
+ x.SF and x.DSA respectively, where x is the first eight letters of the
+ alias, all converted to upper case. This basic command will overwrite the
+ original JAR file with the signed JAR file.
+ 
+ Jarsigner Command Options: -keystore url Specifies a keystore to be used if
+ you don't want to use the .keystore default database. -storepass password
+ Allows you to enter the keystore's password on the command line rather than
+ be prompted for it. -keypass password     Allows you to enter your alias's
+ password on the command line rather than be prompted for it. -sigfile
+ file    Specifies the base name for the .SF and .DSA files if you don't want
+ the base name to be taken from your alias. file must be composed only of
+ upper case letters (A-Z), numerals (0-9), hyphen (-), and underscore (_).
+ -signedjar file    Specifies the name of the signed JAR file to be generated
+ if you don't want the original unsigned file to be overwritten with the
+ signed file.
+ 2). Verifying Signed JAR Files
+ 
+ Typically, verification of signed JAR files will be the responsibility of
+ your JavaTM Runtime Environment. Your browser will verify signed applets
+ that it downloads. Signed applications invoked with the -jar option of the
+ interpreter will be verified by the runtime environment. However, you can
+ verify signed JAR files yourself by using the Jarsigner tool. You might want
+ to do this, for example, to test a signed JAR file that you've prepared. The
+ basic command to use for verifying a signed JAR file is: jarsigner -verify
+ jar-file This command will verify the JAR file's signature and ensure that
+ the files in the archive haven't changed since it was signed. You'll see the
+ following message if the verification is successful: jar verified. If you
+ try to verify an unsigned JAR file, the following message results: jar is
+ unsigned. (signatures missing or not parsable) If the verification fails, an
+ appropriate message is displayed. For example, if the contents of a JAR file
+ have changed since the JAR file was signed, a message similar to the
+ following will result if you try to verify the file:
+ jarsigner: java.lang.SecurityException: invalid SHA1
+ signature file digest for test/classes/Manifest.class
+ Wanna have functions 1.) java.util.jar implement
+ 
+ Provides classes for reading and writing the JAR (Java ARchive) file format,
+ which is based on the standard ZIP file format with an optional manifest
+ file. Detailed at
+ http://java.sun.com/javase/6/docs/api/java/util/jar/package-summary.html
+ Project Planning
+ 
+ April 20 ~ May 22: Get accepted student proposals announcement on the Google
+ Summer of Code 2009 site. Get touch with mentor and get the advice for
+ background knowledge, and be familiar with coding environment. Finish my
+ graduation papers.
+ May 23 ~ Jun 1: Finish creating a JAR File part
+ Jun 2 ~ Jun 11: Finish viewing the Contents of a JAR File part
+ Jun 12 ~ Jun 21: Finish extracting the Contents of a JAR File part
+ Jun 22 ~ Jul 1: Finish updating a JAR File part
+ *Jul 2 ~ Jul 12: (Milestone) Debug, finish mid-term report*
+ Jul 13 ~ Jul 19: Review the mid-term project, study the technique, get
+ project evaluation
+ Jul 20 ~ Jul 26: Finish signing JAR Files part
+ Jul 27 ~ August 2: Finish verifying Signed JAR Files part
+ August 3 ~ August 14: Finish java.util.jar implement part
+ *August 15 ~ August 22: (Milestone) Debug, finish final report*
+ August 23 ~ August 26: Get Final Results for the Program Announced
+ 
+ 
+ Additional Information:
+ 
+ Hi, I'm Yanxin from Fudan University, Shanghai, China. My major is Computer
+ Science. I got touch with computer since my childhood, from that time I fall
+ into the computer's world. In the high school I meet the teacher who tough
+ us programing skills systematically. After learning the algorithm and data
+ structure, I win the Information Olympic competition at top 0.05%, thus got
+ the admit of Fudan University.
+ 
+ 
+ At university, I join lots of students' union, and also study the newest
+ technique which don't been tough in school. Last summer I got a chance to be
+ a intern at IBM China. I'm very familiar with JAVA language, and develop
+ some of the projects on that environment. Like use Struts to develop library
+ management system, or use Jpcap to develop ReliableUDP implement with slide
+ window. That was why I choose Harmony project.
+ 
+ 
+ I usually use some of open source softwares, but have do nothing to them. I
+ wish this Google Summer of Code could give me a chance to be a contributors.
+ 
+ Reference and Resources
+ 
+ 1. Harmony introduction: http://en.wikipedia.org/wiki/Apache_Harmony
+ 2. Harmony details: http://harmony.apache.org/
+ 3. JAR introduction:
+ http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html 
+ 
+ Best regards
+ 
+ Kapila Lanerolle,
+ Computer Science & Engineering,
+ University of Moratuwa,
+ SriLanka.
+ 

Mime
View raw message