X

Transparency and Community Participation in Java EE 7

Guest Author


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 youclass="moz-txt-tag"> can get involved too.



One of the requirements for href="http://jcp.org/en/procedures/jcp2_8">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 href="http://jcp.org/en/resources/2.8">JCP 2.8. The
transparency rule requires:

    1. Public can read the names on the Expert Group
    2. Expert Group business is regularly reported on a publicly
      readable alias
    3. Mechanism for allow public to provide feedback
    4. Spec lead respond to the posts on the alias
    5. Schedule of JSR is publicly available, current, and updated
      regularly
    6. Open source process for the development of RI and/or TCK

    7. Publicly readable and/or writable issue-tracker
    8. Publicly accessible document archive



      Happy to report that all the JSRs in Java EE 7 have followed
      the guidelines mentioned above. Providing a specific example using
      JSR 342:

        1. JSR 342 has
          all the Expert Group member names publicly listed
        2. All technical discussions on the Expert Group are reported on
          jsr342-experts@javaee-spec.java.net alias and href="http://java.net/projects/javaee-spec/lists/jsr342-experts/archive">archived
        3. Anybody outside the Expert Group can subscribe to the alias at
          href="http://java.net/projects/javaee-spec/lists/users/archive">users@javaee-spec.java.net
          and provide feedback
        4. Spec leads regularly read and respond on the alias
        5. Schedule of JSR is publicly reported at href="http://java.net/projects/javaee-spec/pages/Home#Java_EE_7_Schedule">javaee-spec.java.net
        6. GlassFish is the Reference
          Implementation and is completely built in open source. The href="http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/">promoted
          builds have been available for several months, the
          schedule is href="https://wikis.oracle.com/display/GlassFish/4.0BuildSchedule">completely
          transparent, href="https://wikis.oracle.com/display/GlassFish/Java+EE+7+Maven+Coordinates">maven
          coordinates are published, and href="http://wiki.netbeans.org/JavaEE7Preview">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. href="http://www.java.net/forums/glassfish/glassfish">Public
          forum allows the users to communicate specifically about
          the RI.

        7. Publicly readable/writable href="http://java.net/jira/browse/JAVAEE_SPEC">issue tracker
        8. Publicly accessible href="http://java.net/projects/javaee-spec/downloads">document
          archive



          The transparency checklist by each JSR is explained in the table
          below.




          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 href="https://blogs.oracle.com/theaquarium/entry/java_ee_7_survey_results">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 href="http://java.net/projects/javaee-spec/pages/Home">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 href="http://glassfish.java.net/adoptajsr/">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
            JSRs.













































































































































































































          Specification / JSR Transparency
          Checklist

          Community

          Participation

          Adopt-a-JSR
          ABCDEFGH
          href="http://java.net/projects/concurrency-ee-spec/">Concurrency
          (JSR 236)



          ~250%



          JPA
          (JSR 338)

          ~250%

          Chennai JUG

          Hyderabad JUG

          href="http://java.net/projects/jax-rs-spec/">JAX-RS
          (JSR 339)

          ~350%

          CE JUG

          Indonesia JUG

          LJC

          Madrid JUG

          Morocco JUG

          Peru JUG

          SouJava

          href="http://java.net/projects/servlet-spec/">Servlet
          (JSR 340)

          ~350%



          EL
          (JSR 341)

          ~125%



          href="http://java.net/projects/javaee-spec/">Java EE 7
          (JSR 342)

          ~600%

          LJC

          JMS
          (JSR 343)

          ~500%

          FASO JUG

          Indonesia JUG

          LJC

          Peru JUG

          href="http://java.net/projects/javaserverfaces-spec-public/">JSF
          2.2 (JSR 344)

          ~200%

          CE JUG

          Chennai JUG

          Cologne JUG

          Hyderabad JUG

          SouJava

          EJB
          (JSR 345)

          ~300%

          SouJava Campinas JUG

          CDI
          (JSR 346)

          Only public forum

          Chennai JUG

          Hyderabad JUG

          Indonesia JUG

          LJC
          Bean
          Validation
          (JSR 349)
          Only public forum

          SouJava
          Batch
          (JSR 352)

          ~750%

          Chennai JUG

          LJC, SouJava

          href="http://java.net/projects/json-processing-spec/">JSON
          (JSR 353)

          ~650%

          CE JUG

          Congo JUG

          LJC

          Mbale JUG

          Morocco JUG

          Peru JUG

          SouJava

          Toronto JUG

          href="http://java.net/projects/websocket-spec/">WebSocket
          (JSR 356)

          ~400%

          BeJUG

          LJC

          Chennai JUG

          Morocco JUG

          CEJUG

          NY SIG



          The map below shows geographical coordinates for different JUGs
          participating in the Adopt-a-JSR effort for Java EE 7:





          View href="https://maps.google.com/maps/ms?msa=0&msid=215435580086277558608.0004d6548767be68efe5f&ie=UTF8&t=h&z=2&source=embed"
          style="color:#0000FF;text-align:left">Java EE 7 Adopt-a-JSR Maps
          in a larger map




          Specific contributions from Adopt-a-JSR effort:
          • London Java Community (LJC) organized a href="http://www.meetup.com/Londonjavacommunity/events/101954512/">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 href="http://java.net/projects/adoptajsr/downloads/download/wesocket-jsonhackday-130208072652-phpapp01.ppt">presentation
            material and href="https://github.com/Adopt-a-JSR/JSR-353-JSON">source code
            was shared publicly. LJC also created projects (href="https://github.com/Adopt-a-JSR/cdiex-palindrome-jsf">cdiex-palindrom-jsf
            and cdiex-datastore)
            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 href="https://github.com/jugchennaiadoptjava/UrbanTravellers/tree/develop">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 href="http://jdc2013.egjug.org/session/introduction_json_websocket_apis_hackday">Java
            Developer Conference, Cairo, Egypt.
          • Cologne JUG had a meetup on about href="http://java.net/projects/jugc/pages/JSR-344">JSF 2.2
            and another one on href="http://jugcologne.github.com/Adopt-A-JSR-346/">CDI 1.1
            (href="http://www.youtube.com/watch?v=YOeyKGwVafE&feature=youtu.be">video).

          • BeJUG has adopted JSR 356 have planned a href="http://www.bejug.org/confluenceBeJUG/display/BeJUG/Java+WebSockets+Hackathon">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 href="http://www.cejug.org/2013/02/22/cafe-com-tapioca-de-marco/">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 href="http://www.sfjava.org/events/93511462/">Java EE 7 and
            WebSocket session and planning a session on href="http://www.sfjava.org/events/105395862/">JAX-RS 2.0.
          • SouJava is contributing by adding new features from JSF 2.2 to
            Scrum
            Toys
            .


          Several other JUGs are doing an outstanding work and contributing
          towards making Java EE 7 as the best release ever. All these efforts
          truly indicate that Java EE 7 is getting grass roots participation
          from the global community. This truly allows early feedback on the
          specification and implementation from the end user and developers
          who will eventually use these APIs. Overall this leads to a higher
          quality deliverables and will hopefully eventually lead to a faster
          adoption as well.



          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 href="http://www.java.net/jugs/java-user-groups">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
            one.

          • Participate in Adopt-a-JSR: Encourage JUG members to
            participate in the global href="http://java.net/projects/adoptajsr/pages/Home">Adopt-a-JSR
            effort. Several JUGs are already participating and
            contributing very effectively.
          • Share the joy: Pick href="http://glassfish.java.net/adoptajsr/">any of the Java EE
            7 JSRs that are particularly interesting, download href="http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/">GlassFish
            4 promoted builds, read javadocs, build a sample
            application, provide feedback to the Expert Group, and share the
            joy!


          href="https://blogs.oracle.com/arungupta/entry/adopt_a_jsr_for_java">
          Adopt-a-JSR for Java EE 7: Getting Started provide more
          details on how your JUGs can contribute effectively.



          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!


          Join the discussion

          Comments ( 1 )
          • Jim Jiang Tuesday, April 23, 2013

            Miss GreenTea JUG from China who is in Expert Group of JSON (JSR 353)


          Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.