Java Pluglet API
created in 1999 by Igor Kushnirskiy & Akhil Arora, revived and maintained in 2006 by Ed Burns
A Pluglet is a Plug-in that is written in the JavaTM programming language. A Pluglet is similar in concept to a Servlet, with the difference that a Servlet produces content, whereas a Pluglet consumes it. The Java Pluglet API is a close 1:1 implementation of the new C++ Plug-in API in Mozilla.
You can download the latest pluglet binary by clicking here.
- NEW 20071222:Now you can call (somewhat) arbitrary methods on the Pluglet directly from JavaScript! Please see the release notes.
- Overview
- Requirements
- Getting and Building the Code
- Pluglets Service Binaries
- Demos and Screenshots
- References
- Why Pluglets?
- Platform neutral
- Compact
- Pluglets vs Applets
- How?
- Design Goals
Pluglets are part of the Blackwood
project. For a Plug-in developer, choosing to extend Mozilla via a
Java Pluglet brings the advantages of the Java platform to
Pluglets.
Writing a Plug-in in Java instantly makes it available on all
platforms on which a Java Virtual Machine is
available.
For a given functionality, Java bytecode is typically smaller
than compiled native code, so the time needed to download a
Plug-in is reduced.
A frequently asked question is how are Pluglets different from
Applets. There has been a discussion of this on
MozillaZine.
Basically there are two differences. A Pluglet is launched when
a certain Content Type is encountered, whereas an Applet is
launched when an <applet> tag is encountered. The other
difference is that Pluglets are installed onto disk and unlike
Applets, are not downloaded at each invocation.
Key to enabling Pluglets is the Pluglet Engine. The Pluglet
Engine appears to Mozilla like an XPCOM service.
When Mozilla can not get a handler for some MIME type, the Pluglet Engine would
be asked for it. It simply delegates to the appropriate Pluglet.
Some JNI is involved to go from C++ to Java and back again.
It was a conscious design decision to have the Pluglet API
resemble its C++ counterpart as much as possible, while being
able to reflect all of its functionality to Java, so that
Plug-in writers will not have to learn yet another API. This
concern, in our opinion, outweighed other alternatives which
offered a cleaner, more Java-like look. Support for other
Plug-in APIs can be easily added by contributing adaptors.
Requirements
This section describes the requirements you need before building the pluglets project.- Java SE 5 or later
- A specific version of Firefox 2