Entries

Showing posts with the label tools

Frontend code analysis with SonarQube

SonarQube is an open-source tool for continuous code quality inspection that analyzes code for defects, vulnerabilities, and code smells. It helps developers and teams to improve the quality of their code by identifying problems early in the development process and providing actionable feedback to fix them.

Manage multiple Java SDKs with asdf with ease

asdf is a helpful command-line tool that allows you to manage and switch between different versions of programming language runtimes including Java , Kotlin , Node.js , Python and their associated packages and libraries including Gradle , Maven , Yarn , Spring Boot CLI .

Getting started with Github Actions: Run JUnit 5 tests in a Java project with Maven

Github Actions is a CI/CD service provided by Github and it is free for public repositories. For private repositories, each GitHub account receives a certain amount of free minutes and storage, depending on the product used with the account. In this blog post, you will learn how to create a simple workflow for running JUnit 5 tests in a Maven based Java project and how to add a build status badge to a README.md file.

macOS: sync files between two volumes using launchd and rsync

Backing up and syncing files and directories between drives is pretty common use case for many users. In this quick tutorial you will learn how to use launchd and rsync to synchronize files between different volumnes in macOS.

Set Visual Studio Code as default editor in jshell

Java Shell ( jshell ) is an interactive tool for learning and prototyping in Java. It was introduced with Java 9 and since then I use it ocassionally either for some quick prototyping, during presentations or simply to verify new features in the Java language. Since jshell is a command line tool (with basic intellisense) editing files in jshell is not the best expierience. Fortunatelly, jshell allows changing the default editor and set it to the one of your choice, including Visual Studio Code , Atom or Sublime .

macOS: essential tools for a developer in 2024

Are you considering macOS as your next operating system? Are switching from Windows to macOS ? Do you want to develop in Java on macOS ? Or maybe you are looking for tools to help you to be more productive? Read about tools that are essential to me (after switching from Windows to macOS ).

Manage multiple Java SDKs with SDKMAN! with ease

SDKMAN! is a convenient tool for managing parallel versions of multiple Software Development Kits . The tool is especially useful for Java developers as it supports SDKs for the JVM such as Java, Groovy, Scala, Kotlin and Ceylon. Gradle, Maven, Spring Boot and many others are also supported.

Get started quickly with Spring 5 using Spring MVC Archetype

Spring 5 GA got released so I released the new version of Spring MVC Archetype.

Lombok - you should definitely give it a try

Lombok is not a new thing in a Java ecosystem, but I must admit I always underestimated its value until I tried it or I was “convienced” to try it. I did not see much value in adding a library that generates code that can be easily generated by any modern IDE these days. So I ignored the library and I have been writing or generating tons of boilerplate code. Not anymore. In 2016 I joined a Spring-based project where project Lombok was already in place. And since then I can’t work without Lombok anymore… Why?

Spring MVC 4 Quickstart Maven Archetype Improved - More Java 8 Features

For all those developers interested in bootstrapping Spring 4 application quickly without Spring Boot, please check my Spring MVC 4 Quickstart Maven Archetype that just got updated. Archetype uses Java 8 as target platform for some time already but no specific Java 8 features were supported. Recent changes bring (apart from some bug fixing) support for Java 8 Data & Time API in Thymeleaf, Jackson and JPA.

Generate direct link to Google Drive image

If you want to create a direct link to a public image on Google Drive you may use Permanent link generator that I crated for my personal use.

Jenkins HOW-TO: build a project from multiple (Git) repositories

Recently I have been working on a project that has two main modules: Backend and Frontend. The Backend is a Spring Boot application and the Frontend is an AngularJS 1.3 application. While preparing the build we are using Grunt for building AngularJS code and Gradle for building the Spring Boot application. Grunt is creating a JAR file containing all resources and copies it to Spring Boot application. Then Gradle takes the JAR and adds it to the resulting WAR. Long story made short. Both Backend and Frontend are different Git repositories, initially managed by different teams. Both needs to be checked to the same root folder, so the building process will properly run. In order to do the it on Jenkins, Multiple SCMs Plugin Jenkins plugin can be used. The plugin simplifies the configuration of such a build.

Spring MVC 4 Quickstart Maven Archetype Improved

Spring Boot allows getting started with Spring extremely easy. But there are still people interested in not using Spring Boot and bootstrap the application in a more classical way. Several years ago, I created an archetype (long before Spring Boot) that simplifies bootstrapping Spring web applications. Although Spring Boot is already some time on the market, Spring MVC 4 Quickstart Maven Archetype is still quite popular project on GitHub . With some recent additions I hope it is even better.

Greenshot - productive screenshot tool for Windows

If you are looking for a screenshot software tool for Windows or you are not happy with your current one just give it a try to Greenshot . In this short blog post, I share how I work with Greenshot in Windows 8.1 and hopefully encourage the reader to give it a try.

ConEmu - Windows console emulator with tabs

After switching to Git some time ago, I started working more and more with Git Bash on Windows. Git Bash is pretty cool as it provides (apart from Git) Bash supported with basic Unix tools including curl or ssh . Git Bash in Windows has some limitation though including limited customization options and lack of good copy & paste options supported with keyboard shortcuts. Fortunately, there is ConEmu that not only fills that gap but adds various features that make working with console applications more productive and more enjoyable for me.

Colored logs in a console (ANSI styling)

We had recently a big debate about logging in applications at my company. Inspired by my colleague, I decided to check how coloring will work on my Windows 8 64-bit machine . The idea is to have the logs colored in the console. Maybe a small detail, but while going through huge amounts of logs - can be handy. So I gave it a try.

HOW-TO: Improve content assist for types with static members while creating JUnit tests in Eclipse

Usually while creating JUnit tests we statically import org.junit.Assert , org.hamcrest.Matchers , org.mockito.Mockito , org.mockito.Matchers when we want to use static members of these types. To make that Eclipse proposes members of mentioned types (or any other) without explicit static import we need to define the list in Eclipse's content assist configuration

Spring MVC 3.1 Quickstart Maven Archetype

Spring 3.1 brings many enhancements to its MVC framework. Many times I need to start some basic project to consult new things on the project for the presentation, blog post or just for myself. In order to make the creation of each project repeatable and easy process I decided to create Maven archetype for that puropose. Currently it is a snapshot version that support basic Spring MVC 3.1 project with JPA2.0 and Apache Tiles. See more details on the spring-mvc-quickstart-archetype project page how to get started with it . If you have any suggestions or you would like to join this project, please let me know.

Pretty Time - timestamp formatting made easy

Today I was looking for an utility to help me with formating timestamps to user friendly string values like: "moments ago", "few minutes ago", "in couple minutes" etc. Why to write my own implementation, when for sure someone already did it before? And did it better? While googling ("pretty+time+in+java") I found Pretty Time library and I tried it out.