When developers speak with admiration of the Java ecosystem, they’re referring especially to two things: the abundance of excellent development tools and the vast number of third-party libraries. Libraries are available today to do almost anything that is required, and for the most part, they’re open source and freely available. A quick look at Maven Central—one of the principal repositories for Java artifacts—lists more than 3 million entries, of which nearly 300,000 are unique. That’s a lot of choices!
To help you navigate such a wide body of work, we regularly cover libraries in Java Magazine, and once a year we dedicate an entire issue to them. In this issue, we include an annotated list (page 65) of the libraries we’ve covered over the years—it contains everything from cryptocurrency to JVM internals. We also explain the mechanics of library operations. This issue, for example, includes a hands-on discussion of how to convert pre-Java 9 libraries (page 53) to Java modules. In earlier issues, we examined how the JVM finds and loads libraries (PDF), and we explained in depth how best to write libraries.
On the following pages, we look at the most popular library for creating PDF files (page 15), explain how to create HTML on the fly (page 27) without using templates, and examine ways to transform Java bytecodes (page 39) in useful ways. We’ve also included another deep dive into a design pattern— this time the State pattern (page 66)—and, of course, we’ve bundled our quiz (page 76) and book review (page 8).