The current organization of modules is as follows:

      • The core API defines the CARGO API and many utilities (around XML, file handling, etc.)
      • Each container is independent and depends on the core API
      • Each container uses commons-discovery to auto-register itself to CARGO
      • The core API, all containers and all containers' commons-discovery modules are merged together in the uberjar
      • The uberjar uses the maven-shade-plugin, and this generates a dependency reduced pom file
      • The CARGO samples, that test CARGO on each container, uses the uberjar
      • CARGO ANT tasks use the uberjar
      • CARGO Maven2 plugin uses the uberjar

      This model has certain limitations:

      • We might forget to copy dependencies
      • The uberjar is used in the Maven2 plugin, even if one container is always used
      • The dependency tree is "messy"

      This has been discussed in various ML threads such as:

      This needs to be improved. The latest idea for improvement is the following:

      • Have an "uberpom" that is a pom project with all the containers
        • The Maven plugin would depend on the uberpom
      • The uberjar depends on uberpom
        • Samples and ANT tasks use the uberjar


          Issue links



              • Assignee:
                savasalitokmen Savas Ali Tokmen (Inactive)
                savasalitokmen Savas Ali Tokmen (Inactive)
              • Votes:
                0 Vote for this issue
                0 Start watching this issue


                • Created: