Skip to content

Commit

Permalink
Merge branch 'release/1.2.6'
Browse files Browse the repository at this point in the history
Release 1.2.6. Per maggiori informazioni consultare il CHANGELOG
  • Loading branch information
amusarra committed May 18, 2024
2 parents 9289067 + f7f7d77 commit a7192e5
Show file tree
Hide file tree
Showing 26 changed files with 820 additions and 56 deletions.
21 changes: 19 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Deprecated
### Security

[1.2.5] - 2024-05-14
## [1.2.6] - 2024-05-19
### Added
- Aggiunta nota sul file README.md riguardo l'uso di Podman rispetto a Docker
- Aggiunta nuova operation `createHorses()` per inserire più Horse in una sola chiamata
- Aggiunta nuova operation `countHorses()` per contare il numero di Horse
- Aggiunta nuova operation `deleteHorses()` per eliminare tutti gli Horse
- Aggiunti nuovi test per le nuove operazioni

### Changed
- Aggiornamento operation `getAllHorses()` per accettare il parametro `limit` con l'obiettivo di limitare il numero di Horse restituiti
- Aggiornamento scenario di test JMeter `scenario_2.jmx` per includere le nuove operazioni
- Uso di `Instant.now()` per la generazione del tracking invece di `LocalDateTime.now()`

### Fixed
- Removed unused import in `HorseRepositoryResources`
- Rivista `@Order` annotation per i test

## [1.2.5] - 2024-05-14
### Changed
- Aggiornamento del file README.md sezione Scenari di Test con JMeter e Taurus
- Aggiornamento della gestione degli Event Handler attraverso la configurazione di Quarkus
Expand All @@ -21,7 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Risoluzione issue di SonarCloud

[1.2.4] - 2024-05-13
## [1.2.4] - 2024-05-13
### Added
- Aggiunto altro unit test per la pubblicazione di messaggi fake
- Aggiunta configurazione Jacoco per l'exclusion di una classe dal coverage report
Expand Down
45 changes: 38 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,13 +266,44 @@ req/s : 95.02 131.20 109.66 19.40 60.00%
```
Log 2 - Esempio di output del comando h2load

### Qualche nota sulla configurazione di Podman
Nel caso in cui abbiate Podman al posto di Docker, potreste incontrare il problema mostrato seguire quanto avvierete l'applicazione.

```text
...
2024-05-15 12:22:07,164 ERROR [org.tes.doc.DockerClientProviderStrategy] (build-43) Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
UnixSocketClientProviderStrategy: failed with exception InvalidConfigurationException (Could not find unix domain socket). Root cause AccessDeniedException (/var/run/docker.sock)
DockerDesktopClientProviderStrategy: failed with exception NullPointerException (Cannot invoke "java.nio.file.Path.toString()" because the return value of "org.testcontainers.dockerclient.DockerDesktopClientProviderStrategy.getSocketPath()" is null)As no valid configuration was found, execution cannot continue.
...
```
Log 3 - Esempio di errore di configurazione di Podman

In questo caso, dovreste attivare il servizio `podman.socket` per le [API service](https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md) e in modo che il socket sia accessibile a tutti gli utenti. Per fare ciò, eseguire i seguenti comandi.

```shell script
# I comandi seguenti devono essere eseguiti come utente normale (!= root)
# Abilita il servizio podman.socket per le API service in modalità user
systemctl --user start podman.socket
# Verifica che il socket sia stato creato
ls -l $XDG_RUNTIME_DIR/podman/podman.sock
# Verifica che il servizio podman.socket sia attivo
systemctl --user status podman.socket
# Export della variabile d'ambiente DOCKER_HOST
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
```
Console 6 - Abilita il servizio podman.socket per le API service


## Esecuzione dell'applicazione in dev mode

Puoi eseguire l'applicazione in modalità sviluppo che abilita il live coding utilizzando:
```shell script
./mvnw compile quarkus:dev
```
Console 6 - Esecuzione dell'applicazione in modalità sviluppo
Console 7 - Esecuzione dell'applicazione in modalità sviluppo

> **_NOTE:_** Quarkus ora include una UI di sviluppo, disponibile solo in modalità sviluppo all'indirizzo http://localhost:8080/q/dev/.

Expand All @@ -286,7 +317,7 @@ L'applicazione può essere preparata utilizzando:
```shell script
./mvnw package
```
Console 7 - Packaging dell'applicazione
Console 8 - Packaging dell'applicazione

Il processo produrrà il file `quarkus-run.jar` in `target/quarkus-app/`.
Questo non è un _über-jar_ in quanto le dipendenze sono copiate nella
Expand All @@ -298,7 +329,7 @@ Se vuoi creare un _über-jar_, esegui il seguente comando:
```shell script
./mvnw package -Dquarkus.package.type=uber-jar
```
Console 8 - Impacchettamento dell'applicazione come _über-jar_
Console 9 - Impacchettamento dell'applicazione come _über-jar_

L'applicazione, impacchettata come un _über-jar_, è ora eseguibile utilizzando `java -jar target/*-runner.jar`.

Expand All @@ -316,7 +347,7 @@ utilizzando:
```shell script
./mvnw package -Dnative -Dquarkus.native.container-build=true
```
Console 10 - Creazione di un eseguibile nativo in un container
Console 11 - Creazione di un eseguibile nativo in un container

Puoi eseguire l'eseguibile nativo con: `./target/eventbus-logging-filter-jaxrs-1.0.0-SNAPSHOT-runner`

Expand Down Expand Up @@ -373,7 +404,7 @@ bzt -o modules.jmeter.properties.numberOfThreads=100 \
src/test/jmeter/taurus/config.yml \
src/test/jmeter/scenario_1.jmx
```
Console 11 - Esecuzione del Test Plan di JMeter con Taurus
Console 12 - Esecuzione del Test Plan di JMeter con Taurus

Il comando `bzt` esegue il Test Plan di JMeter con Taurus e i parametri `-o` sono utilizzati per sovrascrivere i valori
delle variabili definite nel file di configurazione di Taurus `src/test/jmeter/taurus/config.yml` che in questo caso
Expand Down Expand Up @@ -486,7 +517,7 @@ A seguire un esempio di una richiesta eseguita da JMeter e tracciata su MongoDB
"acceptable-media-types" : "[*/*]"
}
```
Log 3 - Esempio di richiesta HTTP tracciata su MongoDB
Log 4 - Esempio di richiesta HTTP tracciata su MongoDB

È possibile eseguire questo scenario sempre con Taurus utilizzando comando `bzt` come mostrato in precedenza. A seguire
è riportato il comando per eseguire lo scenario di Load Testing con Taurus.
Expand All @@ -502,7 +533,7 @@ bzt -o modules.jmeter.properties.numberOfThreads=1 \
src/test/jmeter/taurus/config.yml \
src/test/jmeter/scenario_2.jmx
```
Console 12 - Esecuzione dello scenario di Load Testing con Taurus
Console 13 - Esecuzione dello scenario di Load Testing con Taurus

## Accesso alla Java Management Extensions (JMX)
Dalla versione [1.2.4](https://github.com/amusarra/eventbus-logging-filter-jaxrs/releases/tag/v1.2.4) del progetto è possibile accedere alla Java Management Extensions (JMX) dell'applicazione Quarkus
Expand Down
37 changes: 36 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>it.dontesta.eventbus</groupId>
<artifactId>eventbus-logging-filter-jaxrs</artifactId>
<version>1.2.5</version>
<version>1.2.6</version>
<name>eventbus-logging-filter-jaxrs</name>
<description>Event Bus Logging Filter JAX-RS</description>
<url>https://amusarra.github.io/eventbus-logging-filter-jaxrs-docs</url>
Expand Down Expand Up @@ -39,9 +39,11 @@
<url>scm:git:[email protected]:amusarra/eventbus-logging-filter-jaxrs.git</url>
</scm>
<properties>
<asciidoclet.version>2.0.0</asciidoclet.version>
<compiler-plugin.version>3.12.1</compiler-plugin.version>
<maven.compiler.release>21</maven.compiler.release>
<maven.release.plugin.version>3.0.1</maven.release.plugin.version>
<maven.javadoc.plugin.version>3.6.3</maven.javadoc.plugin.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
Expand Down Expand Up @@ -252,6 +254,39 @@
<useReleaseProfile>false</useReleaseProfile>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.plugin.version}</version>
<configuration>
<source>21</source>
<doctitle>Event Bus Logging Filter JAX-RS - API</doctitle>
<keywords>true</keywords>
<linksource>true</linksource>
<overview>${basedir}/src/main/javadoc/overview.html</overview>
<links>
<link>https://docs.oracle.com/en/java/javase/21/docs/api</link>
</links>
<groups>
<group>
<title>JAX-RS Application Packages</title>
<packages>it.dontesta.eventbus.ws.*</packages>
</group>
<group>
<title>Application Configuration Packages</title>
<packages>it.dontesta.eventbus.application.*</packages>
</group>
<group>
<title>Event Bus Consumer Packages</title>
<packages>it.dontesta.eventbus.consumers.*</packages>
</group>
<group>
<title>ORM Packages</title>
<packages>it.dontesta.eventbus.orm.*</packages>
</group>
</groups>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/main/docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ networks:
# 4. Logging Filter
services:
mongodb:
image: docker.io/library/mongo:4.4
image: docker.io/library/mongo:4.4.3-bionic
container_name: mongodb
networks:
- logging_filter_network
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* e usato dal converter {@code EventHandlerAddressConverter} per convertire la stringa di
* configurazione in un oggetto {@code EventHandlerAddress}.
*
* @since 1.2.5
* @see it.dontesta.eventbus.application.configuration.converter.EventHandlerAddressConverter
*/
public class EventHandlerAddress {
Expand All @@ -19,6 +20,9 @@ public class EventHandlerAddress {

/**
* Costruttore di default.
*
* @param address l'indirizzo dell'event handler
* @param enabled true se l'event handler è abilitato, false altrimenti
*/
public EventHandlerAddress(String address, boolean enabled) {
this.address = address;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* rappresenta l'indice dell'indirizzo dell'event handler.
*
* <p>Il formato della stringa è il seguente: {@code address=address,enabled=enabled} dove address è
* l'indirizzo dell'event handler e enabled è un flag booleano che indica se l'event handler è
* l'indirizzo dell'event handler ed enabled è un flag booleano che indica se l'event handler è
* abilitato o meno.
*/
public class EventHandlerAddressConverter implements Converter<EventHandlerAddress> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,18 @@ public class Dispatcher {

MessageConsumer<JsonObject> consumer;

/**
* Source virtual address header.
* È il nome dell'header che contiene l'indirizzo virtuale del consumer che ha inviato l'evento.
*/
public static final String SOURCE_VIRTUAL_ADDRESS = "source-virtual-address";

/**
* Source component header.
* È il nome dell'header che contiene il nome del componente sorgente
* che ha inviato l'evento. Il nome del componente è in formato
* <b>FQCN (Fully Qualified Class Name)</b>.
*/
public static final String SOURCE_COMPONENT = "source-component";

void onStart(@Observes StartupEvent ev) {
Expand Down Expand Up @@ -94,7 +104,8 @@ public void handleEvent(Message<JsonObject> message) {
.toList();

log.debugf(
"Received event message from source virtual address: %s and source component: %s " +
"Received event message from source virtual address: %s and source component: %s "
+
"for the target virtual addresses: %s",
sourceVirtualAddress, sourceComponent, targetVirtualAddressesList);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,12 @@ public class MongoDbEventHandler {

MessageConsumer<JsonObject> consumer;

/**
* Source component header.
* È il nome dell'header che contiene il nome del componente sorgente
* che ha inviato l'evento. Il nome del componente è in formato
* <b>FQCN (Fully Qualified Class Name)</b>.
*/
public static final String SOURCE_COMPONENT = "source-component";

public static final String SOURCE_VIRTUAL_ADDRESS_NOSQL = "nosql-trace";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* per AMQP e gestisce gli eventi ricevuti dall'event bus tramite il metodo {@code handleEvent}.
*
* <p>Questo componente è responsabile di processare gli eventi/messaggi veicolati dal Dispatcher
* tramite l'event bus e inviare il messaggio verso il brocker AMQP..
* tramite l'event bus e inviare il messaggio verso il broker AMQP.
* L'esito dell'operazione viene inviato come risposta al Dispatcher.
*
* <p>La registrazione avviene all'avvio dell'applicazione tramite l'annotazione {@code @Observes}
Expand Down Expand Up @@ -57,8 +57,19 @@ public class AmqpEventHandler {

MessageConsumer<JsonObject> consumer;

/**
* Source component header.
* È il nome dell'header che contiene il nome del componente sorgente
* che ha inviato l'evento. Il nome del componente è in formato
* <b>FQCN (Fully Qualified Class Name)</b>.
*/
public static final String SOURCE_COMPONENT = "source-component";

/**
* Indirizzo virtuale della coda AMQP per la gestione degli eventi.
* È il nome dell'indirizzo virtuale della coda AMQP per la gestione degli eventi
* su cui il consumer si registra per ricevere gli eventi. @see {@link #onStart(StartupEvent)}
*/
public static final String SOURCE_VIRTUAL_ADDRESS_QUEUE = "queue-trace";

void onStart(@Observes StartupEvent ev) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,18 @@ public class HttpRequestConsumer {

MessageConsumer<JsonObject> consumer;

/**
* Source virtual address header.
* È il nome dell'header che contiene l'indirizzo virtuale del consumer che ha inviato l'evento.
*/
public static final String SOURCE_VIRTUAL_ADDRESS = "source-virtual-address";

/**
* Source component header.
* È il nome dell'header che contiene il nome del componente sorgente
* che ha inviato l'evento. Il nome del componente è in formato
* <b>FQCN (Fully Qualified Class Name)</b>.
*/
public static final String SOURCE_COMPONENT = "source-component";

void onStart(@Observes StartupEvent ev) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,18 @@ public class HttpResponseConsumer {

MessageConsumer<JsonObject> consumer;

/**
* Source virtual address header.
* È il nome dell'header che contiene l'indirizzo virtuale del consumer che ha inviato l'evento.
*/
public static final String SOURCE_VIRTUAL_ADDRESS = "source-virtual-address";

/**
* Source component header.
* È il nome dell'header che contiene il nome del componente sorgente
* che ha inviato l'evento. Il nome del componente è in formato
* <b>FQCN (Fully Qualified Class Name)</b>.
*/
public static final String SOURCE_COMPONENT = "source-component";

void onStart(@Observes StartupEvent ev) {
Expand Down
Loading

0 comments on commit a7192e5

Please sign in to comment.