Proprietà di configurazione in Mule

Ciao developer,
in questo articolo troverai una breve introduzione su come gestire le proprietà e i file di configurazione di un progetto Mule. vediamo come:

File di configurazione

Mule ci dà la possibilità di definire e valorizzare le proprietà in un file mediante la componente “Configuration properties” :

1) Crea il file, click su “Create” e seleziona “Configuration properties”

Screenshot definizione proprietà 1

2) Scrivi il nome del file creato in precedenza

Screenshot definizione proprietà 2

Io personalmente simpatizzo per i file con estensione .properties ma, Mule ci offre la possibilità di usare file con estensione .yaml, la modalità di gestione rimane invariata.

Il runtime di Mule si occuperà di caricare la configurazione in memoria.

Proprietà globali o d’ambiente

A differenza della sorella minore con la componente “Global Property” possiamo definire una proprietà come “Globale” ma, la valorizzazione di essa viene delegata all’ambiente che ospiterà l’applicazione:

1) click su “Create” e seleziona “Globa property”

global property 1

2) Dagli un nome e un valore di default (se necessario)

global property 2

Lato runtime, prima del avvio basta aggiungere la variabile con la classica opzione -D

$> ./mule -M-Dmy.prop=456

Oppure, se in sviluppo su Anypoint Studio basta andare nelle impostazioni di avvio e aggiungere la variabile, come segue:

run configuration

Best Practice

Nei progetti Mule (o in generale) spesso volentieri troverete (e vi invito ad abituarvi a farlo :)), un mix delle due modalità viste in precedenza. Ovvero, è possibile definire un file di configurazione per ogni ambiente di esecuzione e, grazie all’operatore ${} di Mule, puntare ad uno specifico file.

Per fa ciò basta definire una variabile globale che chiameremo mule.env che potrà assumere i seguenti valori: dev, test, prod in funzione dell’ambiente di esecuzione.
Definire una configuration properties con il placeholder:

<global-property doc:name="Global Property"
            name="mule.env" value="dev" />

<configuration-properties doc:name="Configuration properties"
            file="${mule.env}.properties" />
	

Creare gli i tre files denominati dev.properties, test.properties e prod.properties all’interno della directory resource e Mule si occuperà di tutto il resto.

Come vedete, in questo modo la gestione delle proprietà di configurazione diventa molto ordinata e flessibile.

Accedere al valore delle proprietà a runtime

Per accedere al valore delle proprietà esistono due possibilità:

1) Mediante l’operatore ${}

Questo operatore può essere usato un pò ovunque, Dataweave, Transform message o Connector

esempio placeholder

2) Mediante la funzione p(“”)

Questa funzione può essere usata solo negli script Dataweave, in quanto fa parte delle funzioni del core di mule:

%dw 2.0
output application/java
---
{
	env: p("mule.env")
}

Alcuni link utili:

Doc ufficiale sulle proprietà: https://docs.mulesoft.com/mule-runtime/4.3/configuring-properties

Un buon articolo che spiega la differenza tra ${} e p(): https://www.linkedin.com/pulse/differences-extracting-property-values-using-p-mule-4-sravan-lingam/

Leggi anche Upload file via API con Mule

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

5 − 3 =