quarta-feira, 23 de outubro de 2019

Aprenda Quarkus: a revolucionária ferramenta Java para microservices

Há uns meses atrás fomos os primeiros a falar sobre Quarkus em português. Passou um tempo e Quarkus se confirmou com a ferramenta que está revolucionando o desenvolvimento Java para microservices e outras aplicações.


Aqui vão alguns recursos em português para quem quiser se aprofundar nessa tecnologia maravilhosa que é o Quarkus

Aprenda Quarkus em Português


  • Há um vídeo que fizemos uns meses atrás, você pode assistir para ter uma ideia do que é a plataforma, mas muitas coisas foram melhoradas;
  • Recentemente o autor desse blog fez um mini-curso sobre Quarkus, os slides podem ser vistos abaixo






  • Há uma série de vídeos online sobre Quarkus - não verificamos todo o conteúdo, mas parece cobrir todos os tópicos importantes com o nível de detalhes necessário



Aprenda Quarkus em Inglês

Já há infinitos recursos em inglês. Entre eles destacamos o próprio site quarkus.io, que contém guias de todas as extensões. Há também o famoso cheat sheet, um guia rápido de como fazer qualquer coisa com Quarkus. O youtube está sendo atualizado semanalmente com conteúdo sobre quarkus. Busquem Quarkus no youtube e sejam felizes!


Aprenda aqui


Em breve teremos uma série de tutoriais rápidos, como fizemos com Java EE, faremos com Quarkus - então fiquem ligados!

segunda-feira, 11 de março de 2019

Java moderno e preparado para a nuvem com Quarkus

Semana passada a comunidade JBoss anunciou o projeto Quarks.io. O site irá te ajudar a entender tudo que essa novo projeto oferece, em resumo você pode entender que ele ajuda a construir a nova geração de aplicações Java para as nuvens, facilitando a execução de aplicações em plataformas como o Kubernetes.

Para explorar essa plataforma hoje fizemos uma transmissão com o JUG Vale onde mostramos a plataforma e criamos uma aplicação de exemplo.

segunda-feira, 18 de dezembro de 2017

MicroProfile Config: Um padrão para acesso a propriedades em sua aplicação

Para acessar propriedades hoje precisamos criar nosso próprio meio usando propriedades do sistema ou criar Producer CDI para ler um arquivo ou outra fonte. O MicroProfile Config facilita o acesso a configurações e cria um padrão para ser usado em aplicações que seguem a especificação MicroProfile ou mesmo qualquer aplicação Java. Vamos mostrar nesse breve artigo como funciona.


Como acessar a configuração com MicroProfile Config?


Com MicroProfileConfig você pode acessar a configuração:


  • Com código Java: Não precisa de API adicional, simplesmente use o seguinte código:
Optional<String> value = ConfigProvider.getConfig().getOptionalValue(propertyName, String.class);

ou

String value = ConfigProvider.getConfig().getValue(propertyName, String.class);

  • Usando CDI e a anotação @ConfigProperty: Se sua aplicação já tem CDI você pode então injetar qualquer propriedade que será convertida para o tipo alvo (incluindo objetos customizados). Você pode configurar um valor padrão para a propriedade;
  • Usando CDI e injetando o objeto Config: Com o objeto Config você tem acessa as configurações também.


Qual a origem da configuração?


Cada fonte de configuração tem um prioridade, a fonte com maior prioridade toma procedência caso haja conflito (mesma propriedade definida em duas fontes diferentes. As configurações podem vir (por padrão) de:

  • Uma propriedade de sistema: São aquelas que modificamos com System.setProperty ou quando iniciamos a aplicação passando o parâmetro -Dpropriedade=valor . Prioridade é 400;
  • Propriedades de System.env: Tem prioridade 300.
  • Propriedades do arquivo META-INF/microprofile-config.properties: Esse é o arquivo padrão lido para se acessar valores de propriedades;
Há também a possibilidade de criar sua propria fonte de armazenamento de propriedade que pode ser qualquer coisa que possa ser acessível do código java: um arquivo, um banco de dados, um web service e mais.

Exemplo


Vamos mostrar agora um exemplo muito simples de um Web Service que tem uma configuração injetada e que permite ler qualquer configuração. A configuração é bem simples, você pode baixar um aplicação de exemplo no site do wildfly swarm que tenha a dependência MicroProfile e começar a codar. 

Gerando um projeto Wildfly Swarm


Só um aviso sobre a versão, usem a versão version.wildfly.swarm como 2017.12.1 ou mais nova. Você já poderá rodar seu código usando mvn clean package wildfly-swarm:run. No nosso caso temos um único Web Service que mostra:

1. Como injetar uma propriedade
2. Como injetar o objeto Config e pegar propriedades dele.

Veja abaixo o código do nosso Web Service:


O código completo poderá ser encontrado no github desse blog.
Veja abaixo o resultado de cada método do Web Service:

Interagindo com a API de configuração usando HTTP


Conclusão


Vimos como essa nova especificação funciona e os conceitos básicos. Há pontos mais avançados a serem estudados, como o uso de Converter e uma fonte de propriedades customizável, mas vamos deixar isso mais para frente. No próximo post falamos sobre alguma das outras especificações parte do MicroProfile. Até mais!