Ao criar um template no backstage tive a necessidade de reutilizar váriaveis e também fazer modificações. Por exemplo, eu adquiro um ‘Nome do projeto’ e com esse nome, eu quero que automaticamente eu tenha um artifactId e um packageName para passar para meu template Java a fim de deixar tudo estruturado e padronizado. Utilizando o […]
Backstage – Falha de token ao fazer fetch do template (FetchError: invalid json response body at https://gitlab.com/users/sign_in reason: Unexpected token < in JSON at position 0)
Ao tentar fazer um fetch de um template com URL externa estava acontecendo o seguinte erro: 2022-09-29T14:39:35.000Z FetchError: invalid json response body at https://gitlab.com/users/sign_in reason: Unexpected token < in JSON at position 0 Minha configuração no template.yaml estava da seguinte maneira: Porém o erro não tinha relação com o path ou algo do genero, o […]
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 […]
Stop / Remove all Docker containers
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 […]
Java Garbage Collector – Implementações, Serial GC e Parallel GC (Parte 2)
Principais Implementações A JVM possui várias implementações de Garbage Collector: Serial, Parallel, G1, Z … Cada coletor é otimizado para uma situação, e não necessariamente um é melhor que o outro, mas dependendo do objetivo de seu software conseguiremos escolher o mais adequado. Nesta sessão iremos entender suas principais características, qual é usada por default nas […]