13 Replies Latest reply on Jun 19, 2008 5:30 AM by Thomas Diesler

    container integration naming issue

    Thomas Diesler Master

      Folks,

      http://jira.jboss.org/jira/browse/JBWS-2230

      we currently use

      jbossws-jboss421-3.0.2-SNAPSHOT
      jbossws-jboss422-3.0.2-SNAPSHOT
      jbossws-jboss423-3.0.2-SNAPSHOT
      jbossws-jboss500-3.0.2-SNAPSHOT
      jbossws-jboss501-3.0.2-SNAPSHOT

      This works on the premisses that

      jboss500 == jboss-5.0.0.Beta4
      jboss501 == jboss-5.0.0.CR1

      The naming scheme will however fail when CR1 gets released and container integration moves on towards CR2 or GA. It will also fail for jboss-4.2.2.SP1, etc

      More generally, this naming scheme does not support multiple versions for the same AS minor version.

      To fix this, we would need to factor the AS version into the naming scheme. Possibly like

      jbossws-jboss-5.0.0.Beta4-3.0.2-SNAPSHOT
      jbossws-jboss-5.0.0.CR1-3.0.2-SNAPSHOT

      This scheme would obviously support a matrix of multiple container versions against multiple jbossws versions, which is required according to

      http://jbws.dyndns.org/mediawiki/index.php?title=Supported_Target_Containers

      The above suggestion however fails, because maven does not support dependencies with multiple versions on the same artifact.

      Thoughts?

        • 1. Re: container integration naming issue
          Heiko Braun Master

          It could simply carry the name for the container it was released (QA'd) for: jbossws-jboss-5.0.0.CR1

          • 2. Re: container integration naming issue
            Richard Opalka Master

            I don't see it as a problem at least for AS trunk. As you use to say Thomas container integration resides in AS code base. I'm going to sync AS trunk today with jboss501 integration layer, thus there's no maven artifact needed for AS trunk to include our separate jboss integration layer inside. Or did I miss something?

            • 3. Re: container integration naming issue
              Thomas Diesler Master

              Consider this:

              #1 you put the container integration in AS trunk
              #2 you 'mvn deploy' jbossws-jboss-5.0.0-SNAPSHOT from AS trunk
              #3 CR1 gets released
              #4 you 'mvn deploy' jbossws-jboss-5.0.0.CR1 from AS trunk
              #5 you work on jbossws-3.0.3 and need to update jbossws-jboss-5.0.0.CR1

              What now?

              Heiko's naming scheme does not work because you cannot have a dependency on the same artifact with different versions

              <dependency>
               <groupId>org.jboss.ws</groupId>
               <artifactId>jbossws-jboss</artifactId>
               <version>5.0.0.Beta4</version>
              </dependency>
              <dependency>
               <groupId>org.jboss.ws</groupId>
               <artifactId>jbossws-jboss</artifactId>
               <version>5.0.0.CR1</version>
              </dependency>
              



              • 4. Re: container integration naming issue
                Richard Opalka Master

                 

                "thomas.diesler@jboss.com" wrote:
                What now?

                Unfortunately this is the maven artifacts naming issue. AFAIK maven doesn't enable you to specify buildnumber for non-snapshot artifacts :(


                • 5. Re: container integration naming issue
                  Richard Opalka Master

                  Well this is a general issue that affects all AS modules that have different (shorter) lifecycle than AS as whole has. We should ask other AS folks/leads how do they plan to deal with this kind of issues in the future and if it was investigated before mavenization process. In case there will be no appropriate and correct solution to this problem our release cycle will have to follow AS release cycle what we don't want :(

                  • 6. Re: container integration naming issue
                    Thomas Diesler Master

                    well, there are various other options.

                    - jbossws-jboss500beta4-3.0.2-SNAPSHOT
                    - jbossws-jboss-500beta4-3.0.2-SNAPSHOT (classifier)
                    - module per container with single dependency

                    • 7. Re: container integration naming issue
                      Alessio Soldano Master

                      Still thinking if this could be acceptable / could work, however my first understanding of what Heiko said was that the artifact id could carry the name of container it was released for, ie:

                      <dependency>
                       <groupId>org.jboss.ws</groupId>
                       <artifactId>jbossws-jboss500Beta4</artifactId>
                       <version>3.0.3-SNAPSHOT</version>
                      </dependency>
                      <dependency>
                       <groupId>org.jboss.ws</groupId>
                       <artifactId>jbossws-jboss500CR1</artifactId>
                       <version>3.0.3-SNAPSHOT</version>
                      </dependency>
                      


                      • 8. Re: container integration naming issue
                        Heiko Braun Master

                        Container integration depicts container compatibility, but at the same time SPI compatibility. Furthermore it can have maintenance releases. To me this gives us something like:

                        [container]-[spi]-[release]
                        

                        i.e. (leaving square brackets for readability)

                        [jboss5.0.0.CR1]-[3.0.2]-[1]
                        

                        which is identical to what thomas suggested

                        jbossws-jboss-[500beta4]-[3.0.2-SNAPSHOT]- [classifier]
                        



                        • 9. Re: container integration naming issue
                          Heiko Braun Master

                          You even break it up using maven conventions

                          <dependency>
                           <groupId>org.jboss.ws</groupId>
                           <artifactId>[container]-[spi]</artifactId>
                           <version>[release]</version>
                          </dependency>
                          

                          or
                          <dependency>
                           <groupId>org.jboss.ws</groupId>
                           <artifactId>[jboss501]-[3.0.2]</artifactId>
                           <version>1</version>
                          </dependency>
                          


                          • 10. Re: container integration naming issue
                            Thomas Diesler Master

                            So we have

                            <dependency>
                             <groupId>org.jboss.ws</groupId>
                             <artifactId>jbossws-jboss500Beta4</artifactId>
                             <version>3.0.3-SNAPSHOT</version>
                            </dependency>
                            <dependency>
                             <groupId>org.jboss.ws</groupId>
                             <artifactId>jbossws-jboss500CR1</artifactId>
                             <version>3.0.3-SNAPSHOT</version>
                            </dependency>
                            


                            as suggested by Alessio or

                            module-jboss-5.0.0.Beta4
                            <dependency>
                             <groupId>org.jboss.ws</groupId>
                             <artifactId>jbossws-jboss</artifactId>
                             <version>5.0.0.Beta4-3.0.3-SNAPSHOT</version>
                            </dependency>
                            


                            module-jboss-5.0.0.CR1

                            <dependency>
                             <groupId>org.jboss.ws</groupId>
                             <artifactId>jbossws-jboss</artifactId>
                             <version>5.0.0.CR1-3.0.3-SNAPSHOT</version>
                            </dependency>
                            


                            Using a classifier is IMHO not an option because you cant classify the main main build artifact.



                            • 11. Re: container integration naming issue
                              Thomas Diesler Master

                              I would go for

                              <dependency>
                               <groupId>org.jboss.ws</groupId>
                               <artifactId>jbossws-jboss500Beta4</artifactId>
                               <version>3.0.3-SNAPSHOT</version>
                              </dependency>
                              <dependency>
                               <groupId>org.jboss.ws</groupId>
                               <artifactId>jbossws-jboss500CR1</artifactId>
                               <version>3.0.3-SNAPSHOT</version>
                              </dependency>
                              


                              • 12. Re: container integration naming issue
                                Thomas Diesler Master

                                For container integrations that are used with unreleased container versions (i.e. jbossas/trunk, jbossas/branches/Branch_4_2)

                                we use th e convention that we append 'x' to the container version

                                <dependency>
                                 <groupId>org.jboss.ws</groupId>
                                 <artifactId>jbossws-jboss423x</artifactId>
                                 <version>3.0.3-SNAPSHOT</version>
                                </dependency>
                                <dependency>
                                 <groupId>org.jboss.ws</groupId>
                                 <artifactId>jbossws-jboss500x</artifactId>
                                 <version>3.0.3-SNAPSHOT</version>
                                </dependency>
                                


                                • 13. Re: container integration naming issue
                                  Thomas Diesler Master

                                  Currently the container integrations jars translate as follows

                                  jbossws-jboss421-3.0.2.GA.jar => jbossws-jboss421.jar
                                  jbossws-jboss422-3.0.2.GA.jar => jbossws-jboss422.jar
                                  jbossws-jboss423x-3.0.2.GA.jar => jbossws-jboss423.jar
                                  jbossws-jboss500Beta4-3.0.2.GA.jar => jbossws-jboss500.jar
                                  jbossws-jboss500x-3.0.2.GA.jar => jbossws-jboss501.jar