Add service sample

Closes gh-844
This commit is contained in:
Stephane Nicoll
2019-03-20 14:11:46 +01:00
parent 18dbc4dada
commit 3b40cd824e
7 changed files with 192 additions and 0 deletions

View File

@@ -103,6 +103,9 @@ jobs:
build_uri: "https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}" build_uri: "https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}"
build_number: "${BUILD_PIPELINE_NAME}-${BUILD_JOB_NAME}-${BUILD_NAME}" build_number: "${BUILD_PIPELINE_NAME}-${BUILD_JOB_NAME}-${BUILD_NAME}"
disable_checksum_uploads: true disable_checksum_uploads: true
exclude:
- "**/*.effective-pom"
- "**/initializr-service-sample/**"
on_failure: on_failure:
do: do:
- put: repo-status-build - put: repo-status-build

View File

@@ -0,0 +1,50 @@
= Service sample
:docs: http://docs.spring.io/initializr/docs/current-SNAPSHOT/reference/html
This sample demonstrates how you can create your own service easily as described in the
{docs}/#create-instance[reference documentation].
== Running the service
You can start the service from the command line:
[indent=0]
----
$ ./mvnw spring-boot:run
----
Or, better yet, run the `ServiceApplication` main method from your favourite IDE.
== Generating a project
If you go to `localhost:8080` with your browser, you'll get a json document that describes
the capabilities of the service. There are several ways you can generate a project.
If you have `HTTPie` installed, try the following:
[indent=0]
----
$ http :8080
----
If you prefer to use `cURL`, try this instead:
[indent=0]
----
$ curl localhost:8080
----
If you have the `spring` CLI installed, you can also use it as follows:
[indent=0]
----
$ spring init --target http://localhost:8080 --list
----
Finally, you can configure your IDE to point to another service instance.
== Configuration
The configuration in `application.yml` is very simple with a single `web` dependency that
brings `spring-boot-starter-web`. You can experiment by adding more dependencies or other
elements that drive how projects are generated.

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.spring.initializr</groupId>
<artifactId>initializr</artifactId>
<version>${revision}</version>
</parent>
<artifactId>initializr-service-sample</artifactId>
<name>Spring Initializr :: Service (Sample)</name>
<properties>
<main.basedir>${basedir}/..</main.basedir>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.spring.initializr</groupId>
<artifactId>initializr-web</artifactId>
</dependency>
<dependency>
<groupId>io.spring.initializr</groupId>
<artifactId>initializr-generator-spring</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package sample.service;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* Sample service application.
*
* @author Stephane Nicoll
*/
@SpringBootApplication
@EnableCaching
@EnableAsync
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class, args);
}
}

View File

@@ -0,0 +1,49 @@
initializr:
dependencies:
- name: Web
content:
- name: Web
id: web
description: Servlet web application with Spring MVC and Tomcat
types:
- name: Maven Project
id: maven-project
description: Generate a Maven based project archive
tags:
build: maven
format: project
default: true
action: /starter.zip
- name: Gradle Project
id: gradle-project
description: Generate a Gradle based project archive
tags:
build: gradle
format: project
default: false
action: /starter.zip
packagings:
- name: Jar
id: jar
default: true
- name: War
id: war
default: false
javaVersions:
- id: 11
default: false
- id: 1.8
name: 8
default: true
languages:
- name: Java
id: java
default: true
- name: Kotlin
id: kotlin
default: false
- name: Groovy
id: groovy
default: false
group-id:
value: org.acme

View File

@@ -53,6 +53,7 @@
<module>initializr-generator</module> <module>initializr-generator</module>
<module>initializr-generator-spring</module> <module>initializr-generator-spring</module>
<module>initializr-metadata</module> <module>initializr-metadata</module>
<module>initializr-service-sample</module>
<module>initializr-web</module> <module>initializr-web</module>
</modules> </modules>
@@ -194,6 +195,7 @@
<configuration> <configuration>
<skip>${disable.checks}</skip> <skip>${disable.checks}</skip>
<configLocation>src/checkstyle/checkstyle.xml</configLocation> <configLocation>src/checkstyle/checkstyle.xml</configLocation>
<suppressionsLocation>src/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory> <includeTestSourceDirectory>true</includeTestSourceDirectory>
<propertyExpansion>main.basedir=${main.basedir}</propertyExpansion> <propertyExpansion>main.basedir=${main.basedir}</propertyExpansion>
</configuration> </configuration>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
<suppressions>
<suppress files=".+Application\.java" checks="HideUtilityClassConstructor"/>
<suppress files="[\\/]initializr-service-sample[\\/]" checks="JavadocType"/>
<suppress files="[\\/]initializr-service-sample[\\/]" checks="ImportControl"/>
</suppressions>