---
- job-template:
    # Job template for Java verify jobs
    #
    # The purpose of this job template is to run "maven clean install" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)

    name: '{project-name}-{stream}-verify-java-skip-tests'

    project-type: freestyle
    concurrent: true
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-submitted:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean install -DskipTests=true -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
          maven-opts:
            - maven.test.skip=true

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java verify jobs
    #
    # The purpose of this job template is to run "maven clean install" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)

    name: '{project-name}-{stream}-verify-java'

    project-type: freestyle
    concurrent: true
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-submitted:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean install -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java verify jobs running checkstyle at the end
    # When checkstyle will be fully incorporated, it is meant to replace
    #  '{project-name}-{stream}-verify-java-checkstyle'
    # The purpose of this job template is to run "maven clean install" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-verify-java-checkstyle'
    project-type: freestyle
    concurrent: true
    node: '{build-node}'
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'
    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'
    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'
          submodule-recursive: '{submodule-recursive}'
    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'
    triggers:
      - gerrit-trigger-patch-submitted:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'
    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean install -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'
      - checkstyle-result

- job-template:
    # Job template for Java verify jobs that takes a maven template
    #
    # The purpose of this job template is to run "maven clean install -P {x}"
    # for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)

    name: '{project-name}-{stream}-verify-profile-java'

    project-type: freestyle
    concurrent: true
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-submitted:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean install -P {mvn-profile} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java verify jobs with POM not at the root
    #
    # The purpose of this job template is to run "maven clean install" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     pom:       name/location of the pom.xml file relative to the workspace
    #     pattern:   ant file-path pattern relative to the workspace used to
    #                trigger the job

    name: '{project-name}-{stream}-{subproject}-verify-java'

    project-type: freestyle
    concurrent: true
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-submitted:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '{pattern}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean install -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-release-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy sonar:sonar -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          java-opts:
            - '-Xmx4096m -XX:MaxPermSize=512m'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-release-java-daily-no-sonar'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          java-opts:
            - '-Xmx4096m -XX:MaxPermSize=512m'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs running checkstyle at the end
    # When checkstyle will be fully incorporated, it is meant to replace
    #  '{project-name}-{stream}-release-java-daily'
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-release-java-daily-checkstyle'
    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'
    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'
    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'
    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'
    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - conditional-step:
          condition-kind: regex-match
          regex: DoSetVersion
          label: '{setVersion}'
          steps:
            - inject:
                properties-file: version.properties
            - maven-target:
                maven-version: '{maven-version}'
                goals: 'versions:set versions:update-child-modules versions:commit -B'
                properties:
                  - 'newVersion=${{release_version}}'
                settings: '{mvn-settings}'
                settings-type: cfp
                global-settings: 'global-settings'
                global-settings-type: cfp
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy sonar:sonar -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties: '{obj:mvn_properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'
      - checkstyle-result-daily

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-release-version-java-daily-no-sonar'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H H(10-17) * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    # This template supports subprojects.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-{subproject}-release-version-java-daily-no-sonar'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H H(10-17) * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-release-version-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H H(10-17) * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy sonar:sonar -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-release-version-profile-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy sonar:sonar -P {mvn-profile} -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'


- job-template:
    # Job template for Java daily release jobs with POM not at the root
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     pom:       name/location of the pom.xml file relative to the workspace


    name: '{project-name}-{stream}-{subproject}-release-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean deploy sonar:sonar -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          java-opts:
            - '-Xmx4096m -XX:MaxPermSize=512m'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs with POM not at the root
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     pom:       name/location of the pom.xml file relative to the workspace


    name: '{project-name}-{stream}-{subproject}-release-version-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean deploy sonar:sonar -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs with POM not at the root
    #
    # The purpose of this job template is to run "maven version && maven clean
    # deploy" for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     pom:       name/location of the pom.xml file relative to the workspace


    name: '{project-name}-{stream}-{subproject}-release-java-daily-no-sonar'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          java-opts:
            - '-Xmx4096m -XX:MaxPermSize=512m'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java merge jobs
    #
    # The purpose of this job template is to run "maven clean deploy" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-merge-java'

    project-type: freestyle
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-merged:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java merge jobs based on
    #   '{project-name}-{stream}-merge-java'
    # The purpose of this job template is to run "maven clean deploy" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     maven-properties: properties passed to maven
    name: '{project-name}-{stream}-merge-properties-java'

    project-type: freestyle
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-merged:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
          properties: '{obj:mvn_properties}'

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java merge jobs that takes a maven template
    #
    # The purpose of this job template is to run "maven clean deploy -P {x}"
    # for projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-merge-profile-java'

    project-type: freestyle
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-merged:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy -P {mvn-profile} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
          properties:
            - docker.pull.registry=nexus3.onap.org:10001
            - docker.push.registry=nexus3.onap.org:10003

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java merge jobs that should also be triggered by upstream
    # merges
    #
    # Required Variables:
    #   stream:         release stream
    #   branch:         git branch
    #   dependencies:   fully qualified upstream job name to trigger on
    #                   this may be ''
    name: '{project-name}-{stream}-downstream-merge-java'

    project-type: freestyle
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - reverse:
          jobs: '{dependencies}'
          result: 'success'
      - gerrit-trigger-patch-merged:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java merge jobs with POM not at the root
    #
    # The purpose of this job template is to run "maven clean deploy" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     pom:       name/location of the pom.xml file relative to the workspace
    #     pattern:   ant file-path pattern relative to the workspace used to
    #                trigger the job

    name: '{project-name}-{stream}-{subproject}-merge-java'

    project-type: freestyle
    node: '{build-node}'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-merged:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '{pattern}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean deploy -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    name: '{project-name}-{stream}-docker-java-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:

      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - maven-docker-push-daily:
          maven-version: '{maven-version}'
          mvn-settings: '{mvn-settings}'
          pom: '{docker-pom}'
          # use default as mvn-profile if profile is not needed
          mvn-profile: '{mvn-profile}'

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for building & pushing docker images
    #
    # The purpose of this job template is to run :
    #  1. login to the docker registry
    #  2. do a clean deploy on the specified profile
    #
    # Required Variables:
    #     pom:       name/location of the pom.xml file relative to the workspace
    #     profile:   the docker profile defined in the pom
    #     maven-properties: properties passed to maven
    name: '{project-name}-{stream}-docker-java-properties-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'
    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'
    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'
    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'
    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - docker-login
      - maven-docker-push-daily:
          maven-version: '{maven-version}'
          mvn-settings: '{mvn-settings}'
          pom: '{docker-pom}'
          properties: '{maven-properties}'
          # use default as mvn-profile if profile is not needed
          mvn-profile: '{mvn-profile}'
    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    name: '{project-name}-{stream}-docker-java-shell-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:

      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - maven-target:
          maven-version: '{maven-version}'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - shell: '{script}'

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    name: '{project-name}-{stream}-docker-java-version-shell-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:

      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - inject:
          properties-file: version.properties

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - docker-login

      - maven-target:
          maven-version: '{maven-version}'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - shell: '{script}'

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    name: '{project-name}-{stream}-docker-version-java-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:

      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - inject:
          properties-file: version.properties

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - docker-login

      - maven-docker-push-daily:
          maven-version: '{maven-version}'
          mvn-settings: '{mvn-settings}'
          pom: '{docker-pom}'
          # use default as mvn-profile if profile is not needed
          mvn-profile: '{mvn-profile}'

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    name: '{project-name}-{stream}-aai-docker-java-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'
    docker-image-name: ''

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'
      - docker-image-name:
          docker-image-name: '{docker-image-name}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:

      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - maven-target:
          maven-version: '{maven-version}'
          pom: 'pom.xml'
          goals: 'clean install -DskipTests -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
          properties:
            - maven.test.skip=true
            - docker.pull.registry=nexus3.onap.org:10001
            - docker.push.registry=nexus3.onap.org:10003

      - shell: !include-raw-escape: include-docker-push.sh

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    name: '{project-name}-{stream}-{subproject}-aai-docker-java-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'
    docker-image-name: ''

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'
      - docker-image-name:
          docker-image-name: '{docker-image-name}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:

      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - maven-target:
          maven-version: '{maven-version}'
          pom: 'pom.xml'
          goals: 'clean install -DskipTests -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
          properties:
            - maven.test.skip=true
            - docker.pull.registry=nexus3.onap.org:10001
            - docker.push.registry=nexus3.onap.org:10003

      - shell: !include-raw-escape: include-docker-push.sh

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run
    #   - change version in all POM files to the release version specified
    #     in version.properties. This is done using a script instread of
    #     the mvn version plugin that assumes some specific parent structure.
    #   - runs maven clean deploy sonar
    #
    # The POM files are required to use the Maven staging plugin so the deploy
    # does not deploy directly to the release repo.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-release-version2-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-install:
          maven-version: '{maven-version}'

      - inject:
          properties-file: version.properties

      - shell: !include-raw-escape: include-update-pom-versions.sh

      - maven-target:
          maven-version: '{maven-version}'
          goals: 'clean deploy sonar:sonar site:site site:stage-deploy
            -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run
    #   - change version in all POM files to the release version specified
    #     in version.properties. This is done using a script instread of
    #     the mvn version plugin that assumes some specific parent structure.
    #   - runs maven clean deploy sonar
    #
    # The POM files are required to use the Maven staging plugin so the deploy
    # does not deploy directly to the release repo.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     pom:       name/location of the pom.xml file relative to the workspace
    #     pattern:   ant file-path pattern relative to the workspace used to
    #                trigger the job

    name: '{project-name}-{stream}-{subproject}-release-version2-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '{pattern}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-install:
          maven-version: '{maven-version}'

      - inject:
          properties-file: version.properties

      - shell: !include-raw-escape: include-update-pom-versions.sh

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean deploy sonar:sonar site:site site:stage-deploy
            -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java daily release jobs
    #
    # The purpose of this job template is to run
    #   - change version in all POM files to the release version specified
    #     in version.properties. This is done using a script instread of
    #     the mvn version plugin that assumes some specific parent structure
    #     This version does NOT change the version within the <parent> tag.
    #   - runs maven clean deploy sonar
    #
    # The POM files are required to use the Maven staging plugin so the deploy
    # does not deploy directly to the release repo.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    #     pom:       name/location of the pom.xml file relative to the workspace
    #     pattern:   ant file-path pattern relative to the workspace used to
    #                trigger the job

    name: '{project-name}-{stream}-{subproject}-release-version3-java-daily'

    project-type: freestyle
    node: '{build-node}'
    maven-deploy-properties:
    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '{pattern}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - maven-install:
          maven-version: '{maven-version}'

      - inject:
          properties-file: version.properties

      - shell: !include-raw-escape: include-update-pom-versions-not-parent.sh

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'clean deploy sonar:sonar site:site site:stage-deploy
            -Dsonar.host.url=${{SONAR}} -B
            -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          properties:
            - '{maven-deploy-properties}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Template for maven site plugin invocation
    #
    # It's designed to be triggered when the trigger-job job
    # succeeds as there's no need for new documentaiton
    # if the build job fails.
    #
    # Those parameters should be set :
    # - site-pom : the pom file that contains the site confiration
    # - trigger-job : the name of the project that triggers this job
    #                     upon success. The job name can be
    #                     parameterized.
    name: '{project-name}-{stream}-stage-site-java'
    project-type: freestyle
    node: '{build-node}'
    pom: 'pom.xml'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - trigger-on-build-success:
          job-name: '{trigger-job}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: 'versions:set versions:update-child-modules versions:commit -B'
          properties:
            - 'newVersion=${{release_version}}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{site-pom}'
          goals: 'clean site:site site:stage-deploy'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for Java merge jobs
    #
    # The purpose of this job template is to run "maven clean deploy" for
    # projects using this template.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    name: '{project-name}-{stream}-sdc-merge-java'

    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - gerrit-trigger-patch-merged:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '**'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - maven-docker-push-daily:
          maven-version: '{maven-version}'
          mvn-settings: '{mvn-settings}'
          pom: '{docker-pom}'
          # use default as mvn-profile if profile is not needed
          mvn-profile: '{mvn-profile}'

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    name: '{project-name}-{stream}-aai-docker-java-version-daily'
    project-type: freestyle
    node: 'ubuntu1604-docker-8c-8g'

    properties:
      - infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: '{maven-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'

    wrappers:
      - infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:

      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - maven-target:
          maven-version: '{maven-version}'
          pom: 'pom.xml'
          goals: 'clean install -DskipTests -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp

      - maven-target:
          maven-version: '{maven-version}'
          pom: '{pom}'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
          properties:
            - maven.test.skip=true
            - docker.pull.registry=nexus3.onap.org:10001
            - docker.push.registry=nexus3.onap.org:10003

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'