Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

Latest commit

 

History

History
84 lines (57 loc) · 4.39 KB

EXTRA.md

File metadata and controls

84 lines (57 loc) · 4.39 KB

UniJ: Extra Information

← back to UniJ README

Table of Contents:

Project Layout

Performance

If you wonder how UniJ's indirection (= its two extra layers: User API and Service API) affects performance, the answer is short: it effectively doesn't.

It turns out the JIT compiler simply optimizes all the indirection away.

You can verify this by running a JMH benchmark (UniListsBenchmark) where calls to UniLists (with a JDK 11 binding) are compared to direct JDK 11 API calls. The exact results can be found here.

Kotlin Interoperability

This library is highly interoperable with Kotlin thanks to being annotated with regard to:

using annotations provided by Basic Java Annotations library.

Backport of Java 9+ to Java 8

If you're looking for a backport of Java 9+ to Java 8, you can use the following for:

  1. new APIs: UniJ

  2. new language features: Jabel

    • Jabel is an annotation processor that lets you use some language features of Java 9+ while still targeting JDK 8
  3. Java Platform Module System: Gradle Modules Plugin

    • Gradle Modules Plugin provides support for JPMS (module-info.java) not only to JDK 9+ projects (standard mode) but also to JDK 8 projects (special mixed mode)

Together, UniJ, Jabel, and Gradle Modules Plugin may provide you with pretty good "Java 9+"-like experience while still targeting / being on JDK 8.


← back to UniJ README