First proposed back in December last year, JSR 377 for desktop and embedded applications has now been officially approved in a ballot by the Java Executive Committee (the folks responsible for steering the evolution of Java tech in the Java Community Process (JCP). In total, this Java Specification Request gained 24 nods from 25 members. There will now be an effort to define a specification for issues and behaviours that regularly crop up in most desktop applications.

With the advance of Embedded Java and the IoT happening apace, there’s never been a better time to consolidate an effort to share codebases between desktop and embedded projects. According to the JSR, this is pertains to the following:

  • dependency injection via JSR330
  • common application structure
  • application life-cycle
  • localised resources
  • resource injection
  • localised configuration
  • decouple state from UI (binding)
  • persistence session state (preferences)
  • action management
  • component life-cycle
  • light-weight event bus
  • honour threading concerns (specific to UI toolkit)
  • application extensibility via plugins (implies modularity)

The Netbeans platform, Griffon framework and Eclipse will all be used as “inspiration” for this project, licensing permitting. However, whilst there are several technologies that deliver the above features, as Andres Almiray notes, by creating a standard API, it will make it easier across the board for kicking off new projects or fixing existing ones. This JSR is proposed as a stand-alone, and won’t be attached to any particular JDK.

Almiray, who will be the official spec lead for JSR 377, welcomed the news today, commenting to Voxxed that, “JSR 377 is the logical step forward to develop cross-platform (desktop, embedded, mobile) applications in the Java ecosystem.”

The APIs proposed by this JSR will sit “on top of any UI toolkit without requiring a bridge from a toolkit in particular”, meaning that none of the target UI toolkits will need to go to the trouble of implementing a new API. Any new bridges required will come courtesy of the RI side.

As both EC members IBM and SouJava noted, whilst the technical scope and scale of this project are certainly “daunting”, SouJava comments that, “the competence of the EG members should offset any issues” in getting this “important” JSR off the ground.

If you’d like to contribute,  go to And if you’d like to learn more about how Java comes together, click here for a great summary by Mani Sarkar.


JSR 377 Approval “Logical Step Forward” for Cross-platform Apps in Java

| Java Language| 919 views | 0 Comments
About The Author
- Editor of, focusing on all things Java, JVM, cloud-y, methodical, future-fantastic, and everything in between. Got a piece of news, article or tutorial you'd like to share with your fellow Voxxians? Drop us a line at

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>