Java

Java – Sites para acompanhar as novidades da plataforma

https://medium.com/javarevisited https://www.infoq.com/java https://www.infoworld.com/category/java/ https://www.baeldung.com/ https://blogs.oracle.com/java/ https://vladmihalcea.com/blog/ https://javinpaul.medium.com/ Bonus, meus artigos: https://medium.com/@guilherme.zarelli Framework https://spring.io/blog https://quarkus.io/blog/

Alternativa ao Maven APT plugin para uso da annotation QueryEntities no QueryDSL

Ao implementar o QueryDSL e usar a annotation @QueryEntities, precisamos configurar um Annotation Processor, na documentação do QueryDSL, ele mostra um exemplo com o plugin apt-maven-plugin (ex na doc oficial) da com.mysema.maven , porém é um plugin desatualizado (desde 2014) e com vunarebilidades. Uma alternativa é configurar o maven-compiler-plugin , exemplo: no exemplo a cima […]

Métricas do Feign sumiram após upgrade para Spring Boot 3 e Spring Cloud 2022.0.1 – Bug?

Após uma atualização do Spring Boot para a versão 3.0 e do Spring Cloud 2022.0.1, notamos que as métricas do Spring Cloud OpenFeign geradas sumiram do endpoint do Prometheus, devidamente configurado com o Micrometer Registry Prometheus. A solução paleativa para esse problema foi prover uma Bean do feign no qual registramos o MeterRegistry do micrometer. […]

Java / Maven – Como pegar os activeProfiles em runtime nos testes? (Get list of activated profile name during run time in maven java project)

Para definir uma váriavel de ambiente em runtime no Maven, basta adicionarmos no configuration/systemPropertyVariables o valor desejado, como estamos falando especificamente do profile ativo, basta criarmos um nó que será o nome da váriavel e o valor, que no caso foi definido como o primeiro profile ativo: Exemplo de profiles O mapeamento é feito no […]

Quarkus – “Enlisted connection used without active transaction” in @Transactional service method

“Enlisted connection used without active transaction” Relatado no Quarkus 2.11.3 Esse erro pode ser muita coisa. Porém vou compartilhar o porque passei por isso e como resolvi. A maioria das vezes que apareceu para mim, sempre foi a mesma situação: Estava em um método transacional de banco de dados e junto a ele um processo […]

Java – Reduzindo o tamanho do JSON com GZIP e Jackson lib (Reducing JSON Data Size – GZIP JSON Compressor with Jackson library)

Dependendo da situação podemos ter a necessidade de trafegar ou armazenar dados compactados a fim de reduzir o tamanho de armazenamento ou a quantidade de dados trafegado. Com essa ideia, desenvolvi uma lib que utiliza a própria implementação da lib Jackson para transformar o JSON gerado por ela em um JSON compactado por GZIP, dessa […]

Java – Compactação de String com GZIP

GZIP é uma das ferramentas favoritas para compactar arquivos em sistemas Unix. Podemos compactar um único arquivo no formato GZIP, mas não podemos compactar e arquivar um diretório usando GZIP como arquivos ZIP. O Java possui uma implementação nativa do algoritimo de compreesão do GZIP, o que torna relativamente simples de se implementar. Segue uma […]

Java – Liberando o TLSv1 no Java 11 ou superior

Em algumas situações não temos como atualizar um sistema legado e infelizmente podemos ter que nos comunicar atravéz de criptografias que estejam depreciadas. Exemplo: Se você estiver executando em um ambiente aberto, podemos simplismente encontrar o arquivo java.security na instalação do JRE que executará o software e basta só remover o algoritimo desejado da propertie: […]

Java Garbage Collector – Implementações, ZGC (Parte 4 / Final)

ZGC (Low Latency) O Z Garbage Collector, é um coletor de lixo escalável de baixa latência projetado para atender aos seguintes objetivos: Tempos máximos de pausa de sub-milissegundos (Para JDK <16 o max GC pause-time é na casa de 10ms, no JDK ≥16 fica abaixo de 1ms) Os tempos de pausa não aumentam com o tamanho […]

Java Garbage Collector – Implementações, G1 GC (Garbage First) (Parte 3)

G1 GC O objetivo do G1 GC é minimizar o tempo de pausa do GC e garantir o máximo de rendimento possível sem configuração adicional. Seu modelo fornece uma solução para usuários que executam aplicativos que exigem grandes heaps (não exigido) com uma latência de execução do GC limitada, ou seja, tempo de pausa (Ou […]

Rolar para o topo