We now sign commits if GPG properties are set. We pulled GPG properties from deployment.gpg to the top level (gpg).
For the deployment, we fall back to deployment.gpg if toplevel GPG properties aren't set.
Refactored issue tracker implementation into dedicated packages. Removed package tangles by moving some types around. Extracted GitHub specific properties into its own properties type reusing the Git credentials as we're talking to GitHub anyway.
Added Jackson parameter name module and enabled Java 8 parameter names to be able to get rid of the manually declared constructors for payload classes. Turned them into value objects where possible.
Original pull request: #14.
Introduced properties for GPG plugin and forward them to the execution of the release build. Public release versions now trigger the "central" profile being used which will enable the Nexus repository distribution.
Renamed GitCommands.checkout(…) to update(…). Made sure that project release build execution now also authenticates with Artifactory beforehand.
Tweaked the expansion of the Maven plugins to only map the plugin so that e.g. versions:set gets expanded to the fully qualified version of the versions plugin as registered in application.properties.
Tweaked the expansion to inspect all arguments given but ignore properties not containing a colon or staring with a dash.
Switched to Apache Maven Invoker for running Maven on the projects.
Added JGraphT to correctly sort dependencies in topological order.
Upgraded to Spring Boot 1.3.2, Lombok 1.16.6, jGit 4.2.0. Upgraded to Spring Plugin 1.3 to benefit from lazy exception creation using lambdas. Added Lombok configuration to throw IllegalArgumentException on null checks.
Moved to Spring Boot 1.3 and leverage the new configuration properties mechanism (see GitProperties and IoProperties). Improved ArtifactVersion to be a better value object.
Introduced usage of Java 8's CompletableFuture to execute most of the Git operations in parallel. Started to use Lambdas where possible.
Git configuration is now supposed to be done using a application-local.properties (Git ignored) file containing the relevant properties (see readme). The test configuration now uses a separate workspace location and a Sample release train to make sure the integration tests run without interfering a local workspace.
Added train declaration for Hopper. Integrated BootShim (see [0], [1]) to run the shell on top of Spring Boot.
[0] https://github.com/jeffellin/springshellwithboot
[1] https://github.com/spring-projects/spring-shell/issues/34