Java: A platform for platforms
Sun's reorg may seem promising to shareholders but it's also a scramble for position. The question now is whether Sun can, or wants to, maintain its hold on Java technology. Especially with enterprise leaders like SpringSource and RedHat investing heavily in Java's future as a platform for platforms

Also see:

Discuss: Tim Bray on 'What Sun Should Do'

Featured Whitepapers
Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

A look inside the Java Community Process

A detailed examination of the wins and losses of the Java Community Process

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
The Java Community Process (JCP) formalizes the international Java community's efforts to improve Java. Its goal is to cultivate a wider participation in the specification of new and existing Java APIs. (For a definition of API and other terms in this article, see Glossary.) </!> Ken Urquhart, the JCP project leader at Sun, believes Java is successful "because people have given the time and effort" to make it successful. The JCP attempts to expand on that success. In fact, Java creator James Gosling says that the process is all about "getting the managers out of the room and letting the technical people do their thing."

Sun and the JCP participants have been very happy with the results: 38 Java Specification Requests (JSRs) have been submitted since the program started ten months ago. Two to four new participants join the process every week. The first public reviews of the new specifications began in June, at JavaOne '99.

Not everyone in the Java community is as happy as Sun is with the JCP, however. Many small developers, and even some large companies, consider the process neither open nor vendor neutral. Organizations wishing to participate in the JCP must pay annual fees to Sun. Only then can they provide experts to the JCP and actively shape a specification.

In this article, I examine the Java Community Process in detail, looking at how the process works and at the issues being raised by some members of the Java community. I also note several ways you can get involved with the Java Community Process and suggest a few improvements Sun can make to it.

The process

The Java Community Process consists of a series of steps designed to produce high-quality, widely accepted Java specifications. The formal JCP documentation (see Resources) states that those steps are taken "in cooperation with the international Java community." As JCP project leader Urquhart puts it, "Nothing can be developed in a vacuum," adding that industry involvement makes Java better and more widely accepted. Sun says that it has been using collaborative methods to develop the Java APIs since 1995 and that the JCP -- announced in December 1998 -- attempts to structure and document that collaboration and to encourage participation in it.

Simon St. Laurent disagrees. In a posting to the XML-dev mailing list, he stated, "The JCP may feel like an 'open' process if you're a mammoth ... but to us small mammals, it's the same old s***, different day." St. Laurent is not alone. Elliotte Rusty Harold, the author of several Java books and the keeper of the Café au Lait Java FAQ (see Resources), thinks the JCP "is very much a gated community designed to keep out the riff-raff like you and me and let Sun run things the way it sees fit."

The following table outlines the JCP and the length of time associated with each step of the process:

Table 1. Overview of JCP
Step Timeframe
Participant submits a new specification, or JSR (Anytime)
Other participants review the JSR 7 to 30 days
PMO reviews comments (Accepts, rejects, or defers JSR)
Call For Experts (CAFE) At least 15 days
PMO selects specification lead (Most capable person chosen from CAFE nominations)
Specification lead forms Expert Group (From other CAFE nominations and other sources)
Expert Group writes draft However long it takes
Participants review draft At least 30 days
Specification lead revises draft Up to 30 days
Public reviews draft At least 30 days
Specification lead revises draft Up to 30 days
Public release Depends on completion of CTS and RI
Expert Group develops CTS and RI (Specification lead is responsible for completion)
Expert Group decides that specification, CTS, and RI are complete However long it takes
Final release of specification (Everything complete)
Maintenance of specification (Specification lead assumes responsibility for maintenance)


Changing the world, one API at a time

At the heart of the Java Community Process is the Java Specification Request (JSR), which describes the proposed specification for a new set of APIs or for a change to existing Java APIs. The JSR provides information about the participants submitting the request, briefly describes the proposed specification and the reason for developing it, and notes any documentation or implementations that could be used as a starting point for the development of the new specification.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources