JSR News: Concurrency, Web Services, J2EE Client Provisioning


News: JSR News: Concurrency, Web Services, J2EE Client Provisioning

  1. There have been a few movements in the JSR space in the last few days. For one, the long anticipated JSR 166, Doug Lea's concurreny utilities standard has gone to public review. The executive committee had a final approval ballot for JSR 124, J2EE Client Provisioning, which passed.

    Jim Knutson is releasing a maintenence review for the Enterprise Web Services 1.1. JSR 231: Java Bindings for OpenGL also gets going.

    JSR 166: Concurrency Utilities
    JSR details page
    Download public review

    Doug Lea and friends have gotten JSR 166 to public draft.

    JSR-166 introduces package java.util.concurrent containing utility classes commonly useful in concurrent programming. Like package java.util, it includes a few small standardized extensible frameworks, as well as some classes that provide useful functionality and are otherwise tedious or difficult to implement.

    JSR-166 also includes a few changes and additions in packages outside of java.util.concurrent:


    A basic (nonblocking) Queue interface extending Collection is introduced into java.util. Existing class LinkedList is adapted to support Queue, and a new non-thread-safe PriorityQueue is added.


    Three minor changes are introduced to the Thread class:

    - It now allows per-thread installation of handlers for uncaught exceptions. Ths optionally disassociates handlers from ThreadGroups, which has proven to be too inflexible. (Note that the combination of features in JSR-166 make ThreadGroups even less likely to be used in most programs. Perhaps they will eventually be deprecated.)
    - Access checks are no longer required when a Thread interrupts itself. The interrupt method is the only way to re-assert a thread's interruption status (and in the case of self-interruption has no other effect than this). The check here previously caused unjustifiable and uncontrollable failures when restricted code invoked library code that must reassert interruption to correctly propagate status when encountering some InterruptedExceptions.
    - The destroy method, which has never been implemented, has finally been deprecated. This is just a spec change, reflecting the fact that that the reason it has never been implmented is that it was undesirable and unworkable.

    Method nanoTime is added to System. It provides a high-precision timing facility that is distinct from and uncoordinated with System.currentTimeMillis.

    Removing ThreadLocals:
    The ThreadLocal class now supports a means to remove a ThreadLocal, which is needed in some thread-pool and worker-thread designs.

    JSR 124: J2EE Client Provisioning Specification
    JSR details page

    This JSR aims to define Java standard which partitions server applications that provision client applications in such a way that the details of any one client provisioning model are abstracted and standardized.

    The committee voted in the Final Approval Ballot, and this JSR was passed. There were zero 'No' votes.

    View the final ballot results

    JSR 921: Implementing Enterprise Web Services 1.1
    JSR details page
    View changelog for 1.1 changes

    View original JSR: http://jcp.org/en/jsr/detail?id=109

    JSR 231: Java Bindings for OpenGL
    JSR details page

    This specification will describe the Java bindings to the native 3D graphics library, OpenGL. This will include all core GL calls as well as the GLU library. Functionality available from the wgl/glx/agl platform specific libraries will be abstracted out to create a platform independent way of selecting framebuffer attributes and performing platform specific framebuffer operations. The specification will be made device agnostic to allow for the possibility of subsetting the API for different classes of devices (via future JSR's).
  2. The concurency stuff looks interesting.

    What's the difference between the AtomicXXX.compareAndSet() and .weakCompareAndSet() ?
  3. How many OpenGL JSRs will there be?[ Go to top ]

    There is already a fairly mature one that runs on OSX, Linux, Solaris, and Windows in the Java Gaming APIs (also does OpenAL - not as mature, and Input).

    Then there was another one announced by SGI and yet another earlier this year. Do the folks at Sun even speak to each other?