Skip to content

Commit 0807df9

Browse files
authored
200 fj doc maven plugin goal init new parameter flavourversion (#201)
* [fj-doc-maven-plugin] goal init, flavour quarkus-3, default quarkus version 3.14.3 * - [fj-doc-maven-plugin] goal init, flavour micronaut-4, default micronaut version 4.6.2 * Added flavour default to readme - [fj-doc-maven-plugin] goal init, flavour quarkus-2, default quarkus version 2.16.12.Final - [fj-doc-maven-plugin] goal init, flavour springboot-3, default springboot version 3.3.3 - [fj-doc-maven-plugin] goal init, flavour openliberty, default openliberty version 24.0.0.9 * [fj-doc-maven-plugin] goal init, new parameter : flavourVersion #199 [fj-doc-playground-quarkus] doc project init, added flavour version parameter * Sonar cloud issues #199 * [fj-doc-maven-plugin] goal init, generation of flavour 'vanilla' was bugged * Fixed sonar issues #199 * Remove codacy issues #199 * Mark down issue #199
1 parent 9a4309e commit 0807df9

File tree

21 files changed

+147
-78
lines changed

21 files changed

+147
-78
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,20 @@ 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 parameter : flavourVersion
13+
- [fj-doc-playground-quarkus] doc project init, added flavour version parameter
14+
- [fj-doc-maven-plugin] goal init, flavour quarkus-2, default quarkus version 2.16.12.Final
15+
- [fj-doc-maven-plugin] goal init, flavour springboot-3, default springboot version 3.3.3
16+
- [fj-doc-maven-plugin] goal init, flavour openliberty, default openliberty version 24.0.0.9
17+
- [fj-doc-maven-plugin] goal init, flavour micronaut-4, default micronaut version 4.6.2
18+
- [fj-doc-maven-plugin] goal init, flavour quarkus-3, default quarkus version 3.14.3
1219
- [fj-doc-playground-quarkus] doc project init, default venus version 8.8.5
1320
- [fj-doc-playground-quarkus] quarkus version set to 3.14.3
1421

22+
### Fixed
23+
24+
- [fj-doc-maven-plugin] goal init, generation of flavour 'vanilla' was bugged
25+
1526
## [8.8.5] - 2024-09-12
1627

1728
### Changed

fj-doc-maven-plugin/README.md

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -89,25 +89,28 @@ Project folder will be `./${artifactId}/`.
8989

9090
### Init Fugerit Venus, parameters
9191

92-
| parameter | required | default | description |
93-
|----------------|----------|----------------|---------------------------------------------------------|
94-
| groupId | true | | new project group id |
95-
| artifactId | true | | new project group id |
96-
| projectVersion | true | 1.0.0-SNAPSHOT | new project version |
97-
| javaRelease | true | 21 | java release version |
98-
| flavour | true | vanilla | the flavour for the new project (see below for options) |
99-
100-
NOTE: it is possible to set any property from 'add' goal, except 'projectFolder' which is set to `./${artifactId}`.
101-
102-
| flavour | description | constraints | note |
103-
|----------------|-----------------------------------------|-------------|-----------------------------------------------------|
104-
| vanilla | basic Venus configuration | | a vanilla maven project will be configured |
105-
| quarkus-latest | project based on quarkus latest version | java >= 17 | currently from the quarkus 3.X branch |
106-
| quarkus-2 | project based on quarkus 2 | java == 11 | 2.16.12.Final is the latest version for quarkus 2.x |
107-
| quarkus-3 | project based on quarkus 3 | java >= 17 | currently same as quarkus-latest |
108-
| springboot-3 | project based on springboot 3 | java >= 17 | based on SpringBoot 3.x |
109-
| micronaut-4 | project based on micronaut 4 | java >= 17 | based on Micronaut 4.x |
110-
| openliberty | project based on openliberty | java >= 17 | based on OpenLiberty |
92+
| parameter | required | default | description |
93+
|----------------|----------|----------------|----------------------------------------------------------------------------------------|
94+
| groupId | true | | new project group id |
95+
| artifactId | true | | new project artifact id |
96+
| projectVersion | true | 1.0.0-SNAPSHOT | new project version |
97+
| javaRelease | true | 21 | java release version |
98+
| flavour | true | vanilla | the flavour for the new project (see below for options) |
99+
| flavourVersion | false | see below | override default framework version if supported (recommended : leave default or blank) |
100+
101+
NOTE:
102+
103+
- it is possible to set any property from 'add' goal, except 'projectFolder' which is set to `./${artifactId}`.
104+
105+
| flavour | description | constraints | note | default flavourVersion |
106+
|----------------|-----------------------------------------|-------------|-----------------------------------------------------|------------------------|
107+
| vanilla | basic Venus configuration | | a vanilla maven project will be configured | |
108+
| quarkus-latest | project based on quarkus latest version | java >= 17 | currently from the quarkus 3.X branch | as quarkus-3 |
109+
| quarkus-2 | project based on quarkus 2 | java == 11 | 2.16.12.Final is the latest version for quarkus 2.x | 2.16.12.Final |
110+
| quarkus-3 | project based on quarkus 3 | java >= 17 | currently same as quarkus-latest | 3.14.3 |
111+
| springboot-3 | project based on springboot 3 | java >= 17 | based on SpringBoot 3.x | 3.3.3 |
112+
| micronaut-4 | project based on micronaut 4 | java >= 17 | based on Micronaut 4.x | 4.6.2 |
113+
| openliberty | project based on openliberty | java >= 17 | based on OpenLiberty | 20.0.0.9 |
111114

112115
## Goal : verify
113116

fj-doc-maven-plugin/src/main/java/org/fugerit/java/doc/maven/MojoInit.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public class MojoInit extends MojoAdd {
3232
@Parameter(property = "flavour", defaultValue = "vanilla", required = true)
3333
protected String flavour;
3434

35+
@Parameter(property = "flavourVersion", required = false)
36+
protected String flavourVersion;
37+
3538
public MojoInit() {
3639
this.baseInitFolder = ".";
3740
}
@@ -56,6 +59,7 @@ public void execute() throws MojoExecutionException, MojoFailureException {
5659
FlavourContext context = new FlavourContext( new File( this.projectFolder ), this.groupId, this.artifactId, this.projectVersion, this.javaRelease, this.flavour );
5760
context.setModules( ModuleFacade.toModuleList( this.extensions ) );
5861
context.setAddLombok( this.addLombok );
62+
context.setFlavourVersion( this.flavourVersion );
5963
this.getLog().info( String.format( "flavour context : %s", context ) );
6064
FlavourFacade.initProject( context );
6165
} );

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package org.fugerit.java.doc.project.facade;
22

33
import lombok.*;
4+
import lombok.extern.slf4j.Slf4j;
45

56
import java.io.File;
67
import java.util.List;
78

9+
@Slf4j
810
@ToString
911
@RequiredArgsConstructor
1012
public class FlavourContext {
@@ -33,6 +35,9 @@ public class FlavourContext {
3335
@Getter @Setter
3436
private boolean addLombok;
3537

38+
@Getter @Setter
39+
private String flavourVersion;
40+
3641
private String toClassName( String base, String splitString ) {
3742
StringBuilder buf = new StringBuilder();
3843
String[] split = base.split( splitString );

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.fugerit.java.core.function.SafeFunction;
99
import org.fugerit.java.core.io.StreamIO;
1010
import org.fugerit.java.core.lang.helpers.ClassHelper;
11+
import org.fugerit.java.core.lang.helpers.StringUtils;
12+
import org.fugerit.java.core.util.PropsIO;
1113
import org.fugerit.java.doc.project.facade.flavour.FlavourConfig;
1214
import org.fugerit.java.doc.project.facade.flavour.ProcessEntry;
1315

@@ -33,6 +35,8 @@ private FlavourFacade() {}
3335

3436
public static final String FLAVOUR_SPRINGBOOT_3 = "springboot-3";
3537

38+
private static final Properties FLAVOURS_DEFAULT_VERSION = PropsIO.loadFromClassLoaderSafe( "config/flavour/flavour_versions_default.properties" );
39+
3640
public static final Set<String> SUPPORTED_FLAVOURS = Collections.unmodifiableSet(
3741
new HashSet<>( Arrays.asList( FLAVOUR_VANILLA, FLAVOUR_QUARKUS_3, FLAVOUR_QUARKUS_2,
3842
FLAVOUR_MICRONAUT_4, FLAVOUR_SPRINGBOOT_3, FLAVOUR_OPENLIBERTY ) ) );
@@ -63,6 +67,18 @@ public static void checkFlavour( FlavourContext context, String actualFlavour )
6367
log.info( "quarkus 2 is a legacy flavour, javaRelease %s will default to '11'", javaVersion );
6468
}
6569
log.info( "checkFlavour {} done", actualFlavour );
70+
checkFlavourVersion( context, actualFlavour );
71+
}
72+
73+
public static void checkFlavourVersion( FlavourContext context, String actualFlavour ) {
74+
// additional flavour config
75+
if ( StringUtils.isEmpty( context.getFlavourVersion() ) ) {
76+
String flavourVersionDefault = FLAVOURS_DEFAULT_VERSION.getProperty( actualFlavour );
77+
log.info( "using default flavourVersion : {} for flavour : {}", flavourVersionDefault, actualFlavour );
78+
context.setFlavourVersion( flavourVersionDefault );
79+
} else {
80+
log.info( "overriding default flavourVersion : {} for flavour : {}", context.getFlavourVersion(), actualFlavour );
81+
}
6682
}
6783

6884
private static void initFlavour( FlavourContext context, String actualFlavour ) throws IOException, TemplateException {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# default flavour versions
2+
quarkus-3=3.14.3
3+
quarkus-2=2.16.12.Final
4+
micronaut-4=4.6.2
5+
springboot-3=3.3.3
6+
openliberty=20.0.0.9
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<#import 'flavour-macro.ftl' as fhm>
22
---
3-
flavour: micronaut-4
3+
flavour: ${context.flavour}
44
process:
5-
- from: flavour/micronaut-4/pom.ftl
5+
- from: flavour/${context.flavour}/pom.ftl
66
to: ${context.projectFolder}/pom.xml
7-
- from: flavour/micronaut-4/README.ftl
7+
- from: flavour/${context.flavour}/README.ftl
88
to: ${context.projectFolder}/README.md
9-
- from: flavour/micronaut-4/gitignore.ftl
9+
- from: flavour/${context.flavour}/gitignore.ftl
1010
to: ${context.projectFolder}/.gitignore
11-
- from: flavour/micronaut-4/MicronautController.ftl
11+
- from: flavour/${context.flavour}/MicronautController.ftl
1212
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/${context.artifactIdAsClassName}Controller.java
13-
- from: flavour/micronaut-4/DocController.ftl
13+
- from: flavour/${context.flavour}/DocController.ftl
1414
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/DocController.java
15-
- from: flavour/micronaut-4/Application.ftl
15+
- from: flavour/${context.flavour}/Application.ftl
1616
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/Application.java
17-
- from: flavour/micronaut-4/MicronautTest.ftl
17+
- from: flavour/${context.flavour}/MicronautTest.ftl
1818
to: ${context.projectFolder}/src/test/java/test/<@fhm.toProjectPackageFolder context=context/>/${context.artifactIdAsClassName}Test.java
19-
- from: flavour/micronaut-4/application_yml.ftl
19+
- from: flavour/${context.flavour}/application_yml.ftl
2020
to: ${context.projectFolder}/src/main/resources/application.yaml

fj-doc-maven-plugin/src/main/resources/config/template/flavour/micronaut-4/pom.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<parent>
1212
<groupId>io.micronaut.platform</groupId>
1313
<artifactId>micronaut-parent</artifactId>
14-
<version>4.5.0</version>
14+
<version>${context.flavourVersion}</version>
1515
</parent>
1616
<properties>
1717
<packaging>jar</packaging>
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<#import 'flavour-macro.ftl' as fhm>
22
---
3-
flavour: openliberty
3+
flavour: ${context.flavour}
44
process:
5-
- from: flavour/openliberty/pom.ftl
5+
- from: flavour/${context.flavour}/pom.ftl
66
to: ${context.projectFolder}/pom.xml
7-
- from: flavour/openliberty/README.ftl
7+
- from: flavour/${context.flavour}/README.ftl
88
to: ${context.projectFolder}/README.md
9-
- from: flavour/openliberty/gitignore.ftl
9+
- from: flavour/${context.flavour}/gitignore.ftl
1010
to: ${context.projectFolder}/.gitignore
11-
- from: flavour/openliberty/server.ftl
11+
- from: flavour/${context.flavour}/server.ftl
1212
to: ${context.projectFolder}/src/main/liberty/config/server.xml
13-
- from: flavour/openliberty/web.ftl
13+
- from: flavour/${context.flavour}/web.ftl
1414
to: ${context.projectFolder}/src/main/webapp/WEB-INF/web.xml
15-
- from: flavour/openliberty/RestApplication.ftl
15+
- from: flavour/${context.flavour}/RestApplication.ftl
1616
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/RestApplication.java
17-
- from: flavour/openliberty/GreetingResource.ftl
17+
- from: flavour/${context.flavour}/GreetingResource.ftl
1818
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/GreetingResource.java
19-
- from: flavour/openliberty/DocResource.ftl
19+
- from: flavour/${context.flavour}/DocResource.ftl
2020
to: ${context.projectFolder}/src/main/java/<@fhm.toProjectPackageFolder context=context/>/DocResource.java

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<maven.compiler.release>${context.javaRelease}</maven.compiler.release>
1616
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1717
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
18-
<openliberty-runtime-version>24.0.0.9</openliberty-runtime-version>
18+
<openliberty-runtime-version>${context.flavourVersion}</openliberty-runtime-version>
1919
<liberty-maven-plugin-version>3.10.3</liberty-maven-plugin-version>
2020
<microprofile-version>6.1</microprofile-version>
2121
<liberty.var.default.http.port>8080</liberty.var.default.http.port>

0 commit comments

Comments
 (0)