Java TV
Java TV is the software framework used for a set-top box, for which the running of Xlets. It currently is deployed only on the Connected Device Configuration, specifically for iTV applications development.
The API includes the Xlet classes in the package javax.tv.xlet . Other packages of the public API include
- javax.tv.graphics - provides a simple rendering canvas
- javax.tv.locator - provide a locator in the style of a URL for services and media, such as service:/SERV1
- javax.tv.service - define a mechanism for service information (SI) database and APIs representing the SI elements; which amounts to TV channel and media available for playback.
Sun currently provides supports Java TV only on Java Platform, Micro Edition. The framework is quite general but for some subjects, such as locators, it is in effect superseded by other locator standards on platforms such as BD-J. [1][2][3]
Criticisms
While the framework is general, Sun currently provides support only on Java Platform, Micro Edition. For some subjects, such as media locators, it is in effect superseded by other locator standards on platforms such as BD-J. A point of confusion is that in platforms supported as of 2008, examples such as the SvcDispXlet example in this to Java TV circa 2001 are still not deployable because it uses AWT widgets such as java.awt.Button . Most such platforms and BD-J implement Personal Basis Profile with no AWT widgets, as opposed to Personal Profile which includes the widgets.[4]
Sun's reference implementation for Java TV attempts to limit its exposure to support issues to the full Java Media Framework by having its own small version of JMF that it internally referred to as "jmflite". As with the limitations of the MIDP emulators that Sun provides, the Java TV reference implementation provide by Sun has not been updated to make provisions for later JDK's such as removing calls to Thread.stop() such as in the jmflist com.sun.tv.media.util.MediaThread class. The Thread.stop() method was made a "final" method in Java 1.5 (meaning that classes which extend Thread and override stop() will fail at runtime in a JRE 1.5 - more specifically at class load time with a java.lang.VerifyError). This implies that Sun has not yet committed to public plans or a roadmap for the notion that Java ME will ever go beyond JRE 1.3. To be fair, if the upgrade of Java ME to JDK 1.5 or 1.6 ever happens, it will require some work on the part of all vendors of Java ME-enabled devices.[5][6]
Notes
- ^ Java ME Technology - Java TV API - includes Sun's Reference Implementation
- ^ Java TV API 1.1 (JSR-927) online Javadocs
- ^ The JavaTV tutorial
- ^ Introduction to Digital TV Applications Programming By Monica Pawlan, February 2001
- ^ JRE 1.5 Thread.stop() javadoc
- ^ Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated?