ModuleLifecycle¶
fr.capellegab.api.module.ModuleLifecycle
Interface optionnelle pour reagir aux evenements de cycle de vie du module.
Definition¶
public interface ModuleLifecycle {
default void onStart() {}
default void onStop() {}
default void onError(Event event, Exception exception) {}
}
Methodes¶
Toutes les methodes sont default — vous n'implementez que celles dont vous avez besoin.
onStart()¶
Appelee une fois au chargement du module par le core. Utilisez-la pour initialiser des ressources.
onStop()¶
Appelee a l'arret du core. Utilisez-la pour liberer des ressources.
onError(Event event, Exception exception)¶
Appelee quand onEvent() leve une exception. Permet de logger, alerter, ou decider d'une strategie de retry.
| Parametre | Type | Description |
|---|---|---|
event |
Event |
L'evenement qui a provoque l'erreur |
exception |
Exception |
L'exception levee |
@Override
public void onError(Event event, Exception exception) {
System.err.println("Erreur sur " + event.uuid() + " : " + exception.getMessage());
}
Exemple complet¶
public class MonModule implements EventModule, ModuleLifecycle {
private Connection connection;
@Override
public ModuleConfig config() {
return new ModuleConfig("mon-module", "1.0.0", "auteur", "Description", Set.of(EventType.TRANSACTION), Priority.MEDIUM);
}
@Override
public void onStart() {
connection = Database.connect();
}
@Override
public void onEvent(Event event, EventContext context) {
connection.save(event);
}
@Override
public void onError(Event event, Exception exception) {
context.log("Echec sauvegarde event {} : {}", event.uuid(), exception.getMessage());
}
@Override
public void onStop() {
connection.close();
}
}