DVB-J (DVB-Java) applications are written in Java using the MHP API set and consist of a set of class files that are broadcast with a service. DVB-Java applications are known as "Xlets". This is a concept similar to applets for Web pages that have been introduced by Sun in the JavaTV specification. Like applets, the Xlet (cf. 9.2 Xlet Application) interface requires an external source (the application manager in the case of an MHP receiver) to start and stop an application.
MHP 1.0.x is based on the PersonalJAE specification23. PersonalJAE is short for PersonalJava Application Environment Version and in the following section referred to as PersonalJava. PersonalJava is a Java software development platform for mobile and embedded systems. It has been superseded by the J2ME CDC and CLDC, but still exists in many products. PersonalJava is closely equivalent to Java 1.1.8 regarding the libraries and features it contains. This means that application developers are not allowed to use java classes and methods from later Java Software Development Kits (SDKs). Modern development tools such as Eclipse (http://www.eclipse.org/) have features for method auto completion and real-time syntax check. These features use the code libraries to operate. So by specifying correct MHP class libraries and API documentation in such tools, developers are forced to use correct methods and objects. The MHP Knowledge database provides APIs and stub libraries developers can use for this purpose. Further information can be found in Annex B.
DVB-J is an environment different from desktop PCs and this different environment causes deviations in the Java environment when compared to PersonalJava. One example: the MHP specification Version 1.0.324 chapter 11.2.1 states “Each DVB-J application instance is considered to logically run in its own virtual machine instance”. This fact has consequences for the usage of finalizers. Chapter 11 of the MHP specification Version 1.0.3 specified in details deviations from PersonalJava including classes not required and deviations in functionality and methods.
MHP 1.1.x continues to refer to PersonalJava and not the subsequent specification Connected Device Configuration (CDC). The classes used for MHP must be delivered in the Java 1.1.x compatible format25. Compilers provided by SUN in subsequent Java SDKs are capable of outputting class files that are Java 1.1.x compatible. This is done by using the compiler parameters source and target. E.g.: javac -source 1.2 -target 1.1 <source files> It is important to remove the standard java API from projects to prevent that objects that are not part of the MHP Specification are referenced and later failing when executed in an MHP environment.