Commit Graph
100 Commits
Author SHA1 Message Date
Stephane Nicoll 42c62a7fd3 Make report encoding explicit
Closes gh-255
2016-07-13 09:12:38 +02:00
Stephane Nicoll c3dfbc828e Polish custom maven parent pom support 2016-07-12 16:07:46 +02:00
Stephane Nicoll 6089f49c1a Add build-specific tests 2016-07-12 14:42:41 +02:00
Stephane Nicoll 6099a1c6bc Externalize dependency management plugin version
Closes gh-253
2016-07-12 14:29:58 +02:00
Stephane Nicoll 1fd8e2c047 Migrate application to Maven
This commit migrates the `initializr-service` to a regular Maven project.

Closes gh-252
2016-07-12 09:18:58 +02:00
Stephane Nicoll 98a1049cec Polish ActiveMQ version range 2016-07-10 11:37:11 +02:00
Stephane Nicoll a415cdc671 Merge pull request #223 from DealerDotCom:custom-parent-pom
* pr/223:
  Polish contribution
  Customize the parent pom to use
2016-07-08 17:09:48 +02:00
Stephane Nicoll f45228376f Polish contribution
Closes gh-223
2016-07-08 17:09:21 +02:00
Stephane Nicoll bd323680ea Fix test assertion
Make sure to normalize the content that's read from disk to ensure
to adapt any platform-specific characters.

Closes gh-247
2016-07-08 14:45:57 +02:00
Stephane Nicoll 0ac320e5ae Enable strict validation of dependencies
Previously, if one invokes the service asking for dependency `foo` and
`foo` does not exist we created a starter for it, that is
`spring-boot-starter-foo`. This mechanism was put in place because we
don't know all starters and to offer a nice fallback for users who know
what they're doing.

That statement proved to be wrong since users actually discover new
starters via the service and don't seem to attempt to create such starter
that are located in the `org.springframework.boot` groupId anyway. Most
if not all of those are pilot errors.

This commit enables strict validation of dependencies and generate an
appropriate exception if it isn't defined in the meta-data.

Closes gh-234
2016-07-08 14:37:41 +02:00
Stephane Nicoll a3d072f20a Add aliases to the list of keywords
This commit makes sure that a dependency can be found in the UI via its
aliases, if any.

Closes gh-231
2016-07-08 12:01:46 +02:00
Stephane Nicoll a3e902b8f0 Prevent ArrayIndexOutOfBoundsException
This commit switches SingleSelectCapability content to
CopyOnWriteArrayList to prevent ArrayIndexOutOfBoundsException in case
of concurrent updates of boot versions.

Note that there is way to mitigate that in 1.4 with the use of the `sync`
attribute, see gh-251

Closes gh-229
2016-07-08 11:45:14 +02:00
Stephane Nicoll 4145fdc81d Merge pull request #250 from davsclaus:2172
* pr/250:
  Upgrade to Apache Camel 2.17.2
2016-07-08 11:23:11 +02:00
Stephane Nicoll 4192e601fe Fix typo
See gh-243
2016-07-06 11:02:20 +02:00
Stephane Nicoll f1322750b8 Fix SpringBootServletInitializr import
As of Spring Boot 1.4.0.M3, `SpringBootServletInitializer` has been
relocated to the `org.springframework.boot.web.support` package. This
commit makes sure to use the new location if a project is generated for
Spring Boot `1.4.0.M3` or higher.

Closes gh-243
2016-07-06 10:44:08 +02:00
Stephane Nicoll c1af184882 Merge pull request #226 from DealerDotCom:feature/artifact-type
* pr/226:
  Polish contribution
  Add dependency type attribute
2016-07-06 10:10:59 +02:00
Stephane Nicoll 1ac5e1c14b Polish contribution
Closes gh-226
2016-07-06 10:10:27 +02:00
Stephane Nicoll d8a0651ad4 Remove charset parameter check on textual resources
Closes gh-236
2016-07-06 09:08:55 +02:00
Stephane Nicoll 0caa01fd15 Fix Spring Cloud version range 2016-07-05 08:23:28 +02:00
Stephane Nicoll 3f82ab06c6 Upgrade to Spring Boot 1.3.6.RELEASE 2016-07-04 16:56:04 +02:00
Stephane Nicoll 0b9a8ebb48 Upgrade to Spring Cloud Brixton.SR2 2016-07-02 13:56:56 +02:00
Stephane Nicoll 6d8e57aaf0 Upgrade to dependency-management-plugin 0.6.0.RELEASE
Closes gh-242
2016-07-01 09:49:24 +02:00
Stephane Nicoll 25b2614eea Fix typo 2016-06-30 13:30:00 +02:00
Stephane Nicoll ed11ed09b1 Merge pull request #240 from spencergibb:maven-wrapper-version
* pr/240:
  Upgrade maven-wrapper to use Maven 3.3.9
2016-06-25 11:48:29 +02:00
Stephane Nicoll b312ebf162 Merge pull request #241 from royclarkson:scs-release
* pr/241:
  Upgrade to Spring Cloud Services 1.1.0.RELEASE
2016-06-25 11:46:55 +02:00
Stephane Nicoll fb9260b141 Upgrade Spring Cloud Services to 1.1.0.RC1
Closes gh-239
2016-06-17 08:02:22 +02:00
Stephane Nicoll 6aab8447a5 Merge pull request #238 from spencergibb:master
* pr/238:
  Upgrade Spring Cloud to Brixton.SR1
2016-06-14 23:13:38 +02:00
Stephane Nicoll 613751e28a Merge pull request #176 from royclarkson:scs-starters
* pr/176:
  Polish contribution
  Add support for Spring Cloud Services starters
2016-06-09 14:42:11 +02:00
Stephane Nicoll 3ef2390fd1 Polish contribution
Closes gh-176
2016-06-09 14:41:41 +02:00
Stephane Nicoll 6c7fc074ed Add ActiveMQ starter reference
This commit also deprecates the HornetQ starter.
2016-05-26 14:54:28 +02:00
Stephane Nicoll 9a78ceeb1d Fix version range for neo4j 2016-05-25 09:20:00 +02:00
Stephane Nicoll 5f44f54e3a Upgrade to Gradle 2.13
Closes gh-233
2016-05-19 23:42:49 +02:00
Stephane Nicoll a168ec0aae Upgrade to Kotlin 1.0.2
Closes gh-232
2016-05-13 12:19:19 +02:00
Stephane Nicoll 73bc582ac8 Fix typo 2016-05-13 09:35:01 +02:00
Stephane Nicoll 8c5d1b3265 Update entry for deprecated ws starter 2016-05-12 15:58:31 +02:00
Stephane Nicoll 87c5a5d116 Upgrade to Spring Boot 1.3.5.RELEASE 2016-05-10 08:57:33 +02:00
Stephane Nicoll d01c884271 Merge pull request #228 from davsclaus/2171
* pr/228:
  Upgrade to Apache Camel 2.17.1
2016-05-09 09:07:25 +02:00
Stephane Nicoll 145125ed91 Upgrade to Spring Boot 1.3.4.RELEASE 2016-05-08 16:26:33 +02:00
Stephane Nicoll 0594dbfd1a Update cloud version range 2016-05-07 14:44:11 +02:00
Stephane Nicoll 6e9f5e6879 Merge pull request #225 from mbogoevici/delete-stream-redis
* pr/225:
  Remove Stream Redis
2016-05-02 14:59:39 +02:00
Stephane Nicoll 559f7f9b23 Merge pull request #222 from vpavic/gradle-wrapper-task
* pr/222:
  Remove explicit Gradle wrapper task
2016-05-01 08:29:16 +02:00
Stephane Nicoll 88eb65b503 Merge pull request #221 from miccheng/bump-kotlin-plugin-version
* pr/221:
  Upgrade Kotlin version to 1.0.1-2
2016-04-28 08:32:20 +02:00
Stephane Nicoll 2d9ac9bd5a Improve dependency mapping to include coordinates
This commit improves the dependency mapping infrastructure to include the
groupId and artifactId attributes alongside the existing version. For
consistency, the attribute has been renamed from `versions` to
`mappings`.

This allows to better support the `redis` use case: the starter was
renamed from `spring-boot-starter-redis` to
`spring-boot-starter-data-redis` and previously we had two entries
excluding each other using version ranges.

Closes gh-219
2016-04-24 05:20:59 +02:00
Stephane Nicoll 64444a63cb Redirect to milestones page 2016-04-14 16:10:59 +02:00
Stephane Nicoll abf16f8b1a Fix typo 2016-04-14 16:09:18 +02:00
Stephane Nicoll a993d62cba Generate source artifacts 2016-04-14 16:01:19 +02:00
Stephane Nicoll 345d457a30 Polish 2016-04-14 15:01:14 +02:00
Stephane Nicoll 658475ad4f Add support for new test infrastructure
Spring Boot `1.4.0.M2` brings a new test infrastructure with nice
defaults and deprecates `SpringBootConfiguration` in the process.

This commits automatically upgrades generated project to this new
infrastructure if Spring Boot `1.4.0.M2` or later is available.

Closes gh-215
2016-04-08 18:24:50 +02:00
Stephane Nicoll 046e39f232 Improve test coverage
This commit improves the test coverage to add strict template assertion
for well known use cases. This allows to catch obvious template issues.
2016-04-08 16:57:44 +02:00
Stephane Nicoll 544f7482d3 Fix war kotlin project
This commit fixes the generation of a web-based project using Kotlin by
propertly detecting the `ServletInitializer` template.

Closes gh-217
2016-04-08 16:33:46 +02:00
Stephane Nicoll faba863db3 Fix template glitch
The project structure change has introduced some glitch that broke most
of the template.
2016-04-08 14:28:14 +02:00
Stephane Nicoll 162e4308ac Update README 2016-04-08 12:01:44 +02:00
Stephane Nicoll 542ee7d91b Modularize project structure
This commit splits the feature of Spring Initializr in several modules:

* `initializr-generator` is a standalone library that is responsible for
generating projects based on a `File` directory. It has a minimal set of
dependencies and is not web-related
* `initializr-web` provides the web integration (project generation,
meta-data, etc)
* `initializr-actuator` is an optional module that can be added to
support project-generation-specific statistics

Closes gh-214
2016-04-08 12:01:38 +02:00
Stephane Nicoll 35cfc8f139 Fix version range for Zipkin UI
Closes gh-216
2016-04-06 16:05:13 +02:00
Stephane Nicoll 9aee15ce6a Upgrade to Gradle 2.12 2016-04-05 17:00:59 +02:00
Stephane Nicoll d03a332ffa Remove reference to camel-parent
`camel-parent` is not a proper Bill Of Materials as it brings the whole
camel dependency management with it.
2016-04-02 08:12:55 +02:00
Stephane Nicoll b5dbbe5775 Merge pull request #212 from joshlong/dataflow-shell
* pr/212:
  Add support for data flow shell
2016-04-02 07:59:45 +02:00
Stephane Nicoll cdcf862419 Merge pull request #208 from davsclaus/camel
* pr/208:
  Polish contribution
  Add support for Apache Camel
2016-04-01 16:09:10 +02:00
Stephane Nicoll d516687502 Polish contribution
Closes gh-208
2016-04-01 16:08:47 +02:00
Stephane Nicoll f2b79052ea Add support for Neo4j 2016-03-25 13:17:58 +01:00
Stephane Nicoll 2ec6b5ce16 Merge pull request #204 from gitter-badger/gitter-badge
* pr/204:
  Polish contribution
  Add Gitter badge
2016-03-21 10:28:06 +01:00
Stephane Nicoll 0cb8f06d0d Polish contribution
Closes gh-204
2016-03-21 10:27:58 +01:00
Stephane Nicoll 0143de982f Polish 2016-03-09 09:51:52 +01:00
Stephane Nicoll d5cf8042ec Merge pull request #200 from venilnoronha/master
* pr/200:
  Add spring-cloud-cluster-etcd
2016-03-09 09:48:46 +01:00
Stephane Nicoll 7598628165 Deprecate Velocity support 2016-03-08 09:03:57 +01:00
Stephane Nicoll d272ac9e85 Fix section header
Closes gh-199
2016-03-08 09:01:26 +01:00
Stephane Nicoll 54b7f1d72a Upgrade to Vaadin 7.6.3 2016-02-29 11:00:31 +01:00
Stephane Nicoll fab8edac44 Upgrade to Spring Boot 1.3.3.RELEASE 2016-02-28 18:11:41 +01:00
Stephane Nicoll d9dba0fdd8 Upgrade to Spring Cloud Brixton.M5
Closes gh-198
2016-02-23 14:32:13 +01:00
Stephane Nicoll 73d1c24b3a Add entry for Couchbase 2016-02-16 14:13:33 +01:00
Stephane Nicoll 601b2ec65c Split SQL and NoSQL groups 2016-02-16 14:05:48 +01:00
Stephane Nicoll cad805e681 Update changelog 2016-02-15 11:21:46 +01:00
Stephane Nicoll 5b3eb6ccf0 Polish contribution
Closes gh-161
2016-02-15 09:02:10 +01:00
Stephane Nicoll e9e9be36ac Update changelog 2016-02-13 09:40:59 +01:00
Stephane Nicoll 4d2fbfe856 Publish stats on project generation
If an elastic instance is available, publish a document to a
configurable index every time a `ProjectRequest` is handled by the
service.

In practice, this means that every attempt to generate a project leads to
a new document in the index. The document gathers the settings of the
required project, including invalid ones if any. If an exception is
thrown, the message of the cause is made available.

CloudFlare is explicitely supported and the IP and country of the request
is added to the document. If that information is not available and the
request contains a `X-Forwarded-For` header, the value is also associated
with the document. If an IPv4 is detected, it is set in a separate
`requestIpv4` property.

If for some reason the document could not be indexed, we attempt to retry
a configurable amount of times.

Closes gh-185
2016-02-13 09:38:15 +01:00
Stephane Nicoll 7f6d348a3b Remove explicit binding to Redis
A redis instance is only required to export the metrics. Such feature is
not required for development and staging environment.
2016-02-10 13:49:02 +01:00
Stephane Nicoll caaa13a629 Fix user agent version check
Make sure that any additional information is not associated to the
version.
2016-02-09 11:21:49 +01:00
Stephane Nicoll 1b62b3193c Update changelog 2016-02-06 22:00:42 +01:00
Stephane Nicoll ac97fda208 Add clientId metrics
Parse the `User-Agent` http request header to determine if the client is
known. If that is the case, increment the relevant `client_id` counter.

A `ProjectRequest` had now a generic `parameters` array with all the
request headers by default. Since we don't want to accidentally map any
of those from a form input, `BasicProjectRequest` contains only "public"
fields and is the type exposed at the controller level.

Closes gh-193
2016-02-04 11:00:05 +01:00
Stephane Nicoll dc570704c4 Merge pull request #191 from sdeleuze/remove-idea-gradle-plugin
* pr/191:
  Remove the now deprecated IDEA Gradle plugin
2016-02-03 11:50:47 +01:00
Stephane Nicoll 953b4e8dd4 Polish contribution
`1.3.2.RELEASE` is available now so there is no need to have a version
range on the snapshot.  We don't need to copy/paste the version of the
bom in the actual dependency (that's the whole business of the bom
definition (including versions mapping according to the Spring Boot
version).

We want the `cloud-bom` to be automatically added when the data flow bom
is required so it is referenced as "additional BOM" as well.

Closes gh-189
2016-02-03 10:25:07 +01:00
Stephane Nicoll 5faf874bac Support of additional BOM
BOMs are structured in such a way than adding one to the project may
require another one(s) to be added to the project.

This commit adds an `additionalBoms` property to `BillOfMaterials` that
can be used to refer the BOM(s) that should be automatically added if
said BOM is added to the project.

Closes gh-190
2016-02-03 10:25:07 +01:00
Stephane Nicoll 9eeb1df4ba Use spring-cloud-dependencies
Previously, Spring Initializr was refering to
`spring-cloud-starter-parent` as the BOM source for any cloud-related
dependencies.

This pom actually inherits from a specific version of Spring Boot and
brings all its dependency management. If the chosen boot version and the
one that the cloud bom brings do not match, inconsistent versions can
appear in the project.

The underlying issue was fixed by providing a new BOM that only provides
dependency management for the cloud-related bits.

Closes gh-116
2016-02-03 10:22:24 +01:00
Stephane Nicoll 1d42661e11 Merge pull request #187 from joshlong/sleuth-and-zipkin-stream
* pr/187:
  Polish contribution
  Add sleuth and zipkin stream dependencies
2016-02-02 15:14:18 +01:00
Stephane Nicoll 7522b933a7 Polish contribution
Closes gh-187
2016-02-02 15:12:46 +01:00
Stephane Nicoll c520f85a1f Fix cloud version range 2016-02-02 15:12:32 +01:00
Stephane Nicoll 77e1a0dd4f Add code of conduct 2016-02-02 08:25:01 +01:00
Stephane Nicoll fdc2430eb7 Update changelog 2016-02-01 15:05:48 +01:00
Stephane Nicoll f165405b26 Fire event if a project could not be generated
Previously, only an invalid type or an invalid dependency would lead to
an exception and in such case, no event is fired at all.

This commit adds validation for language and packaging as well as a new
event that is fired when the project could not be generated.

The metrics infrastructure has been updated to handle ProjectFailedEvent;
when such an event is fired, the 'failures' counter is increased and we
still record all the other metrics.

Closes gh-188
2016-02-01 15:03:03 +01:00
Stephane Nicoll 3f1b4eca13 Fix test names 2016-02-01 11:29:22 +01:00
Stephane Nicoll 33f91b0c64 Fix test 2016-02-01 11:27:13 +01:00
Stephane Nicoll b1352ca264 Add ProjectGeneratedEvent
Replace `ProjectGenerationListener` by an event that is thrown via the
regular `ApplicationEventPublisher`. This allows any arbitrary bean to
listen to the event without the need of implementing an interface.

Closes gh-184
2016-02-01 11:09:08 +01:00
Stephane Nicoll b443a08370 Fix typo 2016-02-01 11:08:48 +01:00
Stephane Nicoll 62d394d226 Polish 2016-01-31 11:13:14 +01:00
Stephane Nicoll 8b3cfcacf8 Upgrade to Spring Boot 1.3.2.RELEASE 2016-01-29 10:09:42 +01:00
Stephane Nicoll dc2ad26865 Upgrade dependency management for lombok
As of Spring Boot 1.4, lombok is managed and we should no longer provide
a version for it. This commit makes sure to remove the version as of
Spring Boot 1.4

Closes gh-182
2016-01-27 11:10:39 +01:00
Stephane Nicoll ca057da48e Support for spring-boot-starter-data-redis
Spring Boot 1.4 has renamed the `spring-boot-starter-redis` to
`spring-boot-starter-redis`. This commit adds support for the former up
to 1.4 (exclusive) and the later as from 1.4

Closes gh-174
2016-01-27 10:44:45 +01:00
Stephane Nicoll 891650a836 Add support for Google Analytics
If the `initializr.env.google-analytics-tracking-code` is specified with
the tracking code to use, the web UI automatically integrates with Google
Analytics.

Closes gh-180
2016-01-14 18:09:16 +01:00
Stephane Nicoll 9139d10669 Re-apply GMavenPlus support
Closes gh-90
2016-01-14 13:47:43 +01:00
Stephane Nicoll 9ea01d9424 Polish 2016-01-12 14:54:22 +01:00