| 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.
|
|---|