Det primære formål med MinLogProducer biblioteket er at udstille et Java-API som NSP komponenter kan anvende til at lave MinLog2 registreringer via. Dette dokument beskriver tilgængelighed af modulet samt anvendelse.
Biblioteket består af 2 moduler. Begge biblioteker findes som moduler på platformen. Det betyder at de skal inkluderes som provided in pom.xml og tilføjes som en dependency i jboss-deployment-structure.xml.
Dette bibliotek indeholder api og interface definitioner samt ServiceLoader implementeret i form af klassen RegisterServiceProvider.
POM groupId: dk.nsp.minlog
POM artifactId: minlog-producer-api
Wildfly modul navn: dk.sds.nsp.minlog.api
Dette bibliotek indeholder implementering af interface defineret i minlog-producer-api biblioteket.
POM groupId: dk.nsp.minlog
POM artifactId: minlog-producer-registration
Wildfly modul navn: dk.sds.nsp.minlog.producer
Dette bibliotek har en afhængighed til minlog-producer-api biblioteket, så det er kun nødvendigt at anvende dette bibliotek i sit projekt.
Anvendelse af API sker primært gennem to klasser og så en række POJO klasser.
Dette er service provider klassen. Den definerer en enkelt statisk metode og denne metode skal kaldes for at få en instans af RegisterService. Metoden man skal kalde hedder getRegisterService().
Hvis man kalder getRegisterService() metoden UDEN at have minlog-producer-registration på sin classpath så får man en test implementering af RegisterService. Denne udgave sender IKKE data til MinLog og validerer heller ikke input. Den logger udelukkende kald til via log4j.
Når man har anvendt RegisterServiceProvider til at få en implementering af RegisterService er der 4 metoder man kan kalde.
void init(Properties properties)
Denne metode skal kaldes inden man kalder andre metoder. Hvis man ikke går dette får man en exception. De properties der skal angives som argument er dem der kan anvendes til at konfigurere en KafkaProducer.
RegistrationResult addRegistrations(List<LogEntry>)
Denne metode kaldes for at registrere i MinLog. Argumentet indeholder en liste af LogEntry objekter som repræsenterer de data der skal registreres i MinLog. RegistrationResult er resultatet af registreringen.
void flush()
Sørger for at kalde flush() på KafkaProducer. Metoden skal kaldes hvor gang man vi sikre sig at kald til addRegistrations() er persisteret i Kafka.
void close()
Kaldes når servicen ikke længere skal bruges. Sørger for pænt at lukke forbindelsen til Kafka osv.
Dette svarer til et LogDataEntry element i https://www.nspop.dk/display/public/web/MinLog2+-+Min+Log+Registrering+-+Guide+til+anvendere#MinLog2MinLogRegistreringGuidetilanvendere-Request og der henvises derfor til dette dokument.
Dette svarer til et Source element i https://www.nspop.dk/display/public/web/MinLog2+-+Min+Log+Registrering+-+Guide+til+anvendere#MinLog2MinLogRegistreringGuidetilanvendere-Request og der henvises derfor til dette dokument.
Dette svarer til et Destination element i https://www.nspop.dk/display/public/web/MinLog2+-+Min+Log+Registrering+-+Guide+til+anvendere#MinLog2MinLogRegistreringGuidetilanvendere-Request og der henvises derfor til dette dokuemnt.
Nendenstående er et eksempel på hvordan man anvender biblioteket.
// Opret instans RegisterService registerService = RegisterServiceProvider.getRegisterService(); registerService.init(kafkaConfigurationProperties); // Send data til MinLog RegistrationResult result = registerService.addRegistrations(createLogEntryList()); registerService.flush(); if(result.getNumberFailed() > 0) { // Håndter fejlede registreringer her. } // Send flere data til MinLog. Dette kunne f.eks. være en anden transaktion. registerService.addRegistrations(createLogEntryList()); registerService.flush(); if(result.getNumberFailed() > 0) { // Håndter fejlede registreringer her. } // Luk service. F.eks. når applikationen stoppes. registerService.close(); |