Looking For

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.

  • Why Pluglets?

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

    • Platform neutral

    • Writing a Plug-in in Java instantly makes it available on all platforms on which a Java Virtual Machine is available.

    • Compact

    • For a given functionality, Java bytecode is typically smaller than compiled native code, so the time needed to download a Plug-in is reduced.

  • Pluglets vs Applets

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

  • How?

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

  • Design Goals

  • 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

References