53 Java libraries to solve your problems

 

53 Java libraries to solve your problems

    6 minute read


What is an example of a java library that solved your problem just nicely ? Can be anything as long as available as a jar somewhere :)

Lo and behold! He received a lot of propositions. Some by very interested parties (aka ads) but hey, I left them in, I did no editorial selection. This is an interesting list of libraries to review a few at a time and might give you ideas.

I only added minor personal comments here and there but often only quoted the tagline of each project in italic.

LanguagePermalink

RoasterA Java Parser library that allows easy parsing and formatting of Java source files. Roaster introduces a fluent interface to manipulate Java source files, like adding fields, methods, annotations and so on.

JavaPoet: A Java API for generating .java source files.

FailsafeFault tolerance and resilience patterns for the JVMFailsafe is a lightweight, zero-dependency library for handling failures in Java 8+. It has a concise API for handling everyday use cases and the flexibility to handle everything else. Failsafe works by wrapping executable logic with one or more resilience policies, which can be combined and composed as needed.

JCToolsJava Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK.

Project LombokProject Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

GuavaGuava is a set of core Java libraries from Google that includes new collection types (such as multimap and multiset), immutable collections, a graph library, and utilities for concurrency, I/O, hashing, caching, primitives, strings, and more! It is widely used on most Java projects within Google, and widely used by many other companies as well.

RoaringBitmapA better compressed bitset in Java.

JavaFXJavaFX is an open source, next generation client application platform for desktop, mobile and embedded systems built on Java.

VavrVavr *core* is a functional library for Java. It helps to reduce the amount of code and to increase the robustness. A first step towards functional programming is to start thinking in immutable values. Vavr provides immutable collections and the necessary functions and control structures to operate on these values. The results are beautiful and just work.

Base librariesPermalink

OCPsoft’s PrettyTime from JBoss alumni Lincoln Baxter: Convert Java/Android Date() objects in just “a few minutes!” PrettyTime is an OpenSource time formatting library. Completely customizable, it creates human readable, relative timestamps like those seen on Digg, Twitter, and Facebook. Get started “right now!” and in over 41 languages !

Apache Commons: a oldie but a goodie. Commons Proper is dedicated to one principal goal: creating and maintaining reusable Java components. The Commons Proper is a place for collaboration and sharing, where developers from throughout the Apache community can work together on projects to be shared by the Apache projects and Apache users. A random selection here

  • Codec: code/decode things like Base64, Hex, Phonetic and URLs
  • Collections: still useful even though Guava has a more modern approach
  • Logging: everyone has a hate love relationship with logging

Generally the Apache Commons are showing their age design wise and more modern libraries are often available.

Lightbend configconfiguration library for JVM languages using HOCON files

protonpackStream utilities for Java 8

Scientist4JA port of Github’s Refactoring tool Scientist in Java

ServerPermalink

fluent-httpThis is the simplest fastest full fledged web server we could come up with.

DeltaSpikeDeltaSpike consists of a number of portable CDI extensions that provide useful features for Java application developers. A nice addition for anyone working on CDI based servers.

Apache Kafka StreamsKafka Streams is a client library for building applications and microservices, where the input and output data are stored in Kafka clusters. It combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka’s server-side cluster technology.

Project reactorcreate efficient reactive systems

Apache CamelCamel is an Open Source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.

NettyNetty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

WebPermalink

jsoupJava HTML Parser, with the best of HTML5 DOM methods and CSS selectors.

OkHttpOkHttp is an HTTP client that’s efficient by default.

RetrofitA type-safe HTTP client for Android and Java.

Apache Struts: really?? Well yes it had a release in Secember 2020.

logbookAn extensible Java library for HTTP request and response logging

OmniFacesTo make JSF life easier.

Parsers and dataPermalink

Apache POIthe Java API for Microsoft Documents.

tabula-javalibrary for extracting tables from PDF file

traprangeA Method to Extract Tabular Content from PDF Files

specification-arg-resolverAn alternative API for filtering data with Spring MVC & Spring Data JPA

GraphQL JavaGraphQL support for Java

MapStructJava bean mappings, the easy way! from Red Hatter Gunnar Morling and team.

jOOQThe easiest way to write SQL in Java

caffeineA high performance caching library for Java. Cool core cache library used by many caching frameworks.

KarateKarate is the only open-source tool to combine API test-automation, mocks, performance-testing and even UI automation into a single, unified framework. The BDD syntax popularized by Cucumber is language-neutral, and easy for even non-programmers. Assertions and HTML reports are built-in, and you can run tests in parallel for speed.

TestPermalink

Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
Nice tool to unit test with external resource dependencies.

FakeSMTPDummy SMTP server for developers. No update but nice to test SMTP interaction with your components.

PIT Mutation TestingPIT is a state of the art mutation testing system, providing gold standard test coverage for Java and the jvm. It’s fast, scalable and integrates with modern test and build tooling.

Mockito frameworkTasty mocking framework for unit tests in Java

WireMockWireMock is a simulator for HTTP-based APIs. Some might consider it a service virtualization tool or a mock server.

AwaitilityAwaitility is a small Java DSL for synchronizing asynchronous operations

XMLUnitUnit Testing XML for Java and .NET, useful if you’re still doing XML 😂

EqualsVerifierEqualsVerifier can be used in Java unit tests to verify whether the contract for the equals and hashCode methods is met.

AssertJfluent assertions java library

springfoxAutomated JSON API documentation for API’s built with Spring

ToolsPermalink

JmxtermJmxterm is an open source command line based interactive JMX client written in Java.

docker-javaJava Docker API Client

picoclia mighty tiny command line interface

jqwikProperty-Based Testing in Java

OthersPermalink

JeneticsJava Genetic Algorithm Library. Jenetics is a Genetic Algorithm, Evolutionary Algorithm, Genetic Programming, and Multi-objective Optimization library, written in modern-day Java.
If you need this class of algorithm,
 I guess this gets you covered.

H2 Database Enginein memory and file based RDBMS. H2, an in-memory, embedded RDBMS that has turned highly standards compliant and feature rich, perfect for a lot of vendor agnostic testing.

pac4jsecurity for Java

Apache ShiroSimple. Java. Security. Powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any application – from the smallest mobile applications to the largest web and enterprise applications.

 Tags: 

 Updated: 

COMMENTS

Comments

Popular posts from this blog

Flutter for Single-Page Scrollable Websites with Navigator 2.0

A Data Science Portfolio is More Valuable than a Resume

Better File Storage in Oracle Cloud