Transparency and Community Participation in Java EE 7
By arungupta on Feb 27, 2013
Ever since the launch of Java EE 7 and its component JSRs, Oracle has been very committed to a high level of transparency for all of the JSRs under the Java EE 7 umbrella. We're so excited that increased transparency has resulted in more useful feedback that has improved the Java EE platform. Let me tell you what we've done, how it's helped, and how you can get involved too.
One of the requirements for JCP 2.8 is:
When voting to approve a JSR's transition to the next stage, EC members are expected to take into consideration the extent to which the Spec Lead is meeting the transparency requirements.
Now that many of these JSRs have gone through the Public Review Ballot and others are in progress, it is useful to review how they have contributed to the transparency process.
First of all, all Java EE 7 Expert Groups are operating using the transparency rules defined JCP 2.8. The transparency rule requires:
- Public can read the names on the Expert Group
- Expert Group business is regularly reported on a publicly readable alias
- Mechanism for allow public to provide feedback
- Spec lead respond to the posts on the alias
- Schedule of JSR is publicly available, current, and updated regularly
- Open source process for the development of RI and/or TCK
- Publicly readable and/or writable issue-tracker
- Publicly accessible document archive
- JSR 342 has all the Expert Group member names publicly listed
- All technical discussions on the Expert Group are reported on email@example.com alias and archived
- Anybody outside the Expert Group can subscribe to the alias at firstname.lastname@example.org and provide feedback
- Spec leads regularly read and respond on the alias
- Schedule of JSR is publicly reported at javaee-spec.java.net
- GlassFish is the Reference
Implementation and is completely built in open source. The promoted
builds have been available for several months, the
schedule is completely
coordinates are published, and NetBeans
tooling is available for some time. All this allows
developers to play with the bleeding edge Java EE 7 technologies
as they are integrated in GlassFish. Public
forum allows the users to communicate specifically about
- Publicly readable/writable issue tracker
- Publicly accessible document
Many of our spec leads have gone beyond this in their outreach to the community with blogs, talks, chats, and more. The Java EE 7 Expert Group recently concluded a public survey seeking community input to define key areas in the platform such as which specifications should be included in the Web Profile, should CDI be enabled by default, expanded use of
@Stereotype, and expansions of Interceptors to all Java EE components. Over 1100 respondents voted, make their voices heard, and help decide the direction of the platform.
The table below provides:
- Public website for each specification in Java EE 7. All of our
JSRs that are part of the Java EE 7 Platform are being run in
the open, using java.net projects. These JSRs, and links
to their respective projects are listed on the home
page of the Java EE 7 Platform JSR and in the table below.
Each page has publicly viewable Expert Group mailing lists as
Users observer lists. The Users lists receive copies of all
expert group emails, as well as providing users the ability to
post feedback and engage in discussions with each other and with
expert group members. All lists have publicly viewable archives
on the java.net project sites.
Similarly, all projects have publicly accessible download areas, and JIRA issue trackers where bugs and suggestions for new features can be posted, and which also serve as another means of discussion with EG members. The schedules and interim drafts of the specification were posted on the main project page and publicly visible Downloads area.
- Transparency Checklist columns shows the status of different JSRs meeting the transparency requirements of JCP 2.8.
- Community Participation represents the increase in community
participation above and beyond the core Expert Group for each
Specification. As you can see the participation from the
community outside the Expert Group is pretty significant and has
worked really well.
- To encourage further community participation, different Java
EE 7 Expert Groups defined specific areas to provide feedback
using Adopt-a-JSR. We saw
tremendous success with the effort with several JUGs joining the
effort. The last column lists different JUGs that have adopted a
particular JSR. In several cases, JUGs have adopted multiple
|Specification / JSR||Transparency
|Java EE 7
2.2 (JSR 344)
||SouJava Campinas JUG
||✓||✓||✓||✓||✓||✓||✓||✓||Only public forum
|Bean Validation (JSR 349)||✓||✓||✓||✓||✓||✓||✓||✓||Only public forum
The map below shows geographical coordinates for different JUGs participating in the Adopt-a-JSR effort for Java EE 7:
View Java EE 7 Adopt-a-JSR Maps in a larger map
Specific contributions from Adopt-a-JSR effort:
- London Java Community (LJC) organized a WebSocket
and JSON Hack Day. The event was sold out within 2 hours
and had 17 people on the waiting list. The event started with a
presentation on explaining the APIs in Java API for WebSocket
(JSR 353) and Java API for JSON Processing (JSR 353). The
attendees designed a Market Ticker application. All the presentation
material and source code
was shared publicly. LJC also created projects (cdiex-palindrom-jsf
to test CDI 1.1 specification.
- Chennai JUG is building a multi-player game that can be played
across the Internet. The application uses Java API for WebSocket
1.0 (JSR 356), Java API for JSON Processing 1.0 (JSR 353), Java
Persistence API 2.1 (JSR 338), JavaServer Faces 2.2 (JSR 344)
and Batch Applications for Java Platform (JSR 352) and/or
Enterprise JavaBeans 3.2 (JSR 345) and so provide a holistic
experience of building a Java EE 7 application. The energetic
JUG meets regularly using G+ hangouts and in the neighborhood
coffee shops to coordinate. And then they go hacking the
application on github.
There are 5 developers that are regularly contributing to the
application and the JUG plans to incorporate several other
technologies as part of an ongoing effort.
- Morocco JUG will be presenting on Java EE 7, WebSocket, and JSON at Java Developer Conference, Cairo, Egypt.
- Cologne JUG had a meetup on about JSF 2.2
and another one on CDI 1.1
- BeJUG has adopted JSR 356 have planned a hackathon
on Mar 6th. They plan to build a cross-browser Tic-Tac-Toe
application using JSR 356. One of the JUG members is on its way
to become a committer in Tyrus
- the Reference Implementation for JSR 356.
- Ceara JUG has planned a set of presentations on Mar 9 by on JAX-RS 2.0 (JSR 339), Java API for JSON Processing (JSR 353), JavaServer Faces 2.2 (JSR 344), and Java API for WebSocket (JSR 356).
- San Francisco JUG organized a Java EE 7 and WebSocket session and planning a session on JAX-RS 2.0.
- SouJava is contributing by adding new features from JSF 2.2 to
Even though many of the JSRs have gone through Public Review Ballot and others are in progress, its never too late to contribute. So how do you contribute ? Just follow this three step process:
- Join a JUG: If you do not participate in your local
Java User Group, then find your
local JUG and participate. There are several already
active JUGs around the world. If one does not exist in your
neighborhood, now is your time to shine as a leader and start
- Participate in Adopt-a-JSR: Encourage JUG members to participate in the global Adopt-a-JSR effort. Several JUGs are already participating and contributing very effectively.
- Share the joy: Pick any of the Java EE
7 JSRs that are particularly interesting, download GlassFish
4 promoted builds, read javadocs, build a sample
application, provide feedback to the Expert Group, and share the
Java EE 7 JSRs are truly operating in a fully transparent manner and took community participation to a new level. We are always ready for feedback!