Java

Spring Boot – Caching

Em qualquer sistema o Cache é algo muito importante e muito utilizado, ao adicionar um sistema de cache em nossos sistemas, garantimos uma melhor performance evitando vários processamentos desnecessários, o Spring Boot fornece uma ferramenta incrível deixando a configuração e uso muito simples, usando apenas anotations. O exemplo a seguir irei seguir os passos da […]

Gradle / jUnit5 – Como criar tasks para executar testes com tags específicas ( JUnit5 tag-specific gradle task )

Em muitos projetos temos a necessidade de criar testes de integração, porém eles podem ser mais lentos, e não gostamos de executa-los sempre, para isso a ferramenta jUnit fornece as @Tag para que possamos filtrar a execução deles. A seguir vou inserir um gist mostrando como configurar uma task no Gradle para a execução de […]

Java / Web Service – Adicionando autenticação Basic no header do JAX-WS (Java Web Service client basic authentication)

Nesse post vou mostrar como adicionar uma autenticação no consumo de um Web Service utilizando as bibliotecas do jax-ws. Muitas implementações de Web Service utilizando Soap é necessário a implementação de autenticação, normalmente essa autenticação é adicionada no Header do pacote, porém o jax-ws quando é gerado normalmente não te da essa implementação, não te […]

Tomcat / Encoding – Forçando o Encode UTF-8 no Tomcat (Forcing Tomcat to use UTF-8 Character Set in Linux)

Recentemente estava passando por um problema no log de alguns sistemas, todas as acentuações estavam truncando, dificultando a leitura. Em nosso ambiente estavamos utilizando o Tomcat como servidor de aplicação, e percebemos que o sistema operacional não estava configurado com o charset UTF-8, como era um ambiente antigo e a equipe não tinha permissão para […]

JaCoCo / Gradle – Como gerar e mesclar relatórios JaCoCo em um projeto com modulos no Gradle (Aggregated Jacoco reports in a multi-project Gradle build)

Quando criamos um projeto com vários módulos, cada um tem sua própria unidade de teste, a fim de gerar um relatório único precisamos mesclar essas informações. Tive muito problema ao tentar encontrar uma maneira ‘ideal’ ou que me atende-se, acabei encontrando uma solução bem bacana, um plugin que realiza o merge dos relatórios gerados por […]

OkHttp – Como gerar um RequestBody por um InputStream (RequestBody supports InputStream)

Segue um código de como gerar um RequestBody do OkHttp atravéz de um InputStream, essa abordagem é muito utilizada para realizar envios de arquivos com o MultipartBody.Builder. A baixo vou inserir um gist com duas classes, uma para criar baseado em um InputStream e outra em uma Uri (utilizado no Android) Provavelmente alguma implementação parecida […]

Spring Boot – Carregando as propriedades do Gradle no application.yml (Automatic Property Expansion Using Gradle)

Normalmente quando utilizamos o Spring Boot e queremos carregar uma propriedade do pom.xml nos arquivos de resources utilizamos o delimitador @, isso atualmente funciona de maneira automática. Recentemente tive que implementar essa funcionalidade com o Gradle, e diferente do Maven isso não funciona de forma automática e a maneira de acesso as propriedades é diferente. […]

Java – Como comprimir ou redimensionar imagens programaticamente (Compress or resize images in Java)

Nessa publicação estarei anexando uma classe Java com alguns métodos uteis para redimensionar e comprimir imagens, não considerem essa classe como algo concreto, mas sim como um guia básico para essas funcionalidades. Caso alguém tenha duvidas como carregar um BufferedImage basta usar o ImageIO, segue um exemplo:

Java – Adicionando um certificado SSL em seu JDK (Adding an SSL Certificate to JDK)

Com as novas atualizações do Java cada vez mais temos que desenvolver sistemas que utilizam certificados SSL, muitos são conhecidos pelo seu JDK porém outros não, com isso podemos nos deparar com erros do tipo: Para resolvermos esse tipo de problema, aonde não é possível valídar a conexão com a API que estamos usando, ou […]

[Java] Desabilitando paliativamente o SSL de uma conexão com o MySQL para evitar o seguinte erro: Jdbc javax.net.ssl.SSLException: closing inbound before receiving peer’s close_notify

** BEGIN NESTED EXCEPTION ** javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer’s close_notify STACKTRACE: javax.net.ssl.SSLException: closing inbound before receiving peer’s close_notify at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133) at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:255) at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:645) at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:624) at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:2249) at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4221) at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1464) at com.zaxxer.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:135) at com.zaxxer.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:441) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) ** END NESTED EXCEPTION […]

Rolar para o topo