The Java EE 5 platform spec listed the standard ways to make library JARs available to the application. It mentioned nothing about top-level JARs being added to the application's class path. That was a product feature of GlassFish (and its predecessors) that, I believe, was added years ago before Java EE 5 and its library directory concept.
The basic change about this in the Java EE 6 platform spec is a mandate that the server not automatically make other JARs available except by the mechanisms described in the spec. The EE 6 spec does allow implementations to provide explicit for developers to make other JARs available, as Hong pointed out earlier.
The persistence unit spec has indeed evolved from 1.0 to 2.0. The following note is in italics on page 310 of the persistence spec which lists the valid locations for persistence units:
[i]NOTE: Java Persistence 1.0 supported use of a jar file in the root of the EAR as the root of a
persistence unit. This use is no longer supported. Portable applications should use the EAR
library directory for this case instead. See [9].
[/i]
I am not an expert in the JCP so I cannot speak to whether this change is truly a bug in the spec in the strict sense, but the spec does highlight the change.
- Tim
[Message sent by forum member 'tjquinn' (timothy.quinn_at_sun.com)]
http://forums.java.net/jive/thread.jspa?messageID=385664