Skip to content

Commit

Permalink
Merge pull request #343 from klee-contrib/gideruette/issue342
Browse files Browse the repository at this point in the history
[i18n] Permettre de modifier la génération des fichiers properties java en UTF 8
  • Loading branch information
gideruette authored Mar 12, 2024
2 parents 152fc4e + ffba4e5 commit 4c2180c
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 30 deletions.
8 changes: 7 additions & 1 deletion TopModel.Generator.Jpa/JpaConfig.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Text.RegularExpressions;
using System.Text;
using System.Text.RegularExpressions;
using TopModel.Core;
using TopModel.Core.FileModel;
using TopModel.Core.Model.Implementation;
Expand Down Expand Up @@ -49,6 +50,11 @@ public class JpaConfig : GeneratorConfigBase
/// </summary>
public string? ResourcesPath { get; set; }

/// <summary>
/// Localisation des ressources, relative au répertoire de génération.
/// </summary>
public ResourcesEncoding? ResourcesEncoding { get; set; } = Jpa.ResourcesEncoding.Latin1;

/// <summary>
/// Option pour générer des getters et setters vers l'enum des références plutôt que sur la table
/// </summary>
Expand Down
12 changes: 11 additions & 1 deletion TopModel.Generator.Jpa/JpaResourceGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,17 @@ public JpaResourceGenerator(ILogger<JpaResourceGenerator> logger, TranslationSto

protected override void HandleResourceFile(string filePath, string lang, IEnumerable<IFieldProperty> properties)
{
using var fw = new FileWriter(filePath, _logger, Encoding.Latin1) { EnableHeader = false };
var encoding = Encoding.Latin1;
if (Config.ResourcesEncoding is not null)
{
encoding = Config.ResourcesEncoding switch
{
ResourcesEncoding.UTF8 => Encoding.UTF8,
_ => Encoding.Latin1
};
}

using var fw = new FileWriter(filePath, _logger, encoding) { EnableHeader = false };
var containers = properties.GroupBy(prop => prop.Parent);

foreach (var container in containers.OrderBy(c => c.Key.NameCamel))
Expand Down
14 changes: 14 additions & 0 deletions TopModel.Generator.Jpa/ResourcesEncoding.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace TopModel.Generator.Jpa;

Check warning on line 1 in TopModel.Generator.Jpa/ResourcesEncoding.cs

View workflow job for this annotation

GitHub Actions / build


public enum ResourcesEncoding
{
/// <summary>
/// Génération du modèle utilisant l'api javax
/// </summary>
UTF8,

/// <summary>
/// Génération du modèle utilisant l'api jakarta
/// </summary>
Latin1
}
44 changes: 16 additions & 28 deletions TopModel.Generator.Jpa/jpa.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@
"type": "object",
"description": "Config pour la génération de Jpa.",
"additionalProperties": false,
"required": [
"tags",
"outputDirectory"
],
"required": ["tags", "outputDirectory"],
"properties": {
"language": {
"type": "string",
Expand Down Expand Up @@ -93,10 +90,7 @@
{
"type": "string",
"description": "Mode de génération de l'API ('Client' ou 'Server')",
"enum": [
"Client",
"Server"
]
"enum": ["Client", "Server"]
},
{
"type": "string",
Expand All @@ -111,10 +105,7 @@
"type": "string",
"description": "Mode de génération de l'API Client ('Client' ou 'Server')",
"default": "RestClient",
"enum": [
"RestTemplate",
"RestClient"
]
"enum": ["RestTemplate", "RestClient"]
},
{
"type": "string",
Expand All @@ -128,6 +119,15 @@
"type": "string",
"description": "Localisation des ressources, relative au répertoire de génération."
},
"resourcesEncoding": {
"type": "string",
"description": "Encodage des fichiers de resource.",
"default": "Latin1",
"enum": [
"Latin1",
"UTF8"
]
},
"useJdbc": {
"type": "boolean",
"description": "Générer les entités en mode JDBC",
Expand Down Expand Up @@ -186,12 +186,7 @@
"type": "string",
"description": "Option pour générer une enum des champs des classes persistées",
"default": "None",
"enum": [
"None",
"Persisted",
"Dto",
"Persisted_Dto"
]
"enum": ["None", "Persisted", "Dto", "Persisted_Dto"]
},
"fieldsEnumInterface": {
"type": "string",
Expand All @@ -200,10 +195,7 @@
"persistenceMode": {
"type": "string",
"description": "Mode de génération de la persistence ('Javax' ou 'Jakarta')",
"enum": [
"javax",
"jakarta"
]
"enum": ["javax", "jakarta"]
},
"identity": {
"type": "object",
Expand All @@ -212,11 +204,7 @@
"mode": {
"type": "string",
"description": "Mode de génération des séquences.",
"enum": [
"none",
"sequence",
"identity"
],
"enum": ["none", "sequence", "identity"],
"default": "identity"
},
"increment": {
Expand All @@ -230,4 +218,4 @@
}
}
}
}
}
19 changes: 19 additions & 0 deletions docs/generator/jpa.md
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,16 @@ jpa:

Pour que, pour chaque module, soit généré les fichiers de resources dans les différentes langues configurées globalement.

Par défaut, les fichiers sont générés avec l'encodage Latin1, mais il est possible de les générer en UTF8 avec la propriété resourcesEncoding

```yaml
jpa:
- tags:
- dto
resourcesPath: resources/i18n/model # Chemin des fichiers de ressource générés.
resourcesEncoding: UTF8 # Encodage fichiers de ressource générés (Latin1 ou UTF8).
```

## Générateur de flow

Le générateur de data flow s'appuie sur `spring-batch`. Il permet de générer du code permettant de récupérer des données d'une source, appliquer éventuellement une transformation, puis les insérer dans une base de données. Les outils mis en oeuvre ont été sélectionnés pour leur capacité à traiter un grand nombre de données, avec les meilleures performances possibles.
Expand Down Expand Up @@ -586,6 +596,15 @@ Le générateur créé un fichier de configuration de job par module. Ce job ord

_Variables par tag_: **oui**

- `resourcesEncoding`

Encodage des fichiers de ressources. Les valeurs possibles sont :

- `Latin1` : valeur par défaut
- `UTF8`

_Variables par tag_: **non**

- `enumShortcutMode`

Option pour générer des getters et setters vers l'enum des références plutôt que sur la table
Expand Down

0 comments on commit 4c2180c

Please sign in to comment.