Just An Application

December 14, 2009

What’s New In MIDP 3.0: Redux – Appendix A: Application Attributes

Filed under: Java, JME, MIDP, MIDP3, MIDP3Issues — Tags: , , , , , — Simon Lewis @ 11:40 pm

Technically this is not a case of redux as I have not written about it here before although I did comment upon it in the public review.

In the proposed final draft Appendix A – Application Attributes looked, in part, this is not all of it, like this. This is actually the start of the HTML version.

Application Attributes

This appendix specifies all Application Attributes and the allowed locations for each attribute (JAD, Manifest, or both), along with information about the specification version.

In Table A-1 below, <locale> represents a valid value of the microedition.locale system property.

Status :
= MUST appear
= MAY appear
in manifest and/or JAD file as indicated in the respective columns.

Manifest and JAD :
= to be placed in this location
– = not allowed in this location.

Table A-1 : Application Descriptor Attributes

Attribute Name

Status

Manifest

JAD

Since

MIDlet-Name 1.0
MIDlet-Version 1.0
MIDlet-Vendor 1.0
MIDlet-<n> 1.0
MicroEdition-Profile 1.0
MicroEdition-Configuration 1.0
LIBlet-Name 3.0
LIBlet-Version 3.0
LIBlet-Vendor 3.0
MIDlet-Jar-URL 1.0
MIDlet-Jar-Size 1.0

Changes Since Proposed Final Draft

Appendix A now only appears in the PDF version of the documentation, and it looks like this. The only visible difference in this part being a minor difference in the wording in the key, but in fact a number of attributes that were marked as not being allowed in the JAD in the proposed final draft are now allowed there. I have no idea what the motivation for this change was.

Although this is not the major issue here it is also worth noting that a number of the sections which previously appeared as both HTML and in the PDF in the proposed final draft, are now present only in the PDF, with the result that the remaining HTML documentation now features a number of broken links. See the javax.microedition.midlet package documentation for a particularly fine selection.

Issues

As I argued in my comments in the public review, the table in the form it was then, and still is, is remarkably unhelpful.

Take the

    MIDlet-Name

attribute as an example.

Looking at the table, the solid bullet in the Status column indicates that the attribute

    MUST appear

and the solid bullets in the Manifest and JAD columns indicate that the attribute

    can be placed in this location

As we know from MIDP 2.0 and from the current specification, the MIDlet-Name attribute is in fact

  1. mandatory, and

  2. MUST appear in both the JAD AND the Manifest

That is it mandatory is apparent from the table. That it MUST appear in both the JAD and the Manifest simply is not.

Now consider the

    MicroEdition-Configuration 

attribute.

From MIDP 2.0 and the current specification we know that the attribute is

  1. mandatory, and

  2. MUST appear in either the JAD OR the Manifest, and MAY appear in both

but the entry for it in the table is identical to that of the MIDlet-Name attribute.

In short the table cannot be used for anything very much in the absence of the text which describes the constraints on the individual attributes which the table does not link to.

I put forward versions of the following as being a possible alternative approach. These have been updated to reflect the current status of the various attributes as I currently understand them.

Although the tables are a bit verbose in this form they can at least be used standalone.

MIDlet Suite Attributes

Name Status Location Since
MIDlet-Name Mandatory JAD AND Manifest 1.0
MIDlet-Vendor Mandatory JAD AND Manifest 1.0
MIDlet-Version Mandatory JAD AND Manifest 1.0
MIDlet-<n> Mandatory JAD OR Manifest OR Both 1.0
MicroEdition-Configuration Mandatory JAD OR Manifest OR Both 1.0
MicroEdition-Profile Mandatory JAD OR Manifest OR Both 1.0
MIDlet-Jar-URL Mandatory JAD ONLY 1.0
MIDlet-Jar-Size Mandatory JAD ONLY 1.0
MIDlet-Name-<locale> Optional JAD OR Manifest OR Both 3.0
MIDlet-Description Optional JAD OR Manifest OR Both 1.0
MIDlet-Description-<locale> Optional JAD OR Manifest OR Both 3.0
MIDlet-Info-URL Optional JAD OR Manifest OR Both 1.0
MIDlet-<n>-<locale> Optional JAD OR Manifest OR Both 3.0
MIDlet-Update-URL Optional JAD OR Manifest OR Both 1.0
MIDlet-Data-Size Optional JAD OR Manifest OR Both 1.0
MIDlet-Minimum-Canvas-Size Optional JAD OR Manifest OR Both 3.0
MIDlet-Maximum-Canvas-Size Optional JAD OR Manifest OR Both 3.0
MIDlet-Push-<n> Optional JAD OR Manifest OR Both 2.0
MIDlet-Install-Notify Optional JAD OR Manifest OR Both 2.0
MIDlet-Required-IP-Version Optional JAD OR Manifest OR Both 2.0
MIDlet-<n>-Type Optional JAD OR Manifest OR Both 3.0
MIDlet-<n>-Category Optional JAD OR Manifest OR Both 3.0
MIDlet-<n>-UserDenied Optional JAD OR Manifest OR Both 3.0
MIDlet-UserDenied Optional JAD OR Manifest OR Both 3.0
MIDlet-Operator-Allowed Optional JAD OR Manifest OR Both 3.0
MIDlet-Dependency-<n> Optional JAD OR Manifest OR Both 3.0
MIDlet-Icon Optional JAD OR Manifest OR Both 1.0
MIDlet-Icon-<locale> Optional JAD OR Manifest OR Both 3.0
MIDlet-Scalable-Icon Optional JAD OR Manifest OR Both 3.0
MIDlet-Scalable-Icon-<locale> Optional JAD OR Manifest OR Both 3.0
MIDlet-<n>-Scalable-Icon Optional JAD OR Manifest OR Both 3.0
MIDlet-<n>-Scalable-Icon-<locale> Optional JAD OR Manifest OR Both 3.0
MIDlet-Font Optional JAD OR Manifest OR Both 3.0
MIDlet-Splash-Screen-Image Optional JAD OR Manifest OR Both 3.0
MIDlet-Event-Launch-<n> Optional JAD OR Manifest OR Both 3.0
MIDlet-Delete-Notify Optional JAD OR Manifest OR Both 2.0
MIDlet-Delete-Confirm Optional JAD OR Manifest OR Both 2.0
MIDlet-Delete-Confirm-<locale> Optional JAD OR Manifest OR Both 3.0
MIDlet-Persistent-Data-URL-<n> Optional JAD OR Manifest OR Both 3.0
MIDlet-Dependency-JAD-URL-<n> Optional JAD ONLY 3.0
MIDlet-Permission-<n> Optional JAD OR Manifest OR BOTH 3.0
MIDlet-Permission-Opt-<n> Optional JAD OR Manifest OR BOTH 3.0
MIDlet-Access-Auth-Type-<n> Optional JAD OR Manifest OR BOTH 3.0
MIDlet-Access-Auth-Cert-<n> Optional JAD OR Manifest OR BOTH 3.0
MIDlet-Permissions Optional JAD OR Manifest OR BOTH 2.0
MIDlet-Permissions-Opt Optional JAD OR Manifest OR BOTH 2.0
MIDlet-Dependency-Jar-SHA1-<n> Optional JAD OR Manifest OR BOTH 3.0
MIDlet-Certificate-<n>-<m> Optional JAD ONLY 2.0
MIDlet-Jar-RSA-SHA1-<n> Optional JAD ONLY 3.0
MIDlet-Jar-RSA-SHA1 Optional JAD ONLY 2.0
MIDlet-Profile-Request; Optional JAD ONLY 3.0

LIBlet Attributes

Name Status Location Since
LIBlet-Name Mandatory JAD AND Manifest 3.0
LIBlet-Vendor Mandatory JAD AND Manifest 3.0
LIBlet-Version Mandatory JAD AND Manifest 3.0
LIBlet-Jar-URL Mandatory JAD ONLY 3.0
LIBlet-Jar-Size Mandatory JAD ONLY 3.0
LIBlet-Jar-SHA1 Mandatory JAD ONLY 3.0
LIBlet-Description Optional JAD AND Manifest 3.0
LIBlet-Description-<locale> Optional JAD AND Manifest 3.0
LIBlet-Icon Optional JAD AND Manifest 3.0
LIBlet-NonShared-Data-Size Optional JAD AND Manifest 3.0
LIBlet-Shared-Data-Size Optional JAD AND Manifest 3.0
LIBlet-Install-Notify Optional JAD AND Manifest 3.0
LIBlet-Delete-Notify Optional JAD AND Manifest 3.0
LIBlet-Persistent-Data-URL-<n> Optional JAD AND Manifest 3.0
LIBlet-Dependency-JAD-URL-<n> Optional JAD ONLY 3.0
LIBlet-Font Optional JAD AND Manifest 3.0
LIBlet-Permissions Optional JAD AND Manifest 3.0
LIBlet-Permissions-Opt; Optional JAD AND Manifest 3.0
LIBlet-Permission-<n> Optional JAD AND Manifest 3.0
LIBlet-Permission-Opt-<n> Optional JAD AND Manifest 3.0

Copyright (c) 2009 By Simon Lewis. All Rights Reserved.

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: