This post is over a year old, some of this information may be out of
date.
Table of Contents
- Introduction
- Web Frameworks
- Authentication Framework
- ETL Libraries
- Maven Plugins
- Relational Data Persistence
- Testing Libraries
- Utilities Libraries
- Supplementary Libraries
- Reference
Introduction
List of java libraries which I had used over the years. Especially those which are unable to make it to Skill
Web Frameworks
- Spring Boot - which I have been a loyal follower since version 1.2.1
- VueJS or Angular
Authentication Framework
- Spring Security
- Apache Shiro - easier to extend for fine grained ACLs
- Love to try : OACC - one of the most extensive java security framework I ever come across
ETL Libraries
Maven Plugins
- eclipselink-maven-plugin - Eclipselink static weaving and canonical model generation made simple
- Git-Flow Maven Plugin - one of the nice tools to use if you want to practise GitFlow in the Jenkins setup
Relational Data Persistence
- Spring Data JPA with Hibernate/Eclipselink
- Mybatis - in a way it can support multiple databases...
- Mybatis-PageHelper - mybatis plugin for pagination
Spring Data JPA and Mybatis can actually coexists together.
Testing Libraries
- Junit 5 - my current default choice
- Spock Framework - my default choice before JUnit 5
- Spring JUnit 5 Testing Support - JUnit Jupiter testing support in conjunction with Spring Framework 4.3.x
Thanks to this library, I can use Junit5 in Spring 4.3.X... https://t.co/q3mXadDvAL
— Ian Lim (@mallim) July 3, 2019
Utilities Libraries
Supplementary Libraries
- Convert HTML To PDF using wkhtmltopdf: Java WkHtmlToPdf Wrapper
- CORS for those without Spring: CORS Filter - @Cors alternative
- Cron expression parser: cron-utils - Cron utils for parsing, validations and human readable descriptions as well as date/time interoperability. http://cron-utils.com
- Database source control: Liquibase
- DDD, CQRS: AxonFramework allows you to do @Command, CQRS, EventStore
- Embedded monitoring: Java Melody - for embedded monitoring
- Excel Import/Export via annotations: easy-poi
- Fake data generator: java-faker - quite a nice test data generator
- Filter Support for Spring MVC & Spring Data JPA: specification-arg-resolver
- Generate dynamic Sql based on hibernate session: NativeCriteria
- Java Bean Mapping: MapStruct, Orika
- Templating: JMustache preferred over Apache Velocity and Handlebars.java
- Parser: univocity-parser one of the best java based CSV parser around, if you cannot use an ETL tool. Able to work with CSV, TSV, fixed width columns
- XPath equivalent for JSON: JsonPath
Noteworthy Libraries
This means good to know and I never use...
- datasource-proxy provide proxy classes for JDBC API to intercept executing queries and methods.
- database-rider integrates DBUnit and JUnit in order to make database testing a breeze! Can work with Spring Boot !
- Easy Batch can try if really dun want to use Apache Camel or Pentaho Data Integration - Kettle
- Eclipse Collections looks interesting to have a dab with it one day
- JOOQ - interested to try iff targetted db is kept to open source
- XDocReport - DocReport means XML Document reporting. It's Java API to merge XML document created with MS Office (docx) or OpenOffice (odt), LibreOffice (odt) with a Java model to generate report and convert it if you need to another format (PDF, XHTML...).
DTO Mapper in Java
State Machines in Java
Events in Java
- Guava EventBus
- guava-eventbus-spring
- simpleeventbus
- MBassador
- spring-event old example of using Spring application context to publish events
- Myclila Event EventBus system for publish and subscribe to events within an application
- spring-events
Annotate a singleton bean method to be notified of the event only when the transaction has been committed
@Component
private class InvoiceArchiver {
@Observes(when = EventMoment.AFTER_COMMIT)
@Async
public void archiveInvoice(InvoiceCreated event) {
...
}
}