Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Apache Karaf: introduzione e installazione

Introduzione ad Apache Karaf: le principali caratteristiche di questo container per la gestione del ciclo di vita dei moduli OSGi, la struttura delle directory, la sua semplice procedura d'installazione e i principali comandi da utilizzare tramite la Console di amministrazione.
Introduzione ad Apache Karaf: le principali caratteristiche di questo container per la gestione del ciclo di vita dei moduli OSGi, la struttura delle directory, la sua semplice procedura d'installazione e i principali comandi da utilizzare tramite la Console di amministrazione.
Link copiato negli appunti

Apache Karaf è un container OSGi leggero, flessibile e scalabile nato dall’evoluzione del kernel di ServiceMix, mediante il quale è possibile gestire il ciclo di vita dei moduli OSGi e della loro configurazione. In questa guida faremo una breve carrellata dei concetti base di Apache Karaf. Mostreremo come installare e lanciare il container, come deployare i nostri bundle e come gestire il loro ciclo di vita.

Per comprendere i concetti discussi in questa guida è necessario possedere conoscenze minimali sulla tecnologia OSGi ed avere padronanza con Apache Maven, strumento fondamentale per l’implementazione di un modulo OSGi e la sua installazione.

Qualora fosse necessario, rimandiamo il lettore all’approfondimento di questi argomenti già trattati in passato dal nostro sito Web:

Le principali caratteristiche di Apache Karaf sono le seguenti:

Caratteristica Descrizione
Hot deployment Dopo l’installazione di un nuovo componente non è necessario il riavvio del container.
Console di amministrazione Fornisce una console Unix-like mediante la quale è possibile gestire completamente il container. E’ possibile anche estendere la console e creare i propri comandi personalizzati.
Configurazione dinamica Fornisce una serie di comandi dedicati per la gestione dei file di configurazione.
Configurazione centralizzata del sistema di logging Supporta un ampio insieme di framework di Logging (slf4j, log4j, etc) configurabili mediante un unico file.

Installazione

Nel momento in cui questa guida viene redatta, l’ultima versione stabile rilasciata di Apache Karaf, è la 3.0.3. Scarichiamo il pacchetto dalla sezione download del sito ufficiale. Per installare Karaf è sufficiente decomprimere l’archivio in una cartella nel nostro file system.

Le principali directory presenti nella root di Karaf sono le seguenti:

Directory Descrizione
bin Contiene i binari per avviare, terminare e monitorare lo stato del container.
data Contiene i file temporanei, la cache ed i file di log.
deploy Permette di gestire l’installazione a caldo dei bundle. Copiando all’interno di questa directory un bundle oppure una feature (lista di bundle), il container provvederà all’installazione della componente.
etc Contiene i file di configurazione. La modifica di questi file viene automaticamente notificata a tutti i bundle.
lib Contiene le librerie globali.
system Contiene i bundle di sistema di Karaf.

Per avviare Karaf è sufficiente eseguire il file bin/karaf.bat se siamo su Windows, oppure bin/karaf se siamo in ambiente Unix. Al termine della fase di inizializzazione del container, è possibile iniziare ad eseguire i comandi. La console di amministrazione è simile ad una shell Unix e dispone della funzionalità di completamento automatico utilizzabile mediante il tasto Tab. E’ possibile anche utilizzare la concatenazione di due o più comandi.

Console di amministrazione

La console di amministrazione mette a disposizione tantissimi comandi suddivisi per categoria. Analizzarli è praticamente impossibile, quindi ci limiteremo ai principali che permettono di gestire il ciclo di vita di un bundle, dall’installazione, alla configurazione.

Comandi Descrizione
bundle Insieme di comandi che permettono di gestire i bundle (ad esempio: visualizzazione dei bundle disponibili con relativo stato, installazione, disinstallazione, attivazione e disattivazione).
config Insieme di comandi che permettono di gestire i file di configurazione (ad esempio: creazione di un nuovo file di configurazione, eliminazione di un file presente, aggiunta di una nuova property in un file presente.
feature Insieme di comandi che permettono di gestire feature (ad esempio: visualizzazione delle feature disponibili, installazione e disinstallazione).
log Insieme dei comandi che permettono di gestire il log (ad esempio: pulizia del log e modifica del livello di dettaglio del log).

help

E’ il comando principale perché permette di reperire la lista dei comandi disponibili con una breve descrizione. E’ possibile anche specificare il nome del comando per averne i dettagli.

karaf@root()> help

Figura 1. Output comando help
Output comando help

grep

Non è un vero e proprio comando ma è molto utile perché permette di filtrare l’output del comando alla sua sinistra. Nell’esempio visualizziamo tutti i comandi il cui nome contiene la parola “start”.

karaf@root()> help | grep start

Figura 2. Output grep
Output grep

bundle:list

Tale comando permette di visualizzare l’elenco dei bundle disponibili all’interno del container, e lo stato di ciascuno di essi. Il comando dispone di diversi attributi visualizzabili con il comando help. Nell’esempio visualizziamo tutti i bundle con una soglia maggiore o uguale a 0. Con l’attributo –l, forziamo la visualizzazione della location. Praticamente tutti i bundle installati nel container.

karaf@root()> bundle:list -t 0 -l

Figura 3. Output comando bundle:list
Output comando bundle:list

bundle:install

Tale comando permette di installare un bundle utilizzando la URL Maven costituito dalla tupla mvn:<groupId>:<artifactId>:<version> oppure il percorso fisico del jar sul file system locale (file:<path>). E’ possibile anche forzare lo start del bundle con il parametro –s.

karaf@root()> bundle:install mvn:it.html.tutorial/karaf-helloworld/1.0
karaf@root()> bundle:install file:C:/projects/html-tutorial/karaf-helloworld/target/hello-world-1.0.jar -s
bundle:start

Tale commando permette di startare un bundle utilizzando il suo identificativo numerico.

karaf@root()> bundle:start 90

bundle:stop

Commando che permette di sospendere un bundle utilizzando il suo identificativo numerico.

karaf@root()> bundle:stop 90

Sul sito ufficiale di Karaf è disponibile l’elenco di tutti i comandi. Nel prossimo capitolo verrà descritta la procedura necessaria lo sviluppo di un primo bundle.

Ti consigliamo anche