[jboss-jira] [JBoss JIRA] Commented: (JBEE-15) Break all EEl apis into separately versioned subprojects

John Casey (JIRA) jira-events at lists.jboss.org
Wed Jan 20 14:02:47 EST 2010


    [ https://jira.jboss.org/jira/browse/JBEE-15?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12507321#action_12507321 ] 

John Casey commented on JBEE-15:
--------------------------------

Just diving in here... :)

There are two concerns about where the spec version goes in the ID, from what I can tell:

1. if you include it in the artifactId, such as with servlet-api_2.5_spec, then you can have problems with servlet-api_2.5_spec and servlet-api_2.4_spec landing side-by-side in a lib/ folder. This would mean you'd have to add the appropriate exclude to _all_ dependencies that depend on servlet-api_2.4_spec in order to keep it out of builds.

2. If you include the spec version the artifact version, as with servlet-api-spec:2.5-1.0 (where 2.5 is the spec version, and 1.0 is the jboss release version of that spec), the there could be some confusion in Maven WRT handling version ranges. I'm not thinking of a specific case where I've seen this fall down, just knowing version ranges and non-typical versions (not x.y.z and similar) are a bit of a hot spot for problems in Maven.

IMO, if you're likely to hit a major bump in the road in terms of Maven functionality not living up to expectations either way, then the second approach is much simpler to fix in a Maven 2.x release because it doesn't require changing the POM syntax. 

In the first approach, to achieve a global exclude for servlet-api_2.4_spec would require adding a new XML section to the POM that is outside of any specific dependency, and applies to the dependency sub-graph of all project dependencies. This isn't really approachable until after Maven 3.0 GA.

> Break all EEl apis into separately versioned subprojects
> --------------------------------------------------------
>
>                 Key: JBEE-15
>                 URL: https://jira.jboss.org/jira/browse/JBEE-15
>             Project: JBoss JavaEE APIs
>          Issue Type: Task
>          Components: Deployment API, EJB API, JACC API, JASPI API, JAXR API, JCA API, JMS API, Persistence API, Servlet API, Transaction API
>            Reporter: Jason T. Greene
>            Assignee: Shelly McGowan
>             Fix For: 6.0.0.Alpha1
>
>
> We should break up all modules in the Java EE project to be separately versioned components, in line with the specification they represent. In addition we should version them according to the specification version of the api, and not a version we come up with. This makes it easy for our other projects to know they are consuming the proper version. Hibernate, for example, would like to have a dependency on jta 1.1. It's not immediately clear what we have that implements 1.1.
> The SVN layout should look like:
> /projects/javaee/transaction-api/tags/1.1
> /projects/javaee/ejb3-api/tags/3.1
> etc
> The maven coordinates should remain the same, as this allows for a project to quickly and easily see what javax apis are available:
> org.jboss.javaee:transaction-api

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list