Prior to this commit, only spring boot starters can be added as project
dependency using a simple String denoting the suffix of the artifactId.
The standard 'org.springframework.boot' and 'spring-boot-starter-'
artifactId prefix were assumed.
This commit allows to define arbitrary dependencies with arbitrary
identifiers; the groupId, artifactId and version of the dependency can
be specified. Internally, all dependencies are converted to that format
even the ones defined as standard spring boot starters.
To allow that, a ProjectRequest is now resolved against the initializr
metadata. If a request defines an unknown dependency, a simple String
will be still considered a spring-boot-starter but a more complex
unknown id will lead to an exception (e.g. 'org.foo:bar').
Fixes gh-17
This commit introduces a set of customizable defaults for the generated
project, that is: groupId, artifactId, version, name, description and
packageName.
This complement the existing configurable defaults that are already
provided for action type, build type, language, java version and spring
boot version.
Fixes gh-19
This commit splits the single file script in a library that can be
released and published to the central repository.
This allows anyone to start its own initializr instance with a
proper configuration file and the following simple script:
package app
@Grab('io.spring.initalizr:initializr:1.0.0.BUILD-SNAPSHOT')
class InitializerService { }
The integration tests have been migrated so that they run as
part of the build. Additional tests have been added to extract
the content of the generated archive and assert the directory
structure as well as the content of key files.
Fixes gh-20
This commit fully revisits the main UI of the service:
* upgrade to Twitter Bootstrap 3.2.x (CSS, theme, font, glyphs)
* add specific CSS
* add favicon
Besides, starters are now regrouped by themes and those themes
are nicely displayed in the UI
Fixes gh-23, gh-11
The instructions should be explicit and precise enough for
anyone to deploy to production now. There is a Bamboo job
that should be doing it, but we've had some issue with it and
it often fails, whereas manual pushes always work. You need
a Cloudfoundry account with access to the Sagan organization
to push to production (ask Trevor Marshall).
This commit fixes a warning displayed by Maven due to the fact that
no relativePath is set and maven defaults to the parent directory. As
the parent is never going to be available in such directory and we use
the maven repository to fetch it, this commit sets an unknown relative
path explicitly.
Also fixing to UTF-8 encoding which is a sane default. Fixing the
encoding removes some warning when copying filtered resources.
This commit contains a number of changes, no functional difference in
the app but a general cleanup of look and docs:
- removed the Gemfile which is now redundant, Cloud Foundry CLI is no
longer a Ruby app
- updated various parts of the README to reflect changes to Spring Boot
CLI (local flag no longer exists, etc) and new CF deployment procedure.
- fixed references to www.springsource.com -> spring.io throughout web
content
- added favicon reflecting new Spring branding
- updated github URLs springsource -> spring-projects