JSR 310 Date and Time API Jan 24th, 2014. Stephen Colebourne, OpenGamma Ltd. Roger Riggs, Oracle Inc.



Similar documents
JSR 375 (EE Security API) Review

Introduction to Java 8 Date Time API

Introduction to the JCP

DATE AND TIME FOR NINE MILLION JAVA DEVELOPERS

Joda Time Java Library. Joda Time Overview

To Java SE 8, and Beyond (Plan B)

Analysis One Code Desc. Transaction Amount. Fiscal Period

Java SE 8 - Java Technologie Update

Legislative Brief: PAY OR PLAY PENALTIES LOOK BACK MEASUREMENT METHOD EXAMPLES. EmPowerHR

Continuous Integration

What CCPForge does Introduction to SESC and CCPForge Workshop Gemma Poulter

AT&T Global Network Client for Windows Product Support Matrix January 29, 2015

Advanced Computing Tools for Applied Research Chapter 4. Version control

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

LibreOffice Certification Program (because "libre" is better than "open")

About CREST R&D Grant

COMPARISON OF FIXED & VARIABLE RATES (25 YEARS) CHARTERED BANK ADMINISTERED INTEREST RATES - PRIME BUSINESS*

COMPARISON OF FIXED & VARIABLE RATES (25 YEARS) CHARTERED BANK ADMINISTERED INTEREST RATES - PRIME BUSINESS*

Content. Development Tools 2(63)

CHILDREN AND YOUNG PEOPLE'S PLAN: PLANNING AND PERFORMANCE MANAGEMENT STRATEGY

The Cordova Development Lifecycle

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Open Source SOA with Service Component Architecture and Apache Tuscany. Jean-Sebastien Delfino Mario Antollini Raymond Feng

Human Resources Management System Pay Entry Calendar

<Insert Picture Here> Java EE 7. Linda DeMichiel Java EE Platform Lead

HM2016 Detailed Chronological Schedule with Interwoven Production Deadlines

<Insert Picture Here> What's New in NetBeans IDE 7.2

GlassFish. Developing an Application Server in Open Source

BROMSGROVE DISTRICT COUNCIL PERFORMANCE MANAGEMENT BOARD 16 DECEMBER 2008 PERFORMANCE MANAGEMENT BOARD PROPOSED PROGRAMME 2008/09

jbpm Explained with Simple Use Cases

NASDAQ DUBAI TRADING AND SETTLEMENT CALENDAR On US Federal Reserve Holidays, no settlements will take place for USD.

Version Control with. Ben Morgan

Statistics for ( )

Source Control Systems

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Open source business rules management system

Interoperable Cloud Storage with the CDMI Standard

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

Case 2:08-cv ABC-E Document 1-4 Filed 04/15/2008 Page 1 of 138. Exhibit 8

FOSS License Restrictions and Some Important Issues

CENTERPOINT ENERGY TEXARKANA SERVICE AREA GAS SUPPLY RATE (GSR) JULY Small Commercial Service (SCS-1) GSR

INSPIRE Dashboard. Technical scenario

Revision control systems (RCS) and

Lyo OSLC4J, Oauth Library and OSLC Test Suite 1.1 Release and Graduation Review

The Future of Java. Terrence Barr Senior Technologist, Oracle

Open is as Open Does: Lessons from Running a Professional Open Source Company

TRAINING PROGRAMS FOR SENIOR AND MIDDLE LEVEL WORKERS S/N Course Title DAYS COST (N) 1 Project

Two Best Practices for Scientific Computing

Continuous Integration in the Cloud with Hudson

CSCI E 98: Managed Environments for the Execution of Programs

A Development Analytics Dashboard For Apache CloudStack

Version Control with Git

Software Evaluation: Criteria-based Assessment

BACnet protocol implementation conformance statement. Corrigo

Academic Calendars. Term I (20081) Term II (20082) Term III (20083) Weekend College. International Student Admission Deadlines

From: Steve Berberich, Vice President of Technology and Corporate Services and Chief Financial Officer

The Future of IoT. Zach Shelby VP Marketing, IoT Feb 3 rd, 2015

Academic Calendar Arkansas State University - Jonesboro

BS EN Energy Management Systems VICTORIA BARRON, PRODUCT MARKETING MANAGER, BSI

How To Run A Hello World On Android (Jdk) On A Microsoft Ds.Io (Windows) Or Android Or Android On A Pc Or Android 4 (

2016 TRAINING CALENDAR

Enhanced Vessel Traffic Management System Booking Slots Available and Vessels Booked per Day From 12-JAN-2016 To 30-JUN-2017

Version Control with Git. Dylan Nugent

Breen Elementary School

Smart Use of Annotation Processing

An elearning platform for distanced collaborative programming

Ashley Institute of Training Schedule of VET Tuition Fees 2015

Einführung in die CDISC Standards CDISC Standards around the World. Bron Kisler (CDISC) & Andrea Rauch DVMD Tagung

Trading Calendar Holiday Schedule Holiday Schedule. Martin Luther King Jr.'s Birthday (Observed) Independence Day

DELIVERABLE. Europeana Cloud: Unlocking Europe s Research via The Cloud. Deliverable D2.1 Development Environment

Apache Kylin. Open Source Journey

Redmine: A project management software tool. January, 2013

Introducing Xcode Source Control

Draft Response for delivering DITA.xml.org DITAweb. Written by Mark Poston, Senior Technical Consultant, Mekon Ltd.

DESIGN BUILD TEST TRAIN/DEPLOY MAINTENANCE

Zulu by Azul OpenJDK for Azure

Data Pipeline with Kafka

SITS:Vision for Colleges

Tax Year 2015 Personal Exemptions and Deductions

Configuration Manual Yahoo Cloud System Benchmark (YCSB) 24-Mar-14 SEECS-NUST Faria Mehak

Welcome to the Daily Sales Tracker!

Platform Support Guide

Version Control for Computational Economists: An Introduction

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

BCOE Payroll Calendar. Monday Tuesday Wednesday Thursday Friday Jun Jul Full Force Calc

JBoss Enterprise Middleware. The foundation of your open source middleware reference architecture

Transcription:

JSR 310 Date and Time API Jan 24th, 2014 Stephen Colebourne, OpenGamma Ltd. Roger Riggs, Oracle Inc.

What is the scope of this JSR? Comprehensive model for date and time Support for commonly used global calendars Immutable types work well with functional programming Type-safe avoid primitives where sensible self documenting IDE friendly Interoperate with existing classes Designed to extend the JDK 2

Business/marketing/ecosystem justification Why do this JSR? The current APIs are hard to use Reduce programming errors and lower maintenance costs Add a contemporary style API What's the need? Buggy and difficult current APIs Performance How does it fit in to the Java ecosystem? The new API will complement the JDK and be the preferred Date and Time API Is the idea ready for standardization? Well past due 3

History List the significant dates in the history of the JSR. Feb 12, 2007 Approved for Development Mar 28, 2010 Early Draft Review Sept 2011 Oracle joined as Co-spec lead Oct 14, 2012 Early Draft Review 2 Dec 4, 2013 Public Review Jan 14, 2014 Proposed Final Draft 4

Technical scope and features java.time ISO Core Calendar LocalTime, LocalDate, LocalDateTime, ZonedDateTime, Clock, Instant, Duration, Period, ZoneId, Month, DayOfWeek, java.time.format Parsing and Formatting DateTimeFormat, DateTimeFormatBuilder, standard formats, patterns, styles, java.time.chrono Regional Calendars Chronology, Era, ChronoLocalDate, ChronoLocalDateTime, ChronoZonedDateTime, Japanese, ThaiBuddhist, Minguo, Hijrah calendars java.time.temporal Framework Units, Fields, Adjusters, Temporal, TemporalAccessor, TemporalAmount, TemporalQuery, java.time.zone TimeZone ZoneRules, transitions, etc. 5

ISO Calendar Types LocalDate 2010-12-03 LocalTime 11:05:30 LocalDateTime 2010-12-03T11:05:30 OffsetTime 11:05:30+01:00 OffsetDateTime 2010-12-03T11:05:30+01:00 ZonedDateTime 2010-12-03T11:05:30+01:00 Europe/Paris Year 2010 YearMonth 2010-12 MonthDay -12-03 Instant 2576458258.266 seconds after 1970-01-01 6

API Design Comparison New java.time vs. java.util.calendar and Date Fluent API Immutable instances Thread safe Strong types Fit for purpose types Not Fluent Mutable instances clone needed Not Thread safe Weakly typed calendars One size fits all API 7

The Expert Group JCP Members Corporate: Oracle: Roger Riggs, Sherman Shen, Masayoshi Okutsu, Douglas Surber, Dan Chiba, Naoto Sato Google Inc.: Kevin Bourrillion, IBM: Toby Corbin RedHat: David Lloyd Individuals Steve Colebourne, Michael Nascimento Santos Adam Bien, Michael Buckley, Tom Crosman, Mikael Grev, Fabio Correia Kung, Clark D. Richey Jr. 8

Open Source Project Members JUGs, individuals, open-source groups, academia, etc. London Java Group Richard Warburton James Gough Other barend, Jesper Steen Møller, renjith4, fabfas, Benjamin Graf, Viktor Hedefalk, Mark Thorton 9

Open Source Project Tools Java.net https://java.net/projects/jsr-310 Email archive Jan 2010.. Dec 2010 (2390 messages) Svn repo (1339 revisions) SourceForge Threeten home page Email threeten-develop (email archive Dec 2010 to present) Svn - 2010-12-24 to 2011-06-10 (1497 revisions) Git - 2011-06-24 to 2011-06-24 Github Threeten Github (documents repo history) Source - 2011-06-24 to 2012-12-04 Github Issue Tracker OpenJDK Sponsored Threeten Project Email threeten-dev@openjdk.java.net Nov 2012.. Present (1457) Mercurial JDK forest http://hg.openjdk.java.net/jdk8/tl/jdk JDK Bug track tracking http://bugs.openjdk.java.net 10

Other deliverables Other than Spec, RI, and TCK delivered: Guide to the Specification The Threeten Project Backport to JDK 1.7 org.threeten.bp 11

Publicity JavaOne 2013 Introducing the Java Time API in JDK 8 - CON6064 Converting to the New Date and Time API in JDK 8 - CON6091 JAX.de Mainz 2013 Devoxx UK 2013 UTC Colloquium Charlottesville 2013 Presented at JavaOne 2008, 2010, 2012 Paris JUG 2011 JavaZone Oslo 2010 Javapolis 2007 12

Collaboration with other community groups London Java Community http://www.meetup.com/londonjavacommunity LJC Adopt-a-JSR James Gough and Richard Warburton lead https://java.net/projects/ljc-london-jug/pages/jsr-310 Contributed reviews, designs, tests, TCK tests, and participated actively in design discussions July 10, 2012; LJC hosted Java 8 Date & Time Hackday 25 Developers attended 13

Implementations The SE 8 RI implementation is the only conformant implementation A backport version was created in a separate package for use with JDK 7 and without JDK 8 features 14

Schedule Dec 4, 2013 Public Review Dec 10-23, 2013 Public Review Ballot Jan 13, 2014 Proposed Final Draft [February 2014 Final Approval Ballot] [March 2014 Final Release] 15

IP flow Provide pointers to the licenses for the Spec, RI, and TCK. JSR 310 spec licensed using JCP standard license JSR RI and TCK licensed using the same license as SE 8 How are you handling contributions from non JCP members? Initial source contributions accepted under JSR 310 Contributor Agreement (essentially the same as Sun Contributor Agreement) JDK terms of use for ThreeTen OpenJDK Project What Terms of Use apply to your collaboration tools? Standard terms for java.net, github, OpenJDK Any legal issues or concerns? Some Open Source participants could not get their companies to sign the OpenJDK agreement; participation dropped off 16

RI and TCK development How are you developing the RI and TCK? Tests developed in sync with spec and RI Tests are divided into TCK and unit tests Both maintained in same repository as the RI Oracle JCK team integrated TCK tests into JDK 8 JCK Missing: skills and discipline of veteran TCK engineers If collaboratively (through an open-source project) How many committers and who? 5 Richard Warburton, James Gough, Stephen Colebourne, Roger Riggs, Sherman Shen How many apart from the Spec Lead (organization)? 2 Richard, and James (LJC members) 17

RI and TCK development Is the RI available for public download? Some interim binaries Integrated into JDK 8 Early Access Downloads Is the TCK available for public download? No, but all tests are in the repository Reviewable and runnable Do you have a source-code repository? See slide 10; currently in OpenJDK 8 and 9 18

Participation and transparency Provide a pointer to the JSR page on JCP.org https://jcp.org/en/jsr/detail?id=310 Provide a pointer to the JSR project website OpenJDK Project ThreeTen The Threeten Github Project 19

Github Issue tracker (1/2) Total number of issues? 346 How many in each state: Open: 0, Closed: 346, deferred: 0 Average number of issues logged per month? 8 per month; June 2010.. Jan 2014 Average number of issues resolved per month? 8 per month; June 2010.. Jan 2014 How many different people logged them? 28 People; How does this break down between Spec Lead, EG members, and non-eg members? As expected, most by spec lead(s); then active participants and a long tail. 20

OpenJDK Issue tracker (2/2) Total number of issues? 92 How many in each state: open: 0, resolved: 79, deferred: 5 issues, 8 enhancements. Average number of issues logged per month? 6 per month Average number of issues resolved per month? 5 How many different people logged them? 8 How does this break down between Spec Lead, EG members, and non-eg members? 92 Spec lead, 1 other 21

Document archive Provide a pointer to your document archive. N/A except for the source repository Are meeting minutes and materials published? Via email in the archive Most business conducted by email; no separate minutes What other materials are available for download? N/A Total number of files available for download? N/A except for the repository Average number of new files available for download each month? Repository src java/time: 2580 Kb Repository tests java/time: 3264 Kb 22

Thank you! http://jcp.org