Skip to main content

Juneau Ecosystem Overview

About

Apache Juneau™ is a single cohesive Java ecosystem for marshalling Java objects to a wide variety of language types and creating annotation-based REST end-to-end server and client APIs.

Ecosystem

The Juneau ecosystem consists of the following parts:

CategoryMaven ArtifactsDescriptionPrerequisites
juneau-corejuneau‑marshallSerializers and parsers for JSON (various flavors), XML, HTML, URL-Encoding, UON, OpenAPI, PlainText, CSV, SOAP, and MessagePack.• Apache HttpCore 4.4
juneau‑marshall-rdfSerializers and parsers for RDF/XML (various flavors), N3, NTriple, and Turtle.• Apache HttpCore 4.4
• Apache Jena 2.7.1
juneau‑bean‑atom
juneau‑bean‑common
juneau‑bean‑html5
juneau‑bean‑jsonschema
juneau‑bean‑openapi3
Data Transfer Object Beans for HTML5, ATOM, JSON Schema, and OpenAPINone
juneau‑configConfiguration File APINone
juneau‑assertionsFluent-style assertions APINone
juneau‑bctBean-Centric Testing framework• JUnit 5
juneau‑svlSimple Variable Language for dynamic string processingNone
juneau-restjuneau‑rest‑commonREST APIs common to client and server side.• Apache HttpCore 4.4
juneau‑rest‑serverREST Servlet API• Servlet 3.1+
juneau‑rest‑server‑springbootREST Spring Boot integration• Spring Boot 2.0+
juneau‑rest‑clientREST Client API• Apache HttpClient 4.5
juneau‑rest‑mockREST Testing API• Apache HttpClient 4.5
juneau-microservicejuneau‑microservice‑coreCore microservice functionalityNone
juneau‑microservice‑jettyJetty-based microservice implementation• Jetty 9.4+
juneau-petstorejuneau‑petstoreComplete REST application example• Spring Boot 2.0+
juneau-examplesjuneau‑examples‑core
juneau‑examples‑rest
juneau‑examples‑rest‑jetty
juneau‑examples‑rest‑springboot
Code examples and tutorials
juneau‑alljuneau‑allConvenience dependency combining all core Juneau modules• Servlet 3.1+
• Apache HttpClient 4.5+

The current version of Juneau is 9.1.0.

The easiest way to pull in the library is through the following maven dependency:

<dependency>
<groupId>org.apache.juneau</groupId>
<artifactId>juneau‑all</artifactId>
<version>${juneau.version}</version>
</dependency>

If you would like to work with the bleeding-edge code, you can access the 9.2.0-SNAPSHOT version through the following repository:

<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<url>http://repository.apache.org/snapshots/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>

Each of the components are also packaged as stand-alone OSGi modules.

Features
  • Fast memory-efficient serialization.
  • Fast, safe, memory-efficient parsing. Parsers are not susceptible to deserialization attacks.
  • KISS is our mantra! No auto-wiring. No code generation. No dependency injection. Just add it to your classpath and use it. Extremely simple unit testing!
  • Enjoyable to use
  • Tiny - ~1MB
  • Exhaustively tested
  • Lots of up-to-date documentation and examples
  • Minimal library dependencies making it ideal for use in uber-jars.
  • Built on top of Servlet and Apache HttpClient APIs that allow you to use the newest HTTP/2 features such as request/response multiplexing and server push.
  • All modules work with Java 8 through at least 18.