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