2. About Me
Josh Juneau
• Java EE, JakartaEE, Java SE, Databases, Jython/Groovy
• Fermi National Accelerator Laboratory
• Author/Presenter/Podcaster
• JCP Member, JSF 2.3 Expert Group
• CJUG Open Source Software Initiative
• Eclipse Foundation Member, Mojarra Committer
• Apache NetBeans Developer
3. What’s Happening
in Java Enterprise?
Jakarta EE Status
• Java EE 8 APIs are being transferred to EE4J
project
• Eclipse GlassFish 5.1 Now Available (RC)
• Target release date 12/14/2018
• Initial Release is Imminent
• Status https://www.eclipse.org/ee4j/status.php
Java EE 8 == Jakarta EE 8
4. What’s Happening
in Java Enterprise?
Specification Process
• JCP No Longer Used for Java EE
• Jakarta EE Specification Process
• Lightweight
• ~ Open Source
All contributions are now complete
Java EE TCKs open sourced
Nightly builds of GlassFish 5.1 available
5. In the Meantime
Test out Jakarta EE using EE4J Projects
Download Eclipse GlassFish and test
Utilize MicroProfile for agile Java EE development
and Microservice toolset
6. MicroProfile
• Started in 2016 by a community of individuals,
organizations, and vendors do collaborate on a
standard approach for bringing microservices to Java
• Open source community specification for Enterprise
Java microservices
• 6 Overall releases & 16 individual spec releases
• Began small (3 APIs in 1.0)
9. MicroProfile
- Geared towards developing Microservices for cloud
- MicroProfile provides the following features that support
reactive programming:
• Reactive REST client (via JAX-RS)
• Server-Sent Events (SSE) server and client (via JAX-
RS)
• Asynchronous events (via CDI)
• Metrics and Health endpoints to react to resource
usage and service failures
• https://wiki.eclipse.org/MicroProfile/
Implementation#Eclipse_MicroProfile_Releases
•
10.
11.
12. Config
• Standard means of storing configuration
outside of an application
• Utilize annotations
• Property files, system properties,
environment variables
13.
14. Fault Tolerance
• Leverage different strategies to guide
the execution and results of some
logic
• Examples include retry policies,
bulkheads, and circuit breakers
• Determine what should occur when an
expected result is not achieved
16. Fault Tolerance
Bulkhead
• Bulkhead: Pattern to prevent faults in
one part of a system from taking down
everything.
@Bulkhead(5) // maximum 5 concurrent
public Connection serviceA(){
Connection conn = null;
conn = connectionService();
return conn;
}
21. Metrics
• This is a key API for monitoring distributed
systems
• Standard means for exporting monitoring
data
• Allows developers a means to build
application metrics
• Adds well known endpoints and values for
each process
22. Metrics• Three Scopes: Base, Vendor, Application
• /metrics/base
• /metrics/vendor
• /metrics/application
Application Annotations:
@Counted, @Gauge, @Metered, @Timed
Histogram: Measures the distribution of
values in a stream of data and allows you
to measure, not just natural things like the
min, mean, max, and standard deviation
of values, but also quantiles like the
median or 95th percentile.
23.
24. Open Tracing
Follow requests within a distributed environment,
instrumenting microservices for distributed
tracing.
Enterprise Java binding to the Open Tracing
specification.
25. Open Tracing 1.2
Updates:
By default, Open Tracing will not trace endpoints
associated with MicroProfile Metrics, Health
and OpenAPI
Added logging exceptions thrown by explicit
instrumentation (@Traced)
Added server operation name provider
Removed geronimo-atinject and javax.annotation
dependencies for API module
Added support for server side skip pattern
26. Open API
• Generates OpenAPI Documents from
JAX-RS endpoints
• Utilizes Swagger UI
• WSDL For REST
27. REST Client
• Easy to use API for working with a REST
client
• Let verbose than standard invocation