maven: support for MAVEN_OPTS

The maven build phase offers us a way to pass additional parameters to
the JVM.  The option is shown as MAVEN_OPTS and accept a string which is
then expanded as mavenOpts.

Change-Id: I0a2437e8bda1e828c09e87343f7ca5025b77182c
Reviewed-on: https://review.openstack.org/32965
Reviewed-by: Arnaud Fabre <fabre.arnaud@gmail.com>
Reviewed-by: Mathieu Gagné <mgagne@iweb.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Fix job-specific parameters for job groups.

When a job template is instantiated via a job-group,
job-specific parameters provided by the project are not
respected.

The correction is just a matter of updating correctly the
dictionary containing all parameters.

The configuration below exhibits the issue:

- project:
    name: project-with-specific-parameters
    jobs:
        - my-job-group:
            recipients: "foo@example.com"

- job-group:
    name: my-job-group
    jobs:
        - job-sending-notification-mails

- job-template:
    name: job-sending-notification-mails
    publishers:
      - email-ext:
          # {recipients} should be available.
          recipients: "{recipients}"
          subject: Subject for Build ${{BUILD_NUMBER}}


Change-Id: I107d8d648c8965cd125db52f3558f28337c25a63
Reviewed-on: https://review.openstack.org/33190
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Maven: expose configuration of automatic archiving.

By default, Maven projects are configured to automatically
archive maven artifacts.

This commit exposes an option to configure that behavior in
a backward compatible way. By default, automatic archiving
is active, which means writing false in the XML configuration,
since the element name is "archivingDisabled".

Change-Id: I35e8a035a53356d7c171735aa5a52c6c429d1608
Reviewed-on: https://review.openstack.org/33367
Reviewed-by: Antoine Musso <hashar@free.fr>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
setup.py: Basic support for windows.

During setup, some commands (git describe mainly) are launched,
and fail under Windows since /bin/sh is not available.

By switching to cmd to execute commands when python says that
the os is 'nt', setup.py works under both Linux and Windows.

I have used that patch for some time now, and haven't found other
issues yet.

Change-Id: Ib4c0ec53765ae80fc6b63c34a926644427a9ebce
Reviewed-on: https://review.openstack.org/33368
Reviewed-by: Antoine Musso <hashar@free.fr>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins