+ All Categories
Home > Documents > JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to...

JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to...

Date post: 14-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
23
JSR 377 Desktop Application Framework September 29 2017 Andres Almiray
Transcript
Page 1: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

JSR 377 Desktop Application Framework

September 29 2017

Andres Almiray

Page 2: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

2

Agenda

• Goals •  Information to be gathered •  Implementation notes •  Issues • Questions, discussion, next steps

Page 3: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

3

Goals

Page 4: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

4

Goals

• Define APIs that can be used to build Java Desktop (and possible mobile) applications.

•  Inspired in previous efforts such as JSR 296 (Swing Application Framework) and JSR 295 (Beans Binding)

•  JSR 377 does not target a single UI toolkit. It should be possible to use existing toolkits such as Swing, JavaFX, SWT, Apache Pivot, Lanterna, others.

Page 5: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

5

Information to be gathered

Page 6: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

6

About this JSR

• Provide the following features application life cycle localized resources (and injection) persisted session state loosely coupled actions dependency injection event system centralized error management extension points via plugins

Page 7: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

7

Introduction

•  JSR 193 – Client Side Container •  JSR 296 – Swing Application Framework •  JSR 295 – Beans Binding

•  JSR 296 had the following goals application life cycle localized resources (and injection) persisted session state loosely coupled actions targeted only Swing for obvious reasons

Page 8: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

8

Business/marketing/ecosystem justification

• Why do this JSR? –  Desktop application development can benefit form

lessons learned by JavaEE standardization. • What's the need?

–  Applications can’t share code/components unless they are written using the same base platform (NetBeans, RCP, Eclipse RCP, homegrown).

• How does it fit in to the Java ecosystem? –  Desktop applications are still being built.

•  Is the idea ready for standardization? –  UI toolkits and desktop platforms are mature enough.

Page 9: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

9

History

• List the significant dates in the history of the JSR. –  Submitted on 29 Dec, 2014. –  Review Ballots: 27 Jan, 2015 16 Feb, 2016 14 Mar, 2017 –  Preliminary API drafted. – Spec document not ready. – Potential RI identified.

Page 10: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

10

Technical scope and features

• API targets JDK7 byte code due to restrictions found in mobile platforms. This decision was taken back in 2014 and reviewed in following years. It’s very likely the new target can be set to JDK8.

• The API is independent of any UI toolkit at its core but provides hooks for specific implementation, such as the case of handling the particulars of the UI thread.

• All original features proposed by JSR-296 are in scope. •  JSR-295 has been superseded by JavaFx bindings.

Page 11: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

11

The Expert Group

• The EG is comprised by Java Champions, JavaFX experts, NetBeans Dream Team member, and other interested parties.

• The EG discusses ideas using the mailing list, GitHub issues, Gitter (online chat) and occasional face-to-face meetings at conferences and JUG events.

Page 12: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

12

Other deliverables

• Other than Spec, RI, and TCK are you delivering, for example: – Additional documentation – User's guide –  Sample code

Page 13: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

13

Publicity

•  https://jug.bg/ftp/jPrime/2016/slides/JSR377:%20What's%20up%20and%20what's%20next%20-%20Andres%20Almirai.pdf

Page 14: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

14

Implementations

• How many implementations (apart from the RI) exist? – None yet

Page 15: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

15

Schedule

•  Indicate the expected schedule to completion of the JSR, with milestones and JSR stages.

Page 16: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

16

IP flow

• Provide pointers to the licenses for the Spec, RI, and TCK. – Apache v2 License

• How are you handling contributions from non JCP members? –  Apache v2 License

• What Terms of Use apply to your collaboration tools? –  None

• Do you have a Contributor Agreement? –  Yes

• Any legal issues or concerns? –  None at the moment

Page 17: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

17

RI and TCK development

• How are you developing the RI and TCK? –  In the open using the Griffon framework as testbed

•  If collaboratively (through an open-source project) – How many committers and who? •  Andres Almiray, Alexander Klein

•  Is the RI available for public download? –  http://github.com/griffon/griffon (not yet retrofitted with

jsr377-api) •  Is the TCK available for public download?

–  Not yet • Do you have a source-code repository?

–  https://github.com/jsr377

Page 18: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

18

Participation and transparency

• Provide a pointer to the JSR page on JCP.org –  https://jcp.org/en/jsr/detail?id=377

Page 19: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

19

Adopt-a-JSR

• Are you participating in the Adopt-a-JSR program? –  Not yet.

•  If so, what kind of contributions/help have you received and from whom/which JUGs? – We have received a handful of contributions at

Hackergarten meetings in Basel, Zürich, Luzern, and JavaOne.

Page 20: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

20

Mailing lists or forums

• How are you communicating with the public and how can they communicate with you? –  http://jsr377.github.io/site/ –  https://twitter.com/jsr377

• Provide pointers to public mailing list(s) and/or forum(s) –  http://jsr377-api.40747.n7.nabble.com/

• Total number of participants (EG members, non-EG members?) –  20

Page 21: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

21

Issue tracker

• Total number of issues? –  2

• How many in each state (open, closed, deferred, etc?) –  2 open

• Average number of issues logged per month? –  0

• Average number of issues resolved per month? –  0

• How many different people logged them? –  1

Page 22: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

22

Questions, discussion, next steps

Page 23: JSR 377 Desktop Application Framework...2017/09/28  · 4 Goals • Define APIs that can be used to build Java Desktop (and possible mobile) applications. • Inspired in previous

Thank You!

http://jcp.org Thank you!

http://jcp.org


Recommended