OSGi.

O OSGi ou Open Services Gateway Initiative é uma arquitetura baseada em aplicações modulares e de bibliotecas.

Cada aplicação modular ou bundle tem seu funcionamento independente.

Tecnicamente, cada bundle é um jar com MANIFEST.MF contendo no seu cabeçalho as especificações do OSGi.

A plataforma OSGi permite ligar, desligar, reiniciar os módulos independentemente. Além das funcionalidades citadas, existem outras funcionalidades na plataforma.

Por não ter acoplamento entre os módulos, fica simples a manipulação dos componentes.

Apache Karaf.

O Apache Karaf é uma plataforma baseado em OSGi com implementação chamado Apache Félix.

A plataforma permite que o controle seja feita de forma intuitiva via linha de comando.

Para baixar a documentação e aplicação acesse: https://karaf.apache.org/.

Testando Karaf e um Bundle.

Com a versão do Karaf mais atual na máquina, entre no diretório bin do Karaf e execute no terminal:
$./karaf start

Baixe um exemplo no meu repositorio Git: https://github.com/sidneynakatani/nakatani-osgi.git.

Gere um build e instale o jar no terminal do Karaf:
>bundle:install mvn:osgi-example/nakatani-osgi/0.0.1-SNAPSHOT

Agora vamos executar e parar o bundle:
> bundle:start 48
> bundle:stop 48

Podemos listar os bundles:
>list

Conclusão.

O Apache Karaf permite criar aplicações em forma de módulos ou bundles de forma fácil, rápida e de baixo acoplamento utilizando a especificação OSGi.