ddi
Made in the European Union

Compatibility

Supported JDK versions, runtimes and frameworks for DDI.

JDK matrix

DDI version lineJDK baselineStatus
06.x (current)JDK 21 LTSActive development
05.xJDK 21 LTSMaintenance only
04.xJDK 8 source / JDK 11+ buildEnd-of-life
1.0.xJDK 8Frozen โ€” for legacy projects

Newer JDKs (22, 23, โ€ฆ) are tested but not officially declared “supported” until they have reached at least one quarterly maintenance release.

Runtime environments

DDI is plain Java โ€” there is no servlet, no container, no agent. It works wherever the JDK works:

  • Stand-alone JVM โ€” CLI tools, batch jobs, daemons.
  • AWS Lambda / Cloud Functions โ€” bootstrap is a single method call, so cold-start cost is the classpath scan, nothing more.
  • Vaadin Flow โ€” used in production with Vaadin since the V8 era.
  • JavaFX / Swing desktop โ€” same pattern, injection happens before the UI builds.
  • JUnit 5 tests โ€” see the JUnit 5 tutorial.

What DDI does not require

  • No Jakarta EE / CDI container.
  • No Spring ApplicationContext.
  • No annotation processor โ€” DDI uses reflections8 at runtime.
  • No XML, no YAML, no META-INF/services (though you can use those alongside DDI if you want).

What DDI does depend on

  • javax.annotation:javax.annotation-api โ€” for @PostConstruct.
  • com.google.code.gson:gson โ€” used internally for diagnostics.
  • net.oneandone.reflections8:reflections8 โ€” classpath scanning.
  • com.svenruppert:core and com.svenruppert:functional-reactive โ€” the companion libraries (see frp.svenruppert.com).

Java Platform Module System

DDI runs on the classpath today. A proper module-info.java is on the roadmap.