If a dependency is fist managed by the service and later on by Spring
Boot, there is no way to keep a single entry that would change the
dependency according to the Spring Boot version.
A hack would consist of creating two entries that would have an exclusive
range but it's far from ideal.
This commit adds a `versions` attribute on each dependency that can
define an arbitrary number of mappings between a version and a range. If
one of those range matches, the related version is used (and the absence
of version means that no version need to be included). If no mapping
matched (or if there are no mappings at all), the default version is
used.
Closes gh-168
Update controllers to add an ETag information so that meta-data is cached
on the client.
Also enables the compression for json, css and html resources.
Closes gh-165
The new layout broke some integration tests as it is now necessary to
click on a link to display additional options.
Tests have also been rewritten to take the new design (and new features)
into account.
Make sure to register the necessary configuration entry for Gradle when
a provided dependency is added as the build will fail otherwise.
Interestingly enough, this was only taken care of if the packaging is war
as we add the tomcat starter explicitly. We rather now add any provided
dependencies to the build with no special handling there, adding the
tomcat server in the model if necessary.
Closes gh-164
Remove the cloud dependency until Spring Boot itself provides a
dependency management for it. Also fix the scope so that lombok does
not leak in other projects.
Closes gh-154
Previously, all dependencies were considered equal and enough to compile
and start the simple auto-generated boot application. There are some
corner cases such as the JDBC drivers and the new Ratpack integration.
This commit adds an extra flag on a dependency that determines if it is
a starter or not (the default is true). When no starter dependency has
been selected for the project, the root starter (`spring-boot-starter`)
is automatically added.
Closes gh-159
* move back project type and Boot version in form
* support for dependencies weight, group and keywords information
* hide non-essential info by default and show them when clicking on link
* add green top border in header
* add link to bring back simple version
See gh-145
This commit add two additional attributes to a dependency: weight
and keywords.
Weight is a numeric value (default to 0) that allows to order
dependencies search result in a sensible manner. This is a UI feature
only and is not exposed in the meta-data.
Keywords provides a list of words that are added to the source of terms
that the UI use to discover dependencies. It's not exposed either.
Both are exposed by the UI specific controller (`/ui/dependencies`).
See gh-145
* update keyboard shortcuts
* update dependencies descriptions
* add a second button down the page, after the dependencies
* when autocompleting a dependency that's already selected, unselect it
* synchronize packageName with groupId
* synchronize artifact name with artifactId
* fix tabindex order for form fields
See gh-145
Move the `/dependencies` endpoint to `/ui/dependencies` and automatically
filter dependencies that are out of range if a base boot version is
provided.
See gh-145
While the service can generate a project or a single build file, the
latter option is rarely used in practice. We now filter the available
types so that only "project" format types are kept.
See gh-145
* remove previous application header (title, baseline)
* replace it with project type + boot version + generate button
* add keyboard shortcut to generate project with mousetrap
* reinitialize search engine when Boot version changes in order to only
search in compatbile dependencies
* replace standard bootstrap with custom built version
* fix generate shortcut not working in autocomplete
See gh-145
I like Spring Initializr (numerous references on twitter) and it feels
odd to me to put the address of the web site on the web site itself since
we want to push for custom deployments (that would have a different URL
obviously).
Also the "Quick add dependencies" can be simply named "Dependencies"; it
is consistent with the project metadata section as well.
Also, the template does not have any reference to 'install.sh' so any
test relying on the presence of that link now fails. Replaced them with
a different reference.
See gh-145