Find JSRs
Submit this Search


Ad Banner
 
 
 
 

JSRs: Java Specification Requests
JSR 385: Units of Measurement API 2.0

Updates to the Original JSR

The following updates have been made to the original proposal:

2023.11.06:

2.20 Please provide the location of the publicly accessible document archive you have created for the Expert Group.

https://unitsofmeasurement.github.io/downloads/

2019.03.28:
The Spec Leads moved the JSR to JCP version 2.11.


Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Werner Keil

Name of Contact Person: Werner Keil

E-Mail Address: werner.keil@gmx.net

Telephone Number: +4917636954273

Fax Number: -


Specification Lead Members:

Specification Leads:
Jean-Marie Dautelle
Werner Keil
Otávio Santana

E-Mail Addresses:
jean-marie.dautelle@airbus.com
werner@catmedia.us
otaviopolianasantana@gmail.com

Telephone Number:
+33 6 45 45 40 63
+498923516421
+11 9994-61372

Fax Number:
+33 1 69 75 58 85
-
-


Initial list of Contributors and Expert Group Membership:

Jean-Marie Dautelle
Martin Desruisseaux
Werner Keil
Karen Legrand
Otávio Santana
Almas Shaikh
Chris Senior
Mohamed Taman
Rajmahendra Hegde
V2COM

Supporting this JSR:

Alcatel Lucent
Austrian Standards Institute
Ellis Berry
British Telecom
Bundesamt für Eich- und Vermessungswesen (BEV)
CERN
ENEA
Fraunhofer-Gesellschaft
Gemalto M2M
Geomatys
Google
IEM
ISO/TC 12
JUG Chennai
JUG Hyderabad
MoroccoJUG
National Institute of Standards and Technology (NIST)
O2 Telefonica
The Open Geospatial Consortium (OGC)
Red Hat
Samsung
Nathan Scott
Siemens
SFR Group
SouJava
Thales Group
Tenkiv
Verticon, Inc.



Section 2: Request

2.1 Please describe the proposed Specification:

This JSR is to provide an update for the Java API for Units of Measurement (JSR 363). Proposed changes include:
- Adopting the proposed redefinition of SI base units: https://en.wikipedia.org/wiki/Proposed_redefinition_of_SI_base_units
While mostly expected to affect JavaDoc or parts of the Specification, this redefinition is the most significant change to the metric system (SI) since 1960.
- Embracing Java 8 features
A Bridge between the Time quantity and JSR 310 types (at least in the RI)
Type Annotations (if appropriate)
Use of Lambdas where appropriate
- Alignment with Java 9 features
Modular environment - While the API should be backward-compatible with at least Java SE 8, both API and RI are expected to expose Java 9 modules
Multi-release JAR files - This should allow an RI to support Java 8, 9 and more future versions (18.x or 19.x) where beneficial.
- Add support for Compound Units
Similar to the TemporalAmount of JSR 310 a Compound Unit allows to capture units like "7 years, 3 months and 5 days" or "6 feet, 3 inches".
- Standardize the Prefix
- Standardize QuantityFormat similar to UnitFormat

See https://github.com/unitsofmeasurement/unit-api/milestone/2 for a detailed list of proposed changes and improvements

The API is targeted to the resource-constrained devices such as smart meters, medical devices, or similar and needs to be memory-efficient to run on. On the other hand it must perform to cope with incoming sensor data.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

Java(TM) desktop, embedded and server platforms.

2.3 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.

The packages are targeted at Java Embedded (SE and possible future ME) as well as IoT, Big Data or Data Analytics in the Cloud. This JSR should have few dependencies outside the packages and types defined by the CLDC.
The RI shall be based on Java SE 9 or above while the core API must remain portable across most supported platforms and profiles.

2.4 What need of the Java community will be addressed by the proposed specification?

See 2.1 above.

2.5 Why isn't this need met by existing specifications?

See 2.1 above for Proposed redefinition of SI base units and other intended changes.

2.6 Please give a short description of the underlying technology or technologies:

See above.

2.7 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

The API will continue to use the javax.measure package.

2.8 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?

No

2.9 Are there any security issues that cannot be addressed by the current security model?

No

2.10 Are there any internationalization or localization issues?

There are some internationalization issues that this JSR will address:
Which systems of units should be supported:
The RI should support relevant units in the SI system
Other Unit systems are subject to extension modules, as they already exist for JSR 363.
Some units have locale-dependent spellings, such as 'liter' and 'litre'.
Where it won't exceed available footprint the JSR will use Unicode CLDR like selected parts of the JDK or other JSRs already do.

2.11 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?

No

2.12 Please describe the anticipated schedule for the development of this specification.

Q1 2018: finalize expert group
Q2 2018: Early Draft
Q3 2018: Public Review
Q1 2019: Final Release

2.13 Please describe the anticipated working model for the Expert Group working on developing this specification.

The primary means of communication will be email (via mailing lists units-dev@googlegroups.com for EG Members and similar active contributors and units-users@googlegroups.com for observers and other users of the API)
A Twitter handle @UnitAPI and conference calls, with meetings on Google Hangout, Skype, Bluejeans or similar channels where appropriate.
Face-to-face meetings will be scheduled if needed.

2.14 Provide detailed answers to the transparency checklist, making sure to include URLs as appropriate:

The Units Of Measurement interfaces and their implementations are developed in an open source process. We intend to use the existing infrastructures:
http://unitsofmeasurement.github.io on GitHub.
These projects are already publicly visible and accessible. In addition, the following communications already exist or will be established:
The Expert Group business is regularly reported on publicly readable aliases units-dev@googlegroups.com, units-users@googlegroups.com.
The schedule for the JSR is publicly available and updated regularly.
Issue-trackers on GitHub: https://github.com/unitsofmeasurement

The spec leads demonstrated responsiveness in JSR 363, which is supported by various JUGs and other Open Source communities and won the JCP Award for Most Significant JSR of 2015.
Werner Keil is a respected speaker at numerous conferences and JCP EC Member since 2008. He joined JSR-275 as EG Member and Co Spec Lead in 2005 and has spoken about that JSR and subsequent projects including like Unit-API (JSR 363) or Eclipse UOMo ever since Werner won a JCP Award as Member of the Year in 2016. Jean-Marie Dautelle has been involved in Java and the JCP since JSR-1 (Real Time) and gained reputation e.g. as the only Individual EC Member to ever host an EC F2F (the "Boston Barn Meeting") Otavio spoke at numerous conferences like JavaOne US, DevoXX UK and US or JavaOne Brazil about JSR 363.
The terms of use required by the collaboration tools are the GitHub Terms of Use (https://help.github.com/articles/github-terms-of-service)

2.15 Please describe how the RI and TCK will be delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.

The RI will be implemented inside the open source project 'unitsofmeasurement.github.io'. We target stand-alone releases.
The minimum Java version for the API is Java SE 8. For the RI it will likely be Java 9 or above using the Multi-release JAR file architecture for backward-compatibility.

2.16 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).

N/A

2.17 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

We will be using the Standard Spec License for the JSR specification, and a BSD 3-Clause License for the RI and TCK.

2.18 Please describe the communications channel you have established for the public to observe Expert Group deliberations, provide feedback, and view archives of all Expert Group communications.

- The Expert Group business is readable on Google Groups units-dev@googlegroups.com, units-users@googlegroups.com.
- Announcements like releases, etc. are published via Twitter handle @UnitAPI

2.19 What is the URL of the Issue Tracker that the public can read, and how does the public log issues in the Issue Tracker?

API: https://github.com/unitsofmeasurement/unit-api/issues RI: https://github.com/unitsofmeasurement/indriya/issues TCK: https://github.com/unitsofmeasurement/unit-tck/issues

2.20 Please provide the location of the publicly accessible document archive you have created for the Expert Group.

(This section was updated on 6 November 2023)

https://bintray.com/unitsofmeasurement/downloads

https://unitsofmeasurement.github.io/downloads/



Section 3: Contributions

3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.

JSR 363: Units of Measurement API https://jcp.org/en/jsr/detail?id=363

3.2 Explanation of how these items might be used as a starting point for the work.

These specifications will be the starting point for this work.