8.0.0 (Jan 01, 2019)

This release cleans up deprecated APIs from the 7.2.0 release and makes significant modifications to the Microservice APIs.

The project structures of the REST, Microservice, and Examples have been modified to fit new Spring Boot integration support. The structure is now as follows:

- juneau-rest
  - juneau-rest-client
  - juneau-rest-server
  - juneau-rest-server-jaxrs
  - juneau-rest-server-rdf
  - juneau-rest-server-springboot - New Spring Boot integration support classes.
- juneau-microservice
  - juneau-microservice-core - New. Contains base {@link oaj.microservice.Microservice} class.
  - juneau-microservice-jetty - New. Contains new {@link oaj.microservice.jetty.JettyMicroservice} class.
  - juneau-my-jetty-microservice - New. Template starter project for Jetty-based microservices.
  - juneau-my-springboot-microservice - New. Template starter project for Spring-Boot-based microservices.
- juneau-examples
  - juneau-core
  - juneau-microservice-rest - Now contains only servlet example classes. No Jetty configuration.
  - juneau-microservice-rest-jetty - Servlet examples deployed using Jetty.
  - juneau-microservice-rest-springboot - Servlet examples deployed using Spring Boot.

##### juneau-svl

- New SVL variables:
  - {@link oaj.svl.vars.SubstringVar}
  - {@link oaj.svl.vars.PatternExtractVar}
  - {@link oaj.svl.vars.PatternReplaceVar}
  - {@link oaj.svl.vars.LenVar}

##### juneau-config

- New methods for setting a system default configuration:
  - {@link oaj.config.Config}
    - {@link oaj.config.Config#getSystemDefault() getSystemDefault()}
    - {@link oaj.config.Config#setSystemDefault(Config) setSystemDefault(Config)}
- New classpath store.
  - ConfigClasspathStore
- New API method:
  - {@link oaj.config.store.ConfigStore}
    - {@link oaj.config.store.ConfigStore#exists(String) exists(String)}

##### juneau-rest-server

- New methods on RestServlet:
  - RestServlet.setRestResourceResolver(RestResourceResolver) setRestResourceResolver(RestResourceResolver)
  - RestServlet.getPath() getPath()
- The registered resource resolver is now used to instantiate objects of classes defined via @RestResource.
  This allows for any of those instance to be injectable beans.

##### juneau-rest-server-springboot

- New project containing classes for making it easy to use Juneau with Spring Boot.

##### juneau-microservice-core

- New project that consist of just the core {@link oaj.microservice.Microservice} class and console support.
- The Microservice API has been revamped to use a builder-based approach to creating microservices.
  The new API is considerably more flexible in design and allows for the configuration and external files to be located in either the home directory or inside the jar classpath.
- If the microservice cannot find a config file in the home directory with the same name as the jar and the "juneau.configFile" system property is not found, it will try to find any file in the home directory that ends with ".cfg".
- New {@link oaj.microservice.MicroserviceListener} API for defining lifecycle event listeners.
- New {@link oaj.microservice.console.ConfigCommand} class for performing config queries and updates through the microservice console.

##### juneau-microservice-jetty

- New {@link oaj.microservice.jetty.JettyMicroservice} class replaces the previous RestMicroservice.

##### juneau-my-jetty-microservice

- New template starter project for Jetty-based microservices.

##### juneau-my-springboot-microservice

- Template starter project for Spring-Boot-based microservices.
- app.json and Procfile files for deploying examples into Heroku.
  Includes instructions.