Skip to content

Latest commit

 

History

History
156 lines (100 loc) · 3.78 KB

README.md

File metadata and controls

156 lines (100 loc) · 3.78 KB

Projet Opensource - Synchronisation de données avec l'API Remocra

  • Financeur : Eau de Paris
  • Objet : SIG Open Source - Echanges REMOCRA / WatGIS -Interface REMOCRA - Synchronisation des caractéristiques techniques et des disponibilités avec Remocra et suivi de la synchronisation

Démarrage rapide

Les commandes sont exécutées dans le répertoire racine du projet.

Les dépendances

Elles sont démarrées via des conteneurs :

# Démarrage d'une instance Remocra
# TODO cf. projet atolcd/sdis-remocra

# Démarrage de dépendances directes
(cd docker && docker-compose up)

Voir le fichier docker/README.md pour plus de détails.

Exécution de l'application

Maven :

mvn clean compile exec:java \
  -Dedp.database.serverName=localhost \
  -Dexec.args="help"

Docker :

docker run --network="host" --rm \
  --name edp-dev \
  -u $(id -u):$(id -g) \
  -v "$(pwd)":/app -w /app \
  -v ~/.m2:/var/maven/.m2 -v "${HOME}":/var/maven \
  -e HOME=/var/maven -e MAVEN_CONFIG=/var/maven/.m2 -e MAVEN_OPTS="-Duser.home=/var/maven" \
  \
  maven:3-jdk-11 \
  \
  mvn clean compile exec:java

IDE :

Classe principale : fr.eaudeparis.syncremocra.App

Exemple d'arguments :

  -Dedp.database.serverName=localhost

Exemple pour Visual Studio Code .vscode/launch.json :

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Job tests",
            "request": "launch",
            "mainClass": "fr.eaudeparis.syncremocra.App",
            "projectName": "syncremocra-app",
            "vmArgs": "-Dedp.database.serverName=localhost"
            "args": "-c=path/to/dev.conf -l=path/to/log4j2-dev.conf job-test-all"
        }
    ]
}

Formatage de code (API)

Le code java de ce projet se conforme au Google's code styleguide.

Le plugin maven spotless traite cet aspect :

# Vérification du formatage
mvn spotless:check

# Application du formatage (à faire avant tout commit)
mvn spotless:apply

Editeurs pris en charge

Des formateurs spécifiques existent pour Eclipse et IntelliJ.

Visual Studio

On automatise l'utilisation de google-java-format à la sauvegarde des fichiers.

Installation du plugin emeraldwalk/vscode-runonsave :

code --install-extension emeraldwalk.RunOnSave

Puis on configure la commande dans le fichier .vscode/settings.json :

{
    "java.configuration.updateBuildConfiguration": "automatic",
    "emeraldwalk.runonsave": {
    "commands": [
      {
        "match": "\\.java$",
        "cmd": "app/java-format.sh ${file}"
      },
    ],
  }
}

Opérations sur la base de données

La génération du modèle Jooq et l'application des migrations sont expliquées dans le fichier db/README.md.

Documentation d'exploitation

Les manuels d'installation, de mise à jour et d'exploitation sont maintenus avec le code source dans le projet doc.

Pentaho Data Integration

Cf. pdi/README.md.

Intégration continue

Les pipelines sont décrits dans le fichier jenkins/README.md.

Validation dans une box Vagrant

Pour tester l'application dans une box Vagrant, se référer au fichier vagrant/README.md.

Distribution

La distribution est expliquée dans le fichier dist/README.md. En particulier, cette documentation décrit le process de mise à jour d'un serveur.