Juneau 9.0.0 is a major release. Deprecated APIs that have been accumulating over time have been removed.
Major changes include:
-
The code has undergone significant refactoring to ease maintainability and improve overall performance.
Configuration properties have been removed entirely. They have been replaced with a standard builder-based
architecture. In addition to making the code more maintainable, it also improves performance when
creating new serializers/parsers/rest clients (and others).
-
REST servlets now seemlessly integrate with Spring Boot.
juneau-marshall
-
Eliminated the various @XConfig(applyX={...}) annotations and replaced them with the ability
to apply targeted annotations directly to configuration classes and methods (such as REST classes/methods).
| @Rest(...)
| @Bean(on="MyBean1,MyBean2",sort=true)
| @UrlEncoding(onClass=MyList.class,expandedParams=true)
| public class MyRestClass {
|
| @RestOp(...)
| @Bean(on="MyBean1,MyBean2",sort=false)
| @UrlEncoding(onClass=MyList.class,expandedParams=false)
| public Object myRestMethod() { ... }
| }
-
{@link oaj.marshaller.Json5 JSON 5} support.
-
New {@link oaj.annotation.Marshalled @Marshalled} annotation for non-bean classes.
-
New {@link oaj.annotation.BeanConfig#ignoreUnknownEnumValues() @BeanConfig(ignoreUnknownEnumValues)} annotation and support for ignoring
unknown enum values during parsing.
-
Java Serialized Object marshalling support has been removed entirely due to security risks with usage (better safe than sorry).
juneau-rest-common
New module containing the common REST classes/annotations uses by both the client and server APIs.
These were previously contained within juneau-marshall.
-
Significant refactoring of the classes in the {@link oaj.http} package and subpackages. Attempts were made to make classes as natural
extensions to the Apache HttpComponents APIs. Significant new functionality here.
-
@RemoteMethod annotation has been replaced with the following:
- {@link oaj.http.remote.RemoteOp}
- {@link oaj.http.remote.RemoteGet}
- {@link oaj.http.remote.RemotePut}
- {@link oaj.http.remote.RemotePatch}
- {@link oaj.http.remote.RemotePost}
- {@link oaj.http.remote.RemoteDelete}
juneau-rest-server
juneau-dto
-
Addition of OpenAPI 3.0 ({@link oaj.dto.openapi3} package).
juneau-rest-server-springboot
-
The requirement for using JuneauRestInitializer during App initialization to use bean injection has been eliminated.
Instead, root resources should simply extend from {@link oajr.springboot.BasicSpringRestServlet} and {@link oajr.springboot.BasicSpringRestServletGroup}.
These will automatically hook into the Spring Boot framework for resolution of REST children and various extension beans added
to the REST API framework.
juneau-rest-client
juneau-rest-mock
-
Entirely rewritten. Changes too many to list.