Sunday Feb 20, 2011

NetBeans 7.0 beta 2 is now available

NetBeans 7.0 beta 2 is now out and you can download your copy from this download page. As previously discussed this version has enhancements for GlassFish 3.1 and now ships with an almost final version (b41 to be precise).


One of the main goals for NetBeans 7.0 is alignment with Java SE 7 (project Coin, etc.) but other important features include support for Oracle WebLogic Server (check out this screencast), HTML 5 editing, Maven 3 support, overall improved Java EE support for CDI, JAX-RS, JPA and Bean Validation, and now also support or Git (1.7.x).

Check out more details about this on this page and be sure to read the release notes. Finally note that NetBeans IDE 7.0 Beta 2 is available in no less than 6 languages: English, Brazilian Portuguese, Japanese, Russian, and Simplified Chinese.

Thursday Nov 18, 2010

Majority or 2/3rds? The JSR Inception Votes by the EC

The Java Community Process 2.7 gives the Executive Committee the responsibility to "Select JSRs for development within the JCP", as in the case of the 4 JSRs that Oracle just submitted: 334 (Coin), 335 (Lambda), 336 (Java SE 7) and 337 (Java SE 8).

Yesterday I tried to explain how the rules work but I had to correct the section twice, so here it is again after talking with the PMO (Patrick Curran):

Applying the voting rules to the quartet, we have:

  • Coin and Lambda require that
       2/3rds of the votes cast are YES, there is a minimum of 5 YES votes, and Sun/Oracle must vote YES.
  • Java SE 7 and Java SE 8 require that
       2/3rds of the votes cast are YES, there is a minimum of 5 YES votes, and Sun/Oracle must vote YES.

Yes, the same rules for the 4 JSRs.

The rationale is that Coin and Lambda propose changes to the Java language, and that since Java SE 7 and Java SE 8 include them, they also change the language. The process document is a bit ambiguous about this and Patrick said they would clarify it for the next revision.

Wednesday Nov 17, 2010

How to Read a JSR

As promised, here is a basic Reading Guide to a Java Specification Request (JSR). Technical terms are described in the JCP process (current version is 2.7); the initiation process is in Section 1. I've added some historical background and context.

Examples and comments are as applied to the 4 JSRs just submitted: 334 (Coin), 335 (Lambda), 336 (Java SE 7) and 337 (Java SE 8)

Caveat! I do not work for the JCP office and if there are any discrepancies between the excerpts below and the JCP Document, the official rules win, hands down!

The Submitting Member is the JCP member that is submitting the JSR; for these 4 JSRs, it's Oracle.

The Specification Lead is the JCP member, or the employee of a JCP member that will lead the Expert Group. In our case they are: Joe Darcy (Coin), Brian Goetz (Lambda) and Mark Reinhold (Java SE 7 and Java SE 8).

Coin targets Java SE 7; Lambda targets Java SE 8.

The Initial Expert Group Membership is an initial list of JCP members that have already expressed interest to the EG Lead to participate in the EG. Normally that list is expanded further before the EG starts working.

Increased Transparency was one of the drivers for JCP 2.7 and each JSRs must include a description of how transparency will be achieved in the EG in that is in Section 2.15. The new transparency requirements and infrastructure means that interested parties can follow the activities of the EG without being a member of the EG.

Every JSR has a link to a form to nominate experts to an EG; for instance this one is for Coin. The EG lead decides who to accept; normally it needs to balance representation and expertise with manageability.

The Supporting This JSR section lists JCP members that support the initiation of the JSR. Normally, but not always, these members will also be in the Initial EG Membership. It would be reasonable to expect that EC members that support a JSR will vote for it, but, AFAIK, there is no requirement for that.

Section 2.2 indicates the target platform and section 2.4 what Executive Committee will vote on the JSR. All 4 JSRs will be voted by the SE/EE Executive committee - see the results of the most recent election.

The JSR review is a 2 week period when anybody can review and comment on a new JSR. Comments can be posted through a BBoard; for example this one is for Coin.

EC voting is described in Section A.5; refer to it for a full description but, in a nutshell:

  • "A.5.3 EC Members may cast two types of votes: "yes" and "no". Alternatively, a Member may explicitly abstain or, in the extreme and undesirable case, not vote at all."
  • "A.5.4 Only "yes" and "no" votes count in determining the result of an EC ballot"
  • "A.5.5 Except where noted otherwise in this document, EC ballots are approved if (a) a majority of the votes cast are "yes" votes, and (b) a minimum of 5 "yes" votes are cast. Ballots are otherwise rejected.
  • "A.5.9 EC ballots to approve UJSRs for new Platform Edition Specifications or JSRs that propose changes to the Java language, are approved if (a) at least a two-thirds majority of the votes cast are "yes" votes, (b) a minimum of 5 "yes" votes are cast, and (c) Sun casts one of the "yes" votes. Ballots are otherwise rejected."
  • Note that there are a number of other rules described in that section.

Applying the voting rules to the quartet, we have (I'm awaiting confirmationCorrected!):

  • Coin and Lambda require that 2/3rds of the votes cast are YES, a minimum of 5 YES votes, and Sun/Oracle must vote YES.
  • Java SE 7 and Java SE 8 require that 2/3rds of the votes cast are YES, a minimum of 5 YES votes, and Sun/Oracle must vote YES.

Ballot Results will be posted at the JCP site, in the JCP Blog, and in the JCP Announcement Board. We will also post an update here, at TheAquarium.

I think this covers the basics. Check out the full JCP 2.7 process if you want all the details!

Added - I talked with Patrick Curran to confirm under what rule each JSR falls. Since Coin and Lambda have language changes, they require 2/3rds, and since Java SE 7 and 8 include Coin and Lambda, respectively, they also require 2/3rds.

Wednesday Apr 01, 2009

Pretty Fly (for a Dead Language) - Coin's Fourth Week


Report on the last week of submissions for Project Coin's week 4. 26 new proposals in the last week, 70 altogether; with over 1100 messages in the mailing list. As the song goes... Pretty Fly (for a White Guy) (or a language no longer deemed cool...).

In addition to the relevance of the Java Language, I see this is a good example of the benefits of an open process, with a receptive project leader.

Too many interesting examples to highlight - but I'll choose two from John Rose: JSR 292 Support (mail) and Expressions in Strings. Looking forward to more details on the analysis of the submissions.

Saturday Mar 07, 2009

A Nice Bag of Coins (17 proposals so far)

Nice progress on Project Coin, the project for accepting small changes to the Java Language.


Joe is reporting over 17 proposals in his latest post, including familiar names like Neal Gafter, Josh Bloch and Bob Lee, but also many others; I tried to get an up-to-date count from the Mail Archive but there was hard to count... which is good.

I think the project will be a big success, and may be a good indicator of the type of activity possible through OpenJDK. I'll keep you posted, in the meantime, check out Joe's status update and his Strings in Switch proposal.

Wednesday Jan 28, 2009

OpenJDK Coin - Small Changes to the Java Language


The Java language has seen a few big additions like Generics but also a number of small changes. These changes are less glamorous but they continuously improve the "fit and finish" of the language and I'm happy to see today's announcement by Joe on the new OpenJDK Project Coin targeted to JDK 7.

To get the full background check Joe's description of What's Needed to add a new Java language feature (spec changes, implementation, tests...); his announcement of small changes in JDK 7; and then the criteria for these changes.