Xlet

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

An Xlet is very similar to a Java applet and is originally introduced in Sun's Java TV specification to support applications for Digital TV. Though Xlet looks superficially different from other application models in Java such as applet and MIDlet, it is actually meant to be a generalization of such models. X in Xlet means an unknown, meaning Xlet may be used in any context rather than specific to Digital TV. Accordingly Xlet has later been re-introduced as a part of Personal Basis Profile in javax.microedition.xlet package, which is slightly different from the original design in Java TV specification.

Xlets provision of a pause/resume feature is essential for a set-top box (STB) environment, which has limited memory resources and restrictions on bandwidth from the headend provider. The current practice and intent of the Xlet framework is to provide downloadable applications for Personal Basis Profile (PBP) platforms. In particular, the BD-J platform uses Xlets as its programming framework.[1]

While Sun has provided a Java TV reference implementation within which they provide a simple Xlet runner called RunXlet, at least one other open-source effort to implement an Xlet run has been made.[2]

Code examples

The interface for an Xlet is defined in the javax.tv.xlet package:

public interface Xlet {
  public void initXlet(XletContext ctx)
    throws XletStateChangeException;

  public void startXlet()
    throws XletStateChangeException;

  public void pauseXlet();

  public void destroyXlet(boolean unconditional)
    throws XletStateChangeException;
}

thus an example of a stub Xlet is

import javax.tv.xlet.XletStateChangeException;
import javax.tv.xlet.XletContext;
import javax.tv.xlet.Xlet;

public class BasicXlet implements Xlet {
    public BasicXlet () {}
    public void initXlet (XletContext context) throws XletStateChangeException {}
    public void startXlet () throws XletStateChangeException {}
    public void pauseXlet () {}
    public void destroyXlet (boolean unconditional) throws XletStateChangeException {}
}

Notes

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. XleTView - an open-source project to implement a Java-based Xlet runner, also supporting Multimedia Home Platform (MHP) (not updated since 2004, based on JRE 1.1.8)