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
-
mandatory, and
-
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
-
mandatory, and
-
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.