Skip to content

Commit 8f9ea6d

Browse files
committed
[fj-doc-maven-plugin] goal init, new flavour : springboot-3
1 parent 358ffc6 commit 8f9ea6d

File tree

16 files changed

+152
-32
lines changed

16 files changed

+152
-32
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Changed
1111

12+
- [fj-doc-maven-plugin] goal init, new flavour : springboot-3
1213
- [fj-doc-maven-plugin] goal init, Quarkus and Micronaut generation based on freemarker macros.
1314

1415
### Fixed

fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/project/facade/FlavourFacade.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ private FlavourFacade() {}
2929

3030
public static final String FLAVOUR_MICRONAUT_4 = "micronaut-4";
3131

32-
public static final Set<String> SUPPORTED_FLAVOURS = Collections.unmodifiableSet( new HashSet<>( Arrays.asList( FLAVOUR_VANILLA, FLAVOUR_QUARKUS_3, FLAVOUR_QUARKUS_2, FLAVOUR_MICRONAUT_4 ) ) );
32+
public static final String FLAVOUR_SPRINGBOOT_3 = "springboot-3";
33+
34+
public static final Set<String> SUPPORTED_FLAVOURS = Collections.unmodifiableSet( new HashSet<>( Arrays.asList( FLAVOUR_VANILLA, FLAVOUR_QUARKUS_3, FLAVOUR_QUARKUS_2, FLAVOUR_MICRONAUT_4, FLAVOUR_SPRINGBOOT_3 ) ) );
3335

3436
private static final Properties MAP_FLAVOURS = SafeFunction.get( () -> {
3537
Properties prop = new Properties();
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
HELP.md

fj-doc-maven-plugin/src/main/resources/config/flavour/springboot-3/src/main/java/org/fugerit/java/template/fugerit_springboot3_template/FugeritSpringboot3TemplateApplication.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

fj-doc-maven-plugin/src/main/resources/config/flavour/springboot-3/src/main/resources/application.properties

Lines changed: 0 additions & 1 deletion
This file was deleted.

fj-doc-maven-plugin/src/main/resources/config/flavour/springboot-3/src/test/java/org/fugerit/java/template/fugerit_springboot3_template/FugeritSpringboot3TemplateApplicationTests.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

fj-doc-maven-plugin/src/main/resources/config/template/flavour/flavour-macro.ftl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,9 @@
4141
<#macro createMicronautPath context outputMime outputExtension outputDescription>
4242
@Get(uri="/example.${outputExtension}", produces="${outputMime}")
4343
<@createPathMethod context=context outputMime=outputMime outputExtension=outputExtension outputDescription=outputDescription/>
44+
</#macro>
45+
46+
<#macro createSpringBootPath context outputMime outputExtension outputDescription>
47+
@GetMapping(value = "/example.${outputExtension}", produces = "${outputMime}" )
48+
<@createPathMethod context=context outputMime=outputMime outputExtension=outputExtension outputDescription=outputDescription/>
4449
</#macro>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<#import 'flavour-macro.ftl' as fhm>
2+
---
3+
flavour: springboot-3
4+
process:
5+
- from: flavour/springboot-3/pom.ftl
6+
to: ${context.projectFolder}/pom.xml
7+
- from: flavour/springboot-3/README.ftl
8+
to: ${context.projectFolder}/README.md
9+
- from: flavour/springboot-3/gitignore.ftl
10+
to: ${context.projectFolder}/.gitignore
11+
- from: flavour/springboot-3/SpringbootApplication.ftl
12+
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/${context.artifactIdAsClassName}Application.java
13+
- from: flavour/springboot-3/DocController.ftl
14+
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/DocController.java
15+
- from: flavour/springboot-3/SpringbootApplication.ftl
16+
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/${context.artifactIdAsClassName}Application.java
17+
- from: flavour/springboot-3/SpringbootApplicationTests.ftl
18+
to: ${context.projectFolder}/src/test/java/test/<@fhm.toProjectPackageFolder context=context/>/${context.artifactIdAsClassName}ApplicationTests.java
19+
- from: flavour/springboot-3/application.ftl
20+
to: ${context.projectFolder}/src/main/resources/application.yaml
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<#import '../flavour-macro.ftl' as fhm>
2+
package <@fhm.toProjectPackage context=context/>;
3+
4+
import org.fugerit.java.core.cfg.ConfigRuntimeException;
5+
import org.fugerit.java.doc.base.config.DocConfig;
6+
import org.fugerit.java.doc.base.process.DocProcessContext;
7+
8+
import java.io.ByteArrayOutputStream;
9+
import java.util.Arrays;
10+
import java.util.List;
11+
12+
import org.springframework.web.bind.annotation.GetMapping;
13+
import org.springframework.web.bind.annotation.RequestMapping;
14+
import org.springframework.web.bind.annotation.RestController;
15+
16+
import lombok.extern.slf4j.Slf4j;
17+
18+
@RestController
19+
@RequestMapping("/doc")
20+
@Slf4j
21+
public class DocController {
22+
23+
<@fhm.createDocumentProcess context=context exceptionType='ConfigRuntimeException'/>
24+
25+
<@fhm.createSpringBootPath context=context outputMime="text/markdown" outputExtension="md" outputDescription="Markdown"/>
26+
27+
<@fhm.createSpringBootPath context=context outputMime="text/html" outputExtension="html" outputDescription="HTML"/>
28+
29+
<#if context.modules?seq_contains("fj-doc-mod-fop")>
30+
<@fhm.createSpringBootPath context=context outputMime="application/pdf" outputExtension="pdf" outputDescription="PDF"/>
31+
</#if>
32+
33+
<#if context.modules?seq_contains("fj-doc-mod-poi")>
34+
<@fhm.createSpringBootPath context=context outputMime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" outputExtension="xlsx" outputDescription="Excel"/>
35+
</#if>
36+
37+
<#if context.modules?seq_contains("fj-doc-mod-opencsv")>
38+
<@fhm.createSpringBootPath context=context outputMime="text/csv" outputExtension="csv" outputDescription="CSV"/>
39+
</#if>
40+
41+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# ${context.artifactId}
2+
3+
## Quickstart
4+
5+
Requirement :
6+
- maven 3.9.x
7+
- java ${context.javaRelease}+
8+
9+
1. Start the app
10+
11+
```shell
12+
mvn spring-boot:run
13+
```
14+
15+
2. Try the app
16+
17+
Open the [openapi-explorer](http://localhost:8080/swagger-ui/index.html)
18+
19+
Test available routes (for instance : [/doc/example.md](http://localhost:8080/doc/example.md))
20+
21+
## Projects notes
22+
23+
the project used as template has been created with the
24+
[springboot initializr](https://start.spring.io/#!type=maven-project&language=java&platformVersion=3.3.3&packaging=jar&jvmVersion=21&groupId=org.fugerit.java.template&artifactId=fugerit-springboot3-template&name=fugerit-springboot3-template&description=Fugerit%20SpringBoot%20Template&packageName=org.fugerit.java.template.fugerit-springboot3-template&dependencies=web,native,devtools,lombok).
25+
26+
Springdoc openapi dependency has been added :
27+
28+
```xml
29+
<dependency>
30+
<groupId>org.springdoc</groupId>
31+
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
32+
<version>${r"${springdoc-openapi-ui-version}"}</version>
33+
</dependency>
34+
```
35+
36+
## Spring Boot documentation
37+
38+
Read the original [HELP.md](HELP.md)

0 commit comments

Comments
 (0)