Thursday, December 11, 2014

What is next for JAX-RS 2.1

Hi everyone, it's been awhile I know, but JAX-RS 2.1 is now getting shape and below are the tasks planned for this next version.

 * Adding support for SSE.
 * Improving integration with CDI.
 * Exploring support for non-blocking I/O in providers (filters, interceptors, etc.).
 * Evaluating ways in which declarative security can be supported either directly in this JSR or by leveraging other EE-platform JSRs.
 * Making JAXB conditional on runtimes where it is available.
 * Providing integration with JSON-B.
 * Building upon the hypermedia API added in version 2.0.
 * Investigating the reactive programming paradigm as a way to improve the JAX-RS asynchronous client API.
 * Evaluating any requirements necessary to support the use of JAX-RS resource classes as controllers in the MVC 1.0 JSR.

There is already a discussion around hypermedia and the challenges of supporting structural links in JAX-RS. Looking forward for a good way to deal with hypermedia and create better / intelligent APIs.

That is about it, let's see how it goes from now!

See ya!

Thursday, March 13, 2014

How the Java Community Process (JCP) works and how to contribute? #adoptajsr

The purpose of this article is to show more clearly through a workflow, how the JCP works and what actions can be taken by the community to assist in this process. The following figure shows how the process works, and instructions on how you can help. These are some ways to contribute, although there must be others that were not mentioned.

As you can see the process has several steps, and some encourage participation and collaboration of the community. Following you can understand what is done in each of these steps and how much time they take to be completed.

JSR Submission
The process starts with the submission of a new JSR through a JCP Member.

JSR Review (2 to 4 weeks)
The next step, after submission, is the JSR Review.  During this period the public can review and comment on a proposed new JSR before the JSR Approval Ballot.

Approval Ballot and Expert Group Formation (14 days)
The JSR Review é followed by JSR Arpproval Ballot, when the Executive Committee votes to approve or reject the proposal.

Early Draft Review (30 to 90 days)
Once a JSR is approved, a group of experts is formed to develop a first draft of the specification that both the community and the Executive Committee review. Members who have signed a JSPA and wish to nominate an Expert to serve on one or more of the Expert groups can do so by submitting a nomination request. When an Expert Group completes the first draft of their specification, they will make it available to the public for Early Draft Review. The Expert Group uses the feedback from the review to revise and refine the draft.

Public Review (30 to 90 days)
Next, the JSR draft goes for public review and anyone with internet connection can read and comment. 

Public Review Ballot (14 days)
At the end of the review, the Executive Committee will decide if the draft shall go to the next step.

Proposed Final Draft (Undetermined)
The Expert Group uses the public feedback to further revise the document into a Proposed Final Draft.

Final Approval Ballot (14 days)
The leader of the Expert Group then sees that the reference implementation and its associated Technology Compatibility Kit are completed before sending the specification to the Executive Committee for final approval.

Final Release (Undetermined)
Once approved, the final specification, reference implementation and Technology Compatibility Kit are published.

Maintenance Review (30 days)
A period of at least 30 days prior to finalization of a Maintenance Release when Members and the public consider and comment on the change the Maintenance Lead proposes to include in the release, as identified in the associated Issue List.

Maintenance Review Ballot (7 days)
The Executive Committee votes to approve all proposed changes to a specification to be carried out immediately or reject the changes and thus either require the Maintenance Lead to submit a revised list of changes, or defer the changes until the specification can be revised by an expert group in a new JSR. Challenges to one or more tests in a specification's Technology Compatibility Kit are ultimately decided by the Executive Committee if they cannot be otherwise resolved.

Once you understand how each step works, the question that must be popping up is: How to give feedback?
To give feedback to the JCP you can use the mailing list or if it is specifically about a spec, you can use the mailing lists of the specification itself that you will find on


Executive Committee (EC)
The Members who guide the evolution of the Java technologies. The EC represents a cross-section of both major stakeholders and other Members of the Java community. EC members are appointed in an annual election process.

Expert Group (EG)

The group of Experts who develop or make significant revisions to a Specification. 

Java Specification Participation Agreement (JSPA)
A one-year renewable agreement between Oracle America and a company, organization or individual that allows the latter entities to participate in the Java Community Process.

I hope this post had contributed to a better understanding of the JCP, share if you like and let other people have access to this information. My twitter is @ivanjunckes if you want to talk about it!

See you soon!