Category: Java

Mutation Testing with Pitest

Unit tests can be useful for ensuring code quality and correctness. Not every unit test makes sense, however, and bugs often manage to escape detection by unit tests. How can test quality be increased so that programming errors are detected earlier and more reliably?

A Groovy DSL for the Creation of Test Data using JPA

With the automated integrative testing of software that works with a complex JPA data model, it is invariably the case that sooner or later, one will face the question of how it is possible to create semantically meaningful test data without great cost. This article shows how Groovy can be used in order to define a Domain Specific Language (DSL) that enables test data to be defined so that it is easily readable, modular and separate from the actual test code.ieren.

Jenkins Pipeline plugin: code completion in IntelliJ

The Pipeline plugin (formerly Workflow plugin) for Jenkins revolutionises working with Jenkins by allowing for the creation of build jobs as code. As a result, build pipelines can be put under version control, become reusable,testable and more easily readable, among other things, as something “put together with mouse clicks”.

Static code analysis with SonarQube

This article describes which key figures can be collected by a static analysis and how these can be interpreted. The main focus is on technical debt and complexity.

Automatic checks for vulnerabilities in Java project dependencies

Security is a difficult topic to control for software projects, as is proven by the constant reports of data leaks in the media. For software developers, it is difficult to oversee the sort of influence that their daily work, which is not directly linked to security issues, has on the security of their applications.

Version names with Maven: Reading the version name

The first article in this series – “Version names with Maven: Creating the version name” –shows how during the build, and with Maven’s help, a version number, enriched with further information can be written into a manifest, properties or HTML file. Based on the first article, this second one describes how it can be read from within the application. This is helpful in many cases: You can immediately see which version is deployed on which stage, the version information can avoid misunderstandings in error reports, etc.

Version names with Maven: Creating the version name

In many cases, it may be useful to be able to extract the current version number of an application: You can immediately see which version is deployed on which stage, the version information can avoid misunderstandings in error reports, etc.

Code Conventions

80% of lifetime costs goes to maintenance and hardly any software is maintained for its whole life by the original author. Therefore it is crucial that code is written in a comprehensible manner. Code conventions help to achieve this.

Apache Shiro: Implementing complex permissions autonomously

Although Apache Shiro includes a powerful and flexible tool for fine-grained allocation of authorizations with its WildcardPermissions, one is faced with its limitations when it comes to complex scenarios. This article shows how any authorization checks can be implemented autonomously using the Permission interface.