On Tue, Apr 20, 2010 at 2:35 PM, Pete Muir <pmuir@redhat.com> wrote:

On 20 Apr 2010, at 19:11, Dan Allen wrote:

> On Tue, Apr 20, 2010 at 12:20 PM, Steven Boscarine <steven.boscarine@childrens.harvard.edu> wrote:
> On 04/20/2010 06:14 AM, Pete Muir wrote:
> > It's not the same JAR, but it is the same API (subtly different ;-)
> >
>
> The contents are the same, correct?  There is no JBoss-specific magic in
> an org.jboss.spec.javax.* jar, right?  The classes and interfaces are
> otherwise identical, right?

This is almost certainly not the case - take for example the JSF API - it contains a lot of impl-specfic logic. Now, we happen to use the JSF RI in JBoss AS, so it's likely we use the JSF API RI (javax.faces:jsf-api) too. But it's not the only spec like this...

So, as I said, to be clear, the public API is (of course) exactly the same but the classes aren't. This is subtle, but important, because you should not use a JBoss AS *at runtime* inside another container. This could affect us in test cases in exactly the same ways as  the stripped APIs hit test cases

It is however safe to compile against the JBoss versions of the APIs and deploy to GlassFish.

Right. They are legit Java EE APIs. That's all you should assume. Thanks for clarifying.
 

Given the difficulties around embedded test classpaths, I do wonder if we can even recommend that people ever use any API jars except those for their target container. We need to do some brainstorming here. I added it to the meeting agenda.

I mentioned to Jason Van Zyl that there should be a way to specify a "compile only" scope in Maven. He was open to the idea. I think we should push him on it. To me, compile only aligns perfectly with a platform APi JAR. It's not used on the test classpath or packaged.
 
> Sonatype has been working on merging the java.net Maven repository into central. Here's the story as I know it. They have put a lot of effort into it and they haven't gotten much support. So this is a one-time important and won't address future publication needs. So while it gives us the JARs we need in the short term, we still need a long term strategy.

They will be offering a long-term strategy based on nexus for java.net projects that want it (and some projects have popped up and asked for it). So at least there will be an avenue for projects that want it.

They may be going further, I need to check with the Sonatype guys.

Let's keep pushing them on this too because I'm consistently getting feedback after every talk that Java EE adoption is struggling because of missing API dependencies in the central repository.

-Dan

--
Dan Allen
Senior Software Engineer, Red Hat | Author of Seam in Action
Registered Linux User #231597

http://mojavelinux.com
http://mojavelinux.com/seaminaction
http://www.google.com/profiles/dan.j.allen