blob: bfd349b385f50e5527c7d0296708ed0cdc92ea72 [file] [log] [blame]
JavaBeans Activation Framework 1.2
==================================
JAF 1.2 proposes a few minor changes to the JAF specification to
align with other changes in JDK 9. Following is a description of
the changes that are being introduced in JAF 1.2. The numbers in
parentheses are bug numbers; you can find more information about the
bug reports at:
http://bugs.openjdk.java.net
The JAF 1.2 RI will require Java SE 7 or later. JAF 1.2 will be
included in Java SE 9.
The JAF 1.2 RI and TCK will be available under the same terms as the
JAF 1.1 RI and TCK.
===================================================================
1. JDK 9 moves config files to <java.home>/conf (JDK-8049379)
----------------------------------------------------------------
The specification for MailcapCommandMap is changed as follows:
* <b>Mailcap file search order:</b><p>
* The MailcapCommandMap looks in various places in the user's
* system for mailcap file entries. When requests are made
* to search for commands in the MailcapCommandMap, it searches
* mailcap files in the following order:
* <p>
* <ol>
* <li> Programatically added entries to the MailcapCommandMap instance.
* <li> The file <code>.mailcap</code> in the user's home directory.
* <li> The file <code>mailcap</code> in the Java runtime.
* <li> The file or resources named <code>META-INF/mailcap</code>.
* <li> The file or resource named <code>META-INF/mailcap.default</code>
* (usually found only in the <code>activation.jar</code> file).
* </ol>
* <p>
* (The current implementation looks for the <code>mailcap</code> file
* in the Java runtime in the directory <code><i>java.home</i>/conf</code>
* if it exists, and otherwise in the directory
* <code><i>java.home</i>/lib</code>, where <i>java.home</i> is the value
* of the "java.home" System property. Note that the "conf" directory was
* introduced in JDK 9.)
The specification for MimetypesFileTypeMap is changed as follows:
* <b>MIME types file search order:</b><p>
* The MimetypesFileTypeMap looks in various places in the user's
* system for MIME types file entries. When requests are made
* to search for MIME types in the MimetypesFileTypeMap, it searches
* MIME types files in the following order:
* <ol>
* <li> Programmatically added entries to the MimetypesFileTypeMap instance.
* <li> The file <code>.mime.types</code> in the user's home directory.
* <li> The file <code>mime.types</code> in the Java runtime.
* <li> The file or resources named <code>META-INF/mime.types</code>.
* <li> The file or resource named <code>META-INF/mimetypes.default</code>
* (usually found only in the <code>activation.jar</code> file).
* </ol>
* <p>
* (The current implementation looks for the <code>mime.types</code> file
* in the Java runtime in the directory <code><i>java.home</i>/conf</code>
* if it exists, and otherwise in the directory
* <code><i>java.home</i>/lib</code>, where <i>java.home</i> is the value
* of the "java.home" System property. Note that the "conf" directory was
* introduced in JDK 9.)
===================================================================
2. Remove JAF's API dependency on java.beans.Beans.instantiate (JDK-804773)
----------------------------------------------------------------------------
To allow custom runtimes to be created without the java.desktop module,
the getCommandObject method of CommandInfo is changed to make the use
of java.beans.Beans.instantiate conditional:
/**
* Return the instantiated JavaBean component.
* <p>
* If the current runtime environment supports
* {@link java.beans.Beans#instantiate Beans.instantiate},
* use it to instantiate the JavaBeans component. Otherwise, use
* {@link java.lang.Class#forName Class.forName}.
* <p>
* The component class needs to be public.
* On Java SE 9 and newer, if the component class is in a named module,
* it needs to be in an exported package.
...