Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 4.0
    • Fix Version/s: future release
    • Component/s: packaging
    • Labels:
      None

      Description

      Packager module build performance has steadily degraded in the course of 3.2 release due to introduction of new transitive maven dependencies. Dependency graph resolution through extended ant maven plugin has significant scalability problems and the most effective way to improve packager build performance is to use the combination of maven dependency plugin and ant resource collections to handle packager dependency graph calculations.

      This approach will be implemented as part of 3.2 release cycle.

        Activity

        Hide
        Nazrul added a comment -

        This is an important but nice to have feature for GlassFish build infrastructure. We may work on this after all core infrastructure is in place.

        Show
        Nazrul added a comment - This is an important but nice to have feature for GlassFish build infrastructure. We may work on this after all core infrastructure is in place.
        Hide
        Romain Grécourt added a comment - - edited

        We've identified 5 steps to improve the build performance:

        1. force the usage of the local uc-toolkit instead of bootstraping pkg for each execution (very slow and unreliable)
        2. run GPG and javadoc only for maven releases
        3. install packages once, reuse IPS images, pack only the installer images
        4. better isolation of plugin execution in the maven build, using a custom packaging type "glassfish-jar"
        5. enable parrallel build (e.g. mvn -T4 install)


        • 1, 2 and 3 were implemented in order to improve the release build (IPS).
        • 4 is partially implemented: the lifecycle execution associated with "glassfish-jar" needs to be defined in the glassfishbuild-maven-plugin and GlassFish poms need to be updated.
        • 5 requires releasing all the custom maven plugin that are not marked as thread-safe
        Show
        Romain Grécourt added a comment - - edited We've identified 5 steps to improve the build performance: force the usage of the local uc-toolkit instead of bootstraping pkg for each execution (very slow and unreliable) run GPG and javadoc only for maven releases install packages once, reuse IPS images, pack only the installer images better isolation of plugin execution in the maven build, using a custom packaging type "glassfish-jar" enable parrallel build (e.g. mvn -T4 install) 1, 2 and 3 were implemented in order to improve the release build (IPS). 4 is partially implemented: the lifecycle execution associated with "glassfish-jar" needs to be defined in the glassfishbuild-maven-plugin and GlassFish poms need to be updated. 5 requires releasing all the custom maven plugin that are not marked as thread-safe
        Hide
        Romain Grécourt added a comment -

        Marking as resolved as all items but #5 were implemented.
        It is very unlikely that we enable parrallel build someday.

        What may happen next is the design of compact tool for dealing with packages, instead of having complex pom logic.
        This tool should be generic enough to be possibly reused for building other kind of packages.

        Show
        Romain Grécourt added a comment - Marking as resolved as all items but #5 were implemented. It is very unlikely that we enable parrallel build someday. What may happen next is the design of compact tool for dealing with packages, instead of having complex pom logic. This tool should be generic enough to be possibly reused for building other kind of packages.

          People

          • Assignee:
            Romain Grécourt
            Reporter:
            Snjezana Sevo-Zenzerovic
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: