vai al contenuto principale

Plugin Gradle

Livebase mette a disposizione un plugin Gradle per automatizzare alcuni passaggi dei processi di build

Quando sviluppiamo un’applicazione gestendo una base di codice, non è raro l’utilizzo di ambienti di continuous integration come Jenkins o Travis CI per semplificarne il ciclo di sviluppo ed essere così maggiormente reattivi a segnalazioni di bug o richieste di nuove feature. Questo approccio è indicato anche per soluzioni low-code come Livebase, ed è per questo motivo che abbiamo messo a disposizione un plugin Gradle che potrai facilmente richiamare dal tuo ambiente di continuous integration, automatizzando così alcuni passaggi del tuo processo di build.

Configurazione del progetto #

Per cominciare, crea un nuovo progetto Gradle e cancella il contenuto del suo build.gradle. Inserisci dunque il seguente codice per importare il plugin Livebase:

buildscript {
  repositories {
    mavenCentral()
  }

  dependencies {
    classpath 'com.fhoster.livebase:livebase-gradle-plugin:2.0.+'
  }
}

apply plugin: 'java'
apply plugin: 'com.fhoster.livebase'

Successivamente, configura il plugin aggiungendo la seguente sezione:

livebase {
  username = '<accountUsername>'
  password = '<accountPassword>'

  // Mutualmente esclusivi
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale
  modelName = '<model>'

  // Opzionale, presente in due formati
  pluginsName = '<jarPath>'          // Per individuare il plugin dal nome
  pluginsName '<regex>', true        // Per individuare i plugin da una regular expression
  
  // Opzionale
  debugLog = true

  // Opzionale, default = false
  needsLock = true

  overrideSession = false
}
  • username : username del tuo account livebase;
  • password : password del tuo account livebase;
  • cloudletId/cloudletName : parametri globali. Indicano l’id o il nome della Cloudlet a cui faranno riferimento tutti i task Gradle eseguiti. È possibile specificare solo uno o nessuno di questi parametri;
  • modelName : parametro globale. Indica il nome del modello a cui faranno riferimento tutti i task Gradle eseguiti;
  • pluginsName : indica il plugin o i plugin a cui faranno riferimento tutti i task Gradle eseguiti. Usando la forma pluginsName = '<jarPath>', si indica un solo plugin attraverso il percorso del suo file .jar; con la forma pluginsName '<regex>', true, si indicano multipli plugin attraverso un’espressione regolare;
  • debugLog : se impostato a true, setta il livello del log a DEBUG stampando tutte le informazioni;
  • needsLock : se impostato a true, l’esecuzione dei task effettuerà la reserve della Cloudlet. Questo è particolarmente utile se l’account che utilizziamo ha dei sub-account.

Quando hai finito di specificare la configurazione, verifica la corretta compilazione del plugin eseguendo nella root del progetto il comando ./gradlew clean build.

Task disponibili #

Il plugin Gradle di Livebase mette a disposizione una serie di task che agiscono ognuno su una tipologia diversa di elemento. Possiamo dunque raggrupparli in task Cloudlet, task engine, task database, task plugin e task modello.

Task Cloudlet #

I seguenti task agiscono tutti sulle Cloudlet Livebase.

createCloudlet #

Crea una nuova Cloudlet e la dispiega sull’Hosting Servant. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

createCloudlet {
  // Se omesso, usa il valore specificato nella sezione livebase
  cloudletName = '<cloudlet>'
}
  • cloudletName : nome che sarà assegnato alla nuova Cloudlet. Se il parametro è omesso, sarà usato il valore di cloudletName specificato nella sezione livebase.

startCloudlet #

Avvia una Cloudlet presente sull’Hosting Servant. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

startCloudlet {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale
  strictMode = false
}
  • cloudletId/cloudletName : id o nome della Cloudlet che si desidera avviare. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • strictMode : se impostato a true, il task fallisce immediatamente qualora la Cloudlet in questione sia già avviata. Se il parametro è omesso, viene considerato true.

stopCloudlet #

Arresta una Cloudlet presente sull’Hosting Servant. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

stopCloudlet {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale
  strictMode = false
}
  • cloudletId/cloudletName : id o nome della Cloudlet che si desidera arrestare. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • strictMode : se impostato a true, il task fallisce immediatamente qualora la Cloudlet in questione sia già arrestata. Se il parametro è omesso, viene considerato true.

retrieveCloudletInfo #

Stampa le informazioni relative a una Cloudlet in un file esterno. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

retrieveCloudletInfo {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Obbligatorio
  outputFile = 'info.json'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui si vogliono stampare le informazioni. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • outputFile : percorso del file dove saranno salvate le informazioni. Deve avere estensione json.

upgradeCloudlet #

Effettua l’upgrade delle API di una Cloudlet all’ultima versione rilasciata. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

upgradeCloudlet {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui si vogliono aggiornare le API. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;

enableGraphQL #

Attiva o disattiva le API GraphQL per una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

enableGraphQL {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Obbligatorio
  enablePlugin = false
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui si vogliono attivare o disattivare le GraphQL. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • enablePlugin : se true, attiva le API GraphQL; se false, le disattiva.

rebuildGraphQL #

Forza il rebuild delle API GraphQL di una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

rebuildGraphQL {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui si vuole fare rebuild delle GraphQL. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.

deleteCloudlet #

Elimina una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

deleteCloudlet {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet che si desidera eliminare. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.

Task engine #

I seguenti task agiscono tutti sugli engine, vale a dire sui modelli che sono stati caricati sulle Cloudlet Livebase.

deployEngine #

Carica un modello su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

deployEngine {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Mutualmente esclusivi
  sourceCloudletName = 'NewCloudlet2'
  sourceModelName = 'Model1'
}
  • cloudletId/cloudletName : id o nome della Cloudlet su cui si desidera caricare il modello. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • sourceCloudletName/sourceModelName : è possibile specificare uno solo di questi parametri alla volta. Se il primo è specificato, il modello da caricare verrà preso dalla Cloudlet con il nome indicato; se invece è specificato il secondo, verrà preso il modello di libreria avente quel nome.

downloadEngine #

Scarica il modello precedentemente caricato su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

downloadEngine {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Obbligatorio
  outputFile = 'model.xml'
}
  • cloudletId/cloudletName : id o nome della Cloudlet da cui si desidera scaricare il modello. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • outputFile : percorso dove verrà salvato il modello scaricato. Deve avere estensione .xml.

deleteEngine #

Rimuove il modello precedentemente caricato su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

deleteEngine {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet che si desidera rimuovere. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.

Task database #

I seguenti task agiscono tutti sui database delle Cloudlet.

createDatabase #

Crea il database vuoto in funzione del modello caricato su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

createDatabase {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo generare il database. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.

updateDatabase #

Forza l’aggiornamento del database di una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

updateDatabase {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo aggiornare il database. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.

checkDatabase #

Esegue un controllo di allineamento tra il modello attualmente caricato sulla Cloudlet e quello che ha dato origine al suo database. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

import static com.fhoster.livebase.gradle.tasks.cloudlet.CheckDatabaseTask.FailOn.*

checkDatabase {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale
  outputFile = 'issues.csv'

  // Opzionale
  failOn = HighIssue
}
  • cloudletId/cloudletName : id o nome della Cloudlet su cui vogliamo effettuare il check. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • outputFile : percorso del file dove salvare l’elenco delle issue individuate durante il check; deve avere come estensione .csv. Se il parametro è omesso le issue verranno stampate sullo standard output;
  • failOn : specifica se l’esecuzione del task debba fallire quando viene riscontrata una high issue (HighIssue), alla prima issue di qualsiasi severità (AllIssues), oppure mai (Never). Se il parametro è omesso viene usato il valore AllIssues come default.

checkEngineDatabaseMismatch #

Confronta il database che si otterrebbe dal modello attualmente installato sulla Cloudlet con la struttura del database attuale, permettendo di evidenziare problemi dovuti agli interventi diretti su quest’ultimo (che non sarebbero segnalati dall’esecuzione di checkDatabase). Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

checkEngineDatabaseMismatch {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale
  outputFile = 'issues.csv'

  // Opzionale
  failIfAny = true
}
  • cloudletId/cloudletName : id o nome della Cloudlet su cui vogliamo effettuare il check. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • outputFile : percorso del file dove salvare l’elenco delle issue individuate durante il check. Deve avere come estensione .csv. Se il parametro è omesso le issue verranno stampate sullo standard output;
  • failIfAny : specifica se l’esecuzione del task debba fallire se vengono riscontrate delle issue. Se il parametro è omesso viene usato false come valore di default.

clearDatabase #

Rimuove tutti i record contenuti nel database di una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

clearDatabase {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo svuotare il database. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;

downloadDatabase #

Effettua un dump del database di una Cloudlet e scarica il file sql risultante. Puoi configurare il task aggiungendo la seguente sezione al build.gradle

downloadDatabase {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Obbligatorio
  outputFile = 'db.sql'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo scaricare il database. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • outputFile : percorso del file sql dove verrà salvato il dump. Deve avere estensione .sql.

uploadDatabase #

Carica su una Cloudlet il database generato da un dump sql. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

uploadDatabase {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Obbligatorio
  inputFile = 'db.sql'
}
  • cloudletId/cloudletName : id o nome della Cloudlet su cui vogliamo caricare il database. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • inputFile : percorso del file sql da caricare. Deve avere estensione .sql.

createAdmin #

Crea l’utenza amministrativa di default per una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

createAdmin {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo creare l’utenza amministrativa. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.

Task plugin #

I seguenti task agiscono tutti sui plugin installati sulle Cloudlet.

listPlugins #

Elenca tutti i plugin installati su una Cloudlet, salvando l’elenco su file. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

listPlugins {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Obbligatorio
  outputFile = 'plugins.txt'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo elencare i plugin. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.
  • outputFile : percorso del file dove sarà salvata la lista dei plugin. Deve avere estensione .txt.

downloadEngineSpi #

Scarica lo SPI di una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

downloadEngineSpi {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Obbligatorio
  outputFile = 'plugins/test.jar'
}
  • (opzionali) cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo scaricare lo SPI. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase.
  • outputFile : percorso del file dove sarà salvato lo SPI scaricato; deve avere estensione .jar.

uploadPlugins #

Effettua l’upload di uno o più plugin su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

uploadPlugins {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Mutualmente esclusivi.
  inputFile = 'plugins/test.jar'
  inputDirectory = 'plugins/'

  //Opzionale. Valido solo se è specificato inputDirectory
  includes = 'test.*\\.jar'
}
  • cloudletId/cloudletName : id o nome della Cloudlet su cui vogliamo caricare i plugin. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • inputFile/inputDirectory : è possibile specificare uno solo di questi parametri alla volta. Valorizzando inputFile il task caricherà il plugin con il percorso indicato, mentre valorizzando inputDirectory saranno caricati tutti quelli contenuti nella directory indicata;
  • includes : può essere specificato solo se è presente il parametro inputDirectory; va valorizzato a una espressione regolare che filtra i plugin da caricare presenti all’interno della directory.

downloadPlugins #

Effettua il download di uno o più plugin installati su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

downloadPlugins {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale, presente in due formati. Se omesso, usa il valore specificato nella sezione livebase
  pluginsName = '<jarPath>'          // Per individuare il plugin dal nome
  pluginsName '<regex>', true        // Per individuare i plugin da una regular expression

  // Obbligatorio
  outputDirectory = 'plugins/'
}
  • cloudletId/cloudletName : id o nome della Cloudlet da cui vogliamo scaricare i plugin. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • pluginsName : nome o espressione regolare indicante il plugin o i plugin da scaricare. Se si vuole indicare una espressione regolare è necessario aggiungere il parametro true come indicato nell’esempio. Se la direttiva è omessa, sarà utilizzata quella globale specificata nella sezione livebase;
  • outputDirectory : percorso della directory dove saranno salvati i plugin scaricati.

startPlugins #

Avvia uno o più plugin precedentemente installati su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

startPlugins {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale, presente in due formati. Se omesso, usa il valore specificato nella sezione livebase
  pluginsName = '<jarPath>'          // Per individuare il plugin dal nome
  pluginsName '<regex>', true        // Per individuare i plugin da una regular expression
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo avviare i plugin. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • pluginsName : nome o espressione regolare indicante il plugin o i plugin da avviare. Se si vuole indicare una espressione regolare è necessario aggiungere il parametro true come indicato nell’esempio. Se la direttiva è omessa, sarà utilizzata quella globale specificata nella sezione livebase;

stopPlugins #

Arresta uno o più plugin precedentemente installati su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

stopPlugins {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale, presente in due formati. Se omesso, usa il valore specificato nella sezione livebase
  pluginsName = '<jarPath>'          // Per individuare il plugin dal nome
  pluginsName '<regex>', true        // Per individuare i plugin da una regular expression
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo arrestare i plugin. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • pluginsName : nome o espressione regolare indicante il plugin o i plugin da arrestare. Se si vuole indicare una espressione regolare è necessario aggiungere il parametro true come indicato nell’esempio. Se la direttiva è omessa, sarà utilizzata quella globale specificata nella sezione livebase;

deletePlugins #

Rimuove uno o più plugin precedentemente installati su una Cloudlet. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

deletePlugins {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale, presente in due formati. Se omesso, usa il valore specificato nella sezione livebase
  pluginsName = '<jarPath>'          // Per individuare il plugin dal nome
  pluginsName '<regex>', true        // Per individuare i plugin da una regular expression
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo rimuovere i plugin. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • pluginsName : nome o espressione regolare indicante il plugin o i plugin da rimuovere. Se si vuole indicare una espressione regolare è necessario aggiungere il parametro true come indicato nell’esempio. Se la direttiva è omessa, sarà utilizzata quella globale specificata nella sezione livebase;

printPluginsState #

Stampa su un file l’elenco dei plugin installati su una Cloudlet, comprensivo del loro stato attuale. Il formato di stampa è il seguente:

- <plugin1Name>: <STATE>
- <plugin2Name>: <STATE>
...

Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

printPluginsState {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  cloudletId = '<id>'
  cloudletName = '<cloudlet>'

  // Opzionale, presente in due formati. Se omesso, usa il valore specificato nella sezione livebase
  pluginsName = '<jarPath>'          // Per individuare il plugin dal nome
  pluginsName '<regex>', true        // Per individuare i plugin da una regular expression

  //Obbligatorio
  outputFile = 'plugins.txt'
}
  • cloudletId/cloudletName : id o nome della Cloudlet di cui vogliamo stampare le informazioni sui plugin. È possibile specificare uno solo di questi parametri alla volta. Se entrambi sono omessi, verranno usati i valori di cloudletId o cloudletName specificati nella sezione livebase;
  • pluginsName : nome o espressione regolare indicante il plugin o i plugin di cui stampare le informazioni. Se si vuole indicare una espressione regolare è necessario aggiungere il parametro true come indicato nell’esempio. Se la direttiva è omessa, sarà utilizzata quella globale specificata nella sezione livebase;
  • outputFile : percorso del file dove saranno salvate le informazioni dei plugin. Deve avere estensione .txt.

Task modello #

I seguenti task agiscono tutti sui modelli memorizzati nella libreria.

uploadModel #

Carica in libreria un modello salvato su un file locale. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

uploadModel {
  // Opzionale. Se omesso, usa il valore specificato nella sezione livebase
  modelName = 'Model1'

  // Obbligatori
  modelDescription = 'MyModel'
  modelComments = 'MyModel'
  inputFile = 'model.xml'
}
  • modelName : nome da assegnare al modello una volta caricato in libreria. Se il parametro è omesso sarà utilizzato quello globale specificato nella sezione livebase;
  • modelDescription : descrizione da assegnare al modello una volta caricato in libreria;
  • modelComments : commenti di versione da assegnare al modello una volta caricato in libreria;
  • inputFile : percorso del file contenente il modello da caricare. Deve avere estensione .xml.

downloadModel #

Scarica un modello presente in libreria. Puoi configurare il task aggiungendo la seguente sezione al build.gradle:

downloadModel {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  modelId = '<id>'
  modelName = 'Model1'

  // Obbligatorio
  outputFile = 'model.xml'
}
  • modelId/modelName : id o nome del modello di libreria da scaricare. Se entrambi sono omessi sarà usato il valore del parametro modelName specificato nella sezione livebase;
  • outputFile : percorso del file dove salvare il modello scaricato. Deve avere estensione .xml.

downloadModelSpi #

Scarica lo SPI di un modello presente in libreria. Puoi configurare il task aggiungendo la seguente sezione al build.gradle

downloadModelSpi {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  modelId = '<id>'
  modelName = 'Model1'

  // Obbligatorio
  outputFile = 'modelSpi.jar'
}
  • modelId/modelName : id o nome del modello della libreria di cui vogliamo scaricare lo SPI. Se entrambi sono omessi sarà usato il valore del parametro modelName specificato nella sezione livebase;
  • outputFile : percorso del file dove salvare lo SPI scaricato; deve avere estensione .jar.

deleteModel #

Rimuove un modello dalla libreria. Puoi configurare il task aggiungendo la seguente sezione al buildGradle

deleteModel {
  // Mutualmente esclusivi. Se omesso, usa il valore specificato nella sezione livebase
  modelId = '<id>'
  modelName = 'Model1'
}
  • modelId/modelName : id o nome del modello della libreria che si desidera rimuovere. Se entrambi sono omessi sarà usato il valore del parametro modelName specificato nella sezione livebase;

Creare task personalizzati #

I task Gradle già inclusi nel plugin Livebase possono essere configurati per agire su un solo elemento alla volta. Se hai bisogno di effettuare le stesse operazioni su più di un elemento, puoi definire nuovi task personalizzati sovrascrivendo quelli predefiniti.

Per farlo, importa innanzitutto il tipo di task che vuoi sovrascrivere inserendo questa direttiva nel build.gradle:

import com.fhoster.livebase.gradle.tasks.cloudlet.<taskToOverride>

Sostituisci <taskToOverride> con il nome del task in camel case, seguito dalla parola Task; se per esempio vuoi sovrascrivere il task startCloudlet, dovrai scrivere StartCloudletTask.

Successivamente, definisci il task personalizzato nel modo seguente, sostituendo _customTask con il nome che vuoi assegnargli:

task _customTask(type: <taskToOverride>) {
  //Parametri di configurazione sovrascritti dal task originale
}

Puoi referenziare i parametri di configurazione definiti in un altro task con la sintassi <gradleTaskName>.<parameterName>. Il seguente esempio assegna come valore di inputFile per il task personalizzato quello di outputFile del task downloadEngineSpi:

task _customUploadSpi(type: UploadPluginsTask) {
  inputFile = downloadEngineSpi.outputFile
}

Puoi anche stabilire l’ordine di esecuzione di questo nuovo task rispetto ai precedenti introducendo l’argomento dependsOn. Il seguente esempio definisce un task che dipende da downloadEngineSpi e che quindi verrà eseguito successivamente a questo:

task _afterDownloadEngineSpi(type: <anyType>, dependsOn: downloadEngineSpi) {
  //Parametri di configurazione sovrascritti dal task originale
}

Riferimenti #