[jboss-dev] Javaee Spec Jars
Andrew Lee Rubinger
andrew.rubinger at redhat.com
Fri Jan 22 15:37:35 EST 2010
I don't see how this discussion is any different from a generic
dependency issue. We have some API which may be consumed by N projects.
The namespace must be "javax.something". Would you look in some
project implementation for this, or somewhere externally shared?
"Multimodule builds are to be used to group modules together in a single
build."[1]
From this I infer that modules are intended to share release cycles.
Now, I don't consider the EJB Specification APIs to be a part of the
JBoss EJB implementation. We want to continually publish updates, bug
fixes, and enhancements without re-releasing the Spec APIs.
From this setup I'd conclude that the JBoss EJB Impl should depend upon
the EJB Spec APIs, exporting the dependency to consumers. If we want to
change the Spec APIs to adjust source or JavaDoc or whatever, we can
update the module shared by all, cut a new release, and update our
dependency.
Contrast that with the ShrinkWrap API; here we actually re-release the
API as a module as part of the main release cycle, but only because:
1) It's just plain easier to manage given the tools available.
2) We may want to update user-visible implementation classes (in a way
that doesn't break binary compatibility)
3) We may want to update JavaDocs, and have there be a 1:1 relationship
between releases and docs. Easier for users.
Spec APIs on the other hand are:
1) Shared by N impls
2) Intended to be locked and done after TCK passes
S,
ALR
[1]
http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-multi-vs-inherit.html
On 01/22/2010 02:50 PM, Jesper Pedersen wrote:
> On Friday 22 January 2010 13:57:21 Brian Stansberry wrote:
>>> The project will release the API under its own Maven artifact using the
>>> project group id - as the JCA container has a life besides AS.
>>
>> What is the rationale for this? The naming convention Paul outlined is
>> in no way JBoss AS specific. The whole point of this exercise is to
>> reduce confusion around what the correct spec impl is for use in
>> jboss.org projects. Having two releases of the same thing under the
>> org.jboss namespace is totally confusing.
>>
>
> My point is that AS will have one public API and the standalone JCA project
> will have its own public API.
>
> Each of these should be clear and documented, and will target different groups
> of developers. Yes, with some overlap I know.
>
>> If that point's accepted, I don't see the significance of where in the
>> svn repo the source lives. The only thing I could see is if you don't
>> want to have the rest of the JCA project depend on an external spec jar,
>> but instead manage it as a single project with multiple modules, the way
>> the AS was before it was mavenized. But then you're releasing a new
>> version of the spec every time the rest of the project needs a release.
>>
>
> EJB3 seems to be managing individual version identifiers for their components
> just fine.
>
> Best regards,
> Jesper
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development
--
Andrew Lee Rubinger
Sr. Software Engineer
JBoss by Red Hat
http://exitcondition.alrubinger.com
http://twitter.com/ALRubinger
More information about the jboss-development
mailing list