Module-file format (DRAFT)
Roger Riggs
Roger.Riggs at Sun.COM
Sat Jan 23 04:07:45 PST 2010
Hi Mark,
Current development environments and runtimes are expected to support
automated
discovery, distribution and verification. This is made possible when the
artifacts
completely describe themselves and their dependencies. This information
is used
to establish and verify assumptions and invariants needed to support
robust operation.
It is no longer acceptable to require a user to establish or fix a valid
configuration.
The kinds of information are needed are:
* End user identification of the module, icon, languages supported, etc.
* Dependencies of native code - instruction set/versions,
OS name/version, specific drivers or other native code packages.
* Hardware dependencies - is there a keyboard, screen size, type of
networking, etc.
* Ownership and rights - vendor, license term either for user or
automated verification
* Etc.
In the JAR format, the manifest was available as a full extensible place
to record
additional information. Its main drawback was having to search the JAR
to find it
and the requirement to encode as text.
This meta information is needed for communication between the IDE,
distribution server, and runtime at least. Jigsaw itself does not need
to define the
meta data semantics. Incorporating an extensible placeholder into the
distribution
format can enable a single artifact to keep the information consistent
and available.
Roger
On 1/22/10 7:05 PM, Mark Reinhold wrote:
>> Date: Wed, 20 Jan 2010 16:14:48 -0500
>> From: roger.riggs at sun.com
>>
>
>> Where is the content of the config section defined?
>>
> It's just a collection of named files. It's meant to contain things like
> the properties files currently found in $JAVA_HOME/lib, nothing more.
>
>
>> Does it contain information about which OS and which hardware architecture
>> the native code is appropriate for?
>>
> No.
>
>
>> Or is that in the module-info.class?
>>
> No.
>
>
>> Can I have a "fat" package with multiple native code implementations for
>> different platforms?
>>
> No, and I'm skeptical that "fat" packages are the way to go.
>
> When modules are published on a server we can use simple URL conventions
> to distinguish "pure" modules from those containing native code for a
> specific target os/arch combination. In the long run we should probably
> record that information in the format itself, as a sanity check.
>
>
>> If the sections are strictly in order then having the config section
>> earlier would be useful to setup how to handle the rest of the
>> sections.
>>
> (N/A, see above)
>
>
>> Can you remind me why multiple sections of each type are not useful/allowed.
>>
> Simplicity.
>
> - Mark
>
More information about the jigsaw-dev
mailing list