1 | IcedTea-Web
|
---|
2 | ===========
|
---|
3 |
|
---|
4 | The IcedTea-Web project provides a Free Software web browser plugin
|
---|
5 | for running applets written in the Java programming language and an
|
---|
6 | implementation of Java Web Start, originally based on the NetX
|
---|
7 | project.
|
---|
8 |
|
---|
9 | Homepage (wiki):
|
---|
10 | http://icedtea.classpath.org/
|
---|
11 |
|
---|
12 | Bugs (bugzilla):
|
---|
13 | http://icedtea.classpath.org/bugzilla
|
---|
14 |
|
---|
15 | Mailing List:
|
---|
16 | distro-pkg-dev@openjdk.java.net
|
---|
17 | http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev
|
---|
18 |
|
---|
19 | FAQ:
|
---|
20 | http://icedtea.classpath.org/wiki/FrequentlyAskedQuestions
|
---|
21 |
|
---|
22 | Anonymous Mercurial checkout:
|
---|
23 | hg clone http://icedtea.classpath.org/hg/icedtea-web
|
---|
24 |
|
---|
25 | NetX
|
---|
26 | ====
|
---|
27 |
|
---|
28 | NetX provides a drop-in replacement for javaws (Java Web Start). Since
|
---|
29 | upstream NetX is dormant, we will be hosting and modifying the sources
|
---|
30 | in the IcedTea-Web repository, particularly in the netx/net/sourceforge/jnlp
|
---|
31 | directory.
|
---|
32 |
|
---|
33 | IcedTea's NetX currently supports verification of signed jars, trusted
|
---|
34 | certificate storing, system certificate store checking, and provides
|
---|
35 | the services specified by the jnlp API.
|
---|
36 |
|
---|
37 | The Browser Plugin
|
---|
38 | ==================
|
---|
39 |
|
---|
40 | IcedTea-Web contains a Free Software browser plugin based on NPRuntime
|
---|
41 | called NPPlugin. By default, this will be built, and it can be turned
|
---|
42 | off using the -disable-plugin option.
|
---|
43 |
|
---|
44 | Building IcedTea-Web
|
---|
45 | ====================
|
---|
46 |
|
---|
47 | IcedTea-Web is built using the standard:
|
---|
48 |
|
---|
49 | $ ./autogen.sh (if building from Mercurial rather than a tarball)
|
---|
50 | $ ./configure
|
---|
51 | $ gmake
|
---|
52 | $ gmake install
|
---|
53 |
|
---|
54 | incantation. The build requirements are as follows:
|
---|
55 |
|
---|
56 | * A bootstrap JDK. At present, only IcedTea6 is supported.
|
---|
57 | * A C compiler (for the launchers).
|
---|
58 | * libX11
|
---|
59 | * zlib-devel
|
---|
60 |
|
---|
61 | Additionally, the plugin requires:
|
---|
62 |
|
---|
63 | * A C++ compiler
|
---|
64 | * firefox-devel
|
---|
65 | * xulrunner-devel
|
---|
66 |
|
---|
67 | The plugin can be disabled by passing --disable-plugin.
|
---|
68 |
|
---|
69 | The following optional dependencies enable additional features
|
---|
70 |
|
---|
71 | * rhino (enables support for using proxy auto config files)
|
---|
72 | * junit4 (enables unit tests)
|
---|
73 |
|
---|
74 | See ./configure --help if you need to override the defaults.
|
---|
75 |
|
---|
76 | The following locations are checked for a JDK:
|
---|
77 | * /usr/lib/jvm/java-openjdk
|
---|
78 | * /usr/lib/jvm/icedtea6
|
---|
79 | * /usr/lib/jvm/java-6-openjdk
|
---|
80 | * /usr/lib/jvm/openjdk
|
---|
81 | * /usr/lib/jvm/java-icedtea
|
---|
82 | * /usr/lib/jvm/java-gcj
|
---|
83 | * /usr/lib/jvm/gcj-jdk
|
---|
84 | * /usr/lib/jvm/cacao
|
---|
85 | in the order given above.
|
---|
86 |
|
---|
87 | At present, some of these options fail due to sun.* classes required
|
---|
88 | by IcedTea-Web. Upstream OpenJDK will only be able to compile
|
---|
89 | IcedTea-Web if the patch applet_hole.patch from IcedTea has been
|
---|
90 | applied.
|
---|
91 |
|
---|
92 | Most targets in IcedTea-Web create stamp files in the stamps directory
|
---|
93 | to determine what and when dependencies were compiled. Each target
|
---|
94 | has a corresponding clean-x target which removes the output and the
|
---|
95 | stamp file, allowing it to be rebuilt.
|
---|
96 |
|
---|
97 | Build Modification Options
|
---|
98 | ==========================
|
---|
99 |
|
---|
100 | The build process may be modified by passing the following options
|
---|
101 | to configure:
|
---|
102 |
|
---|
103 | * --disable-docs: Don't build the Javadoc documentation.
|
---|
104 | * --with-gcj: Compile ecj to native code with gcj prior to building.
|
---|
105 | * --with-ecj: Specify the location of a 'ecj' binary. By default, the path
|
---|
106 | is checked for ecj, ecj-3.1, ecj-3.2 and ecj-3.3.
|
---|
107 | * --with-javac: Specify the location of a 'javac' binary. By default, the path
|
---|
108 | is checked for javac.
|
---|
109 | * --with-jar: Specify the location of a 'jar' binary. By default, the path
|
---|
110 | is checked for gjar and jar.
|
---|
111 | * --with-ecj-jar: Specify the location of an ecj JAR file. By default, the
|
---|
112 | following paths are checked:
|
---|
113 | - /usr/share/java/eclipse-ecj.jar
|
---|
114 | - /usr/share/java/ecj.jar
|
---|
115 | - /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar
|
---|
116 |
|
---|
117 | Other options may be supplied which enable or disable new features.
|
---|
118 | These are documented fully in the relevant section below.
|
---|
119 |
|
---|
120 | * --disable-plugin: Don't build the browser plugin.
|
---|
121 | * --with-rhino: Specify the location of rhino jar
|
---|
122 | * --with-junit: Specify the location of the junit 4 jar
|
---|
123 |
|
---|
124 | Rhino Support
|
---|
125 | =============
|
---|
126 |
|
---|
127 | IcedTea-Web needs rhino for using Proxy Auto Config (PAC) files. If rhino is
|
---|
128 | not found, or explicitly disabled, then support for PAC files will be disabled.
|
---|
129 |
|
---|
130 | By default, the following paths are checked for rhino:
|
---|
131 | - /usr/share/java/js.jar
|
---|
132 | - /usr/share/rhino-1.6/lib/js.jar
|
---|
133 | - /usr/share/java/rhino.jar
|
---|
134 |
|
---|
135 | If a rhino jar is not found, rhino support is disabled. The --with-rhino build
|
---|
136 | option can be used to specify the location of the jar file. To explicitly
|
---|
137 | disable rhino use --with-rhino=no.
|
---|
138 |
|
---|
139 | JUnit Support
|
---|
140 | =============
|
---|
141 |
|
---|
142 | JUnit is needed for running some tests. It has no run-time impact.
|
---|
143 |
|
---|
144 | By default, the following paths are checked:
|
---|
145 | - /usr/share/java/junit4.jar
|
---|
146 |
|
---|
147 | If JUnit is not found, JUnit support is disabled. The --with-junit option can
|
---|
148 | be used to specify the location of the JUnit 4 jar. To disable JUnit support
|
---|
149 | explicitly, use --with-junit=no.
|
---|
150 |
|
---|
151 | A custom JUnit ouput formatter is supplied. This makes the output of JUnit
|
---|
152 | tests match the output of other tests. A simple 'Passed:' or 'FAILED:' is
|
---|
153 | printed out, followed by <TestClass>.<testMethod>. This is also the format used
|
---|
154 | by JTreg.
|
---|
155 |
|
---|
156 | Testing
|
---|
157 | =======
|
---|
158 |
|
---|
159 | A set of automated tests is supplied for IcedTea-Web. They can be run by using
|
---|
160 | 'make check'. Currently, this only tests a few parts of IcedTea-Web.
|
---|
161 |
|
---|
162 | The number and type of tests run by 'make check' may be affected by the build
|
---|
163 | options, including JUnit support and rhino support.
|
---|
164 |
|
---|
165 | A test suite is supplied for the browser plugin. It can be built
|
---|
166 | using 'make plugin-tests' and run by loading the HTML page specified
|
---|
167 | into a browser with the plugin installed.
|
---|
168 |
|
---|
169 | For debugging, the environment variable ICEDTEAPLUGIN_DEBUG should be
|
---|
170 | set to 'true'. This will produce output on the console from the C++
|
---|
171 | side, and output from the Java side in $HOME/.icedteaplugin/java.stdout
|
---|
172 | and $HOME/.icedteaplugin/java.stderr. It also starts the debug server
|
---|
173 | on port 8787.
|
---|