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:
Category | Maven Artifacts | Description | Prerequisites |
---|---|---|---|
juneau-core | juneau‑marshall | Serializers and parsers for JSON (various flavors), XML, HTML, URL-Encoding, UON, OpenAPI, PlainText, CSV, SOAP, and MessagePack. | • Apache HttpCore 4.4 |
juneau‑marshall-rdf | Serializers 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 OpenAPI | • None | |
juneau‑config | Configuration File API | • None | |
juneau‑assertions | Fluent-style assertions API | • None | |
juneau‑bct | Bean-Centric Testing framework | • JUnit 5 | |
juneau‑svl | Simple Variable Language for dynamic string processing | • None | |
juneau-rest | juneau‑rest‑common | REST APIs common to client and server side. | • Apache HttpCore 4.4 |
juneau‑rest‑server | REST Servlet API | • Servlet 3.1+ | |
juneau‑rest‑server‑springboot | REST Spring Boot integration | • Spring Boot 2.0+ | |
juneau‑rest‑client | REST Client API | • Apache HttpClient 4.5 | |
juneau‑rest‑mock | REST Testing API | • Apache HttpClient 4.5 | |
juneau-microservice | juneau‑microservice‑core | Core microservice functionality | • None |
juneau‑microservice‑jetty | Jetty-based microservice implementation | • Jetty 9.4+ | |
juneau-petstore | juneau‑petstore | Complete REST application example | • Spring Boot 2.0+ |
juneau-examples | juneau‑examples‑core juneau‑examples‑rest juneau‑examples‑rest‑jetty juneau‑examples‑rest‑springboot | Code examples and tutorials | |
juneau‑all | juneau‑all | Convenience 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.