Conhecendo Apache DeltaSpike: Configuration

Daniel Dias
Daniel Dias
Published in
4 min readOct 5, 2019

Neste post iremos conhecer um dos recursos que vem incluindo no módulo CORE do Apache Deltaspike.

Aqui vamos conhecer um outra alternativa para configurar nossas aplicações Java bem similar ao MicroProfile Config , JSR-382 e ao Apache Tamaya .

Esse post vai ser curto, é somente para conhecer o módulo .

Introdução ao Apache DeltaSpike: Configuration

O DeltaSpike fornece um mecanismo de configuração de aplicativo muito flexível. Seu principal objetivo é possibilitar que nunca seja necessário reconstruir um projeto apenas para ajustar os valores de configuração.

Ele respeita o ciclo usual de desenvolvimento de software e leva em consideração as etapas do projeto, várias fontes de configuração e mecanismos de resolução. A configuração pode ser substituída apenas soltando um JAR no classpath.

Para acessar as configuração podemos fazer uso da versão programatica utilizando o ConfigResolver ou via CDI .

Neste post veremos a duas forma.

Criando o Projeto

Aqui vamos criar dois projeto um utilizando CDI e a outra o modo programatico .

Então vamos ao modo programatico, crie um projeto maven com o seguinte pom.xml :

Aqui nesse pom.xml adicionamos um gerenciador de dependência para o bom do DeltaSpike .

Em seguida incluimos duas dependências a deltaspike-core-api e a sua implementação deltaspike-core-impl ela e o sufiente para utilizamos o Configuration .

Acessando valores configurados usando o ConfigResolver

O ConfigResover é o ponto central para acessar a configuração no Deltaspike. Aqui tem severas APIs e diferente meios para acessar valores de configuração individuais, cada um com propósito diferente :

  • ConfigResolver: metódos para acessar facilmente valores programaticamente.
  • TypeResolver: API para valores de configuração e controle preciso sobre a resolução.
  • @ConfigProperty: para injeção de valores configuraveis nos beans.

O ConfigResolver possui os seguintes metódos :

  • getPropetyValue(): Ele retorna o valor configurado para uma determinada chave como String ou null se nenhum valor foi encontrado.
  • getProjectStageAwarePropertyValue: Utilizado no mecanismo de estagio do projeto Deltaspike para permitir valores configurados que depender do ProjectStage atual do sistema em execução.
  • getPropertyAwarePropertyValue: Primeiro consulta o valor configurado da propriedade fornecida e usa esse valor para determinar o caminho de pesquisa final.

Vamos ao exemplo utilizando o getPropetyValue , então crie uma classe com metódo main :

aqui estamos pegando duas configurações Nome e Idade com as suas chaves meu.nome e minha.idade, os valores dessas chaves devem está inseridas em um arquivo properties na seguinte formato pasta META-INF/apache-deltaspike.propertites:

ao executa a saída é :

Podemos fazer uso também do TypedResolver API, onde podemos representar outros tipos de valores não somente String, mas também tipo numerico e booleanos . O seu uso é da seguinte forma :

se executarmos a saída vai ser a mesma da anterior.

Também podemos utilizar para lista em nossa configurações para isso fazemos as seguinte modificações no apache-deltaspike.properties:

e modificamos a nossa Main para :

e a sua saída é :

Injeção de valores configurados em beans usando @ConfigProperty

Para finalizar, vamos utilizar o CDI para obtermos a configuração, para isso crie um novo projeto mavem com o seguinte pom.xml :

Aqui o pom.xml so foi adicionado o jar do Weld para o CDI e em seguinda criar na pasta META-INF os arquivos beans.xml e o apache-deltaspike.properties :

agora crie uma classe que vai contér a anotação de @ConfigProperty :

Aqui inserimos duas anotações a @Inject e @ConfigProperty , onde passamos a nossa chave que foi definida no apache-deltaspike.properties .

Em seguida vamos criar uma Main para chamar essa classe :

Nesta classe estamos utilizando o conteiner do proprio DeltaSpike para inicar o CDI , ao executar teremos a seguinte saída :

Bem isso é tudo por hoje no post.

Espero que tenham gostado de conhecer outra alternativa de fazermo configurações.

O Apache DeltaSpike Configuration, fornece mais recurso que deve ser explorado e que não foi mostrado aqui .

Então fica o convite para explorarem a documentação .

Código-Fonte :

Referencias

--

--

Daniel Dias
Daniel Dias

SouJava Board Member, JCP Member, JSR-371 (MVC 1.0), JSR-382 (Config) specifications contributor, EG JSR-385 (UoM) and Eclipse Committer .