dev@glassfish.java.net

Re: Implementation details in javax.persistence.persistence-api Maven jar???

From: Bill Shannon <bill.shannon_at_sun.com>
Date: Fri, 22 Jun 2007 14:08:35 -0700

Sahoo wrote:
> Hi,
>
> As per the original intent documented here [1], the
> persistence-api-${version}.jar should not be containing any method
> implementation details, but the current ones [2] have them. Check the
> Persistence.class that's part of the currently hosted
> persistence-api-1.0.jar and persistence-api-1.0b.jar.
>
> So, the question is are we not stripping the implementation details? Is
> this by choice or a bug? I think it's a bug.
>
> Thanks,
> Sahoo
>
> [1] http://weblogs.java.net/blog/ludo/archive/2007/01/java_ee_5_apis.html
> [2] http://download.java.net/maven/1/javax.persistence/jars/

I guess it depends on how you think these things are intended to be used.

With things like the persistence APIs, it's feasible to get the API
definitions from the maven repository and get a separate implementation
from the maven repository (or elsewhere), combine them together, and have
something useful. The APIs are designed to support pluggable implementations.
That's *much* less true with javaee.jar as a whole.

javaee.jar is just a convenient collection of all the Java EE APIs for
people who just need to (e.g.) compile against the APIs without needing
a Java EE runtime in the compilation environment. We haven't seen any
demand for that compatibility for the individual Java EE specs.

For the individual Java EE specs, people seem to want a complete implementation
they can just use, or they want the API definitions in a form that allows
them to build their own implementation. The separate API jar files
satisfy the latter need.

If there's demand for API definition files that are only good for compiling
against, we could do that too.