They may also be other kinds of implementation elements, in the form of static data files or native-code procedures, objects, or libraries. The proposed to include a module system, and to use that system to modularize the Platform itself. It is highly recommended that the binary image created in the second step be fully tested, with the goal of achieving 100% coverage of the remaining library and application code, in order to ensure that all required elements of the Implementation are present. This constraint has been a key to the long-term success of the Platform because it has helped to ensure the portability of Java library and application code to different Implementations. .
The library and application code packaged together with a Stripped Implementation must behave identically to the input library and application code running on the input Implementation. Add functionality to the Java Collections Framework for bulk operations upon data. As an interim step toward a fully-modular Platform, this release defines three so that applications that use just part of the Platform can run on resource-constrained devices. Any addition that is not a feature is considered an enhancement. No other forms of Implementation are permitted, except as defined in the next section.
They are also free to implement one or more Profiles without implementing the entire Platform. Operations upon data are generally expressed as lambda functions. Elements of a Stripped Implementation may not in any way be referenced by any other library or application code. No further elements may be added or removed. That feature was, however, in order to allow sufficient time for the broad evaluation, review, and feedback which such a profound change to the Platform demands. The elements subject to removal by the stripping process may be Java code, in the form of packages, classes, interfaces, fields, or methods.
An automated analysis of a large corpus of Java library and application code, including the entire content of as of September 2012, suggests that these methods are hardly ever used. Even the smallest Profile will be too large for some scenarios. When a Platform Implementation is packaged together with an application, this release allows elements of the Implementation to be when it is known that the application will never depend upon any removed element. The language itself is not subject to subsetting. A Stripped Implementation may not be used to execute any other library or application code.
An element, whether optional or not, that is present in the input Implementation and is used by the input library or application code must also be present in the Stripped Implementation. A precise answer for the first step cannot, in general, be computed automatically since it is equivalent to solving the Halting Problem. Content This Specification defines three Profiles: compact1, compact2, and compact3. Conformance Implementors of this Specification are free to implement zero, one, or more Profiles. Practical tools for creating Stripped Implementations therefore usually rely upon a combination of heuristics, manual analysis, and automatic analysis to compute an approximate answer. In order to maximize the visibility of Platform revisions we generally tend to consider borderline items to be features rather than enhancements.
This Specification therefore permits an Implementation that is packaged together with all of the Java library and application code that will ever run upon it to omit, partially or entirely, elements that are never, under any circumstances, depended upon by that code. The packages added in each Profile are as follows: compact1 compact2 compact3 java. If an Implementation of this Specification implements a Profile then it must be complete, i. It is further expected that these Profiles will be deprecated at that time, so that they can be removed in an even later release. There is, obviously, room for judgement when interpreting this definition. The input Implementation need not include elements defined as optional by the relevant Specifications.
Implementation This Specification neither mandates nor forbids any particular means of creating Stripped Implementations, so long as the above constraints are satisfied. The Virtual Machine itself is not subject to subsetting. It is expected that the modular Platform to be defined in a future release will include modules corresponding almost exactly to the Profiles defined here, so that applications that use Profiles can easily be migrated to use modules. As a consequence of this constraint, an application that was packaged together with an Implementation was required to include the entire Implementation even if it used only a small part of the Platform. Profiles allow applications that use just part of the Platform to run on resource-constrained devices. The process that creates such an Implementation is called stripping, and the resulting Implementation is said to be Stripped. No further code in any form may be added or removed.
. . . . . .
. . . . . . .
. . . . .