Initializr library

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 is contained in:
Stephane Nicoll
2014-08-18 16:14:17 +02:00
parent 4fbec9e0c0
commit 1ea33488f6
43 changed files with 1532 additions and 432 deletions

View File

@@ -0,0 +1,4 @@
package app
@Grab('io.spring.initalizr:initializr:1.0.0.BUILD-SNAPSHOT')
class InitializerService { }

View File

@@ -0,0 +1,120 @@
info:
project:
name: Spring Start
version: 0.3.0
# remember to update static/install.sh as well:
spring-boot:
version: 1.1.5.RELEASE
initializr:
dependencies:
- name: Core
starters:
- name: Security
value: security
- name: AOP
value: aop
- name: Data
starters:
- name: JDBC
value: jdbc
- name: JPA
value: data-jpa
- name: MongoDB
value: data-mongodb
- name: Redis
value: redis
- name: Gemfire
value: data-gemfire
- name: Solr
value: data-solr
- name: I/O
starters:
- name: Batch
value: batch
- name: Integration
value: integration
- name: AMQP
value: amqp
- name: Web
starters:
- name: Web
value: web
- name: Websocket
value: websocket
- name: Rest Repositories
value: data-rest
- name: Mobile
value: mobile
- name: Template Engines
starters:
- name: Freemarker
value: freemarker
- name: Velocity
value: velocity
- name: Groovy Templates
value: groovy-templates
- name: Thymeleaf
value: thymeleaf
- name: Social
starters:
- name: Facebook
value: social-facebook
- name: LinkedIn
value: social-linkedin
- name: Twitter
value: social-twitter
- name: Ops
starters:
- name: Actuator
value: actuator
- name: Remote Shell
value: remote-shell
types:
- name: Maven POM
id: pom.xml
default: false
action: /pom.xml
- name: Maven Project
id: starter.zip
default: true
action: /starter.zip
- name: Gradle Config
id: build.gradle
default: false
action: /build.gradle
- name: Gradle Project
id: gradle.zip
default: false
action: /starter.zip
packagings:
- name: Jar
id: jar
default: true
- name: War
id: war
default: false
javaVersions:
- id: 1.6
default: false
- id: 1.7
default: true
- id: 1.8
default: false
languages:
- name: Groovy
id: groovy
default: false
- name: Java
id: java
default: true
bootVersions:
- name : Latest SNAPSHOT
id: 1.2.0.BUILD-SNAPSHOT
default: false
- name: 1.1.5
id: 1.1.5.RELEASE
default: true
- name: 1.0.2
id: 1.0.2.RELEASE
default: false

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<!--logger name="org.springframework" level="DEBUG"/-->
<logger name="org.springframework.core.env" level="WARN"/>
<logger name="org.springframework.jndi" level="WARN"/>
</configuration>

View File

@@ -0,0 +1,8 @@
---
applications:
- name: start
memory: 1024M
instances: 1
host: start-development
domain: cfapps.io
path: .