Pro Jakarta EE 10 Open Source Enterprise Java-based Cloud-native Applications Development

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Welcome to your in-depth professional guide to the open source Eclipse Jakarta EE 10 platform. This book will help you build more complex native enterprise Java-based cloud and other applications that can run in corporate and other mission-critical settings. The majority of the key Jakarta EE 10 APIs or features are dissected in this book, including JSF, JSP, JPA, CDI, REST, Microprofiles, WebSockets, and many more. Along the way, various open source Apache, Eclipse, and other projects are integrated and used for more complete workflows and treatment in general.

Author(s): Peter Spaith
Publisher: Apress
Year: 2023

Language: English
Pages: 595

Table of Contents
About the Author
About the Technical Reviewer
Introduction
Untitled
Part I: Development Workflow Proposal
Chapter 1: Installing a Development Server
Installing and Running Under Linux
Installing and Running Under Windows
GlassFish Application Debugging
Elaborated GlassFish Operation Instructions
Chapter 2: Creating and Building Projects with Eclipse
Installing Eclipse
Configuring Eclipse
Adding Java Runtimes
Adding Plugins
Using Eclipse to Administer a Jakarta EE Server
Eclipse Everyday Usage
Changing the Project Layout
Chapter 3: Development with NetBeans as an IDE
Installing NetBeans
Starting a NetBeans Project
Multi-IDE Projects
Chapter 4: Git and Subversion
The Subversion Version Control System
Subversion Clients
The Git Version Control System
Git Clients
Chapter 5: Continuous Integration
The Jenkins CI Server
Starting a Jenkins Project
Build Triggers
Creating Real-World Builds
Triggering Builds from Git
Triggering Builds from Subversion
Analyzing Jenkins Builds via REST
Chapter 6: Corporate Maven Repositories
The Maven Repository Layout
A Simple Server to Provide Mavenized Artifacts
The Marvin EAR Root Project
The Marvin Web Project
The Marvin EJB Project
Laying Out the Projects Again
The Web Project Code
The EJB Project Code
Building and Deploying the EAR
Using the Corporate Repository
A Sample Java Library
Building and Uploading Company Libraries
Part II: Advanced Web Tier Topics
Chapter 7: Facelets
Faces Templating via Facelets
Installing Facelets
Facelets Tags Overview
The Tag
First Variation of the  Tag
Second Variation of the  Tag
The Tag
The Tag
The Tag
The Tag
The Tag
The Tag
The Tag
The Tag
An Example Facelets Project
Chapter 8: Faces Custom Components
Custom Tag Libraries
Composite Components
Custom Components in Java
Chapter 9: Flows
The Flow Process
Basic Flow Setup
Overriding Conventions
Specifying a Different Flow Start Page
Specifying a Different Return Page
Programmatic Configuration
Handling Flow Outcome
Passing Data Between Flows
Chapter 10: Websockets
Websockets on the Server Side
Websockets on the Client Side
Chapter 11: Frontend Technologies
No Third-Party Frontend Technology
Play 2
React
Angular 2
Spring Boot
Vue
Spring MVC
Ember
Act.Framework
Apache Struts 2
GWT
Vaadin
DataTables
D3js
Chapter 12: Form-Based Authentication
Enabling Security on the Sever
Form-Based Authentication for Faces
Security Role Mapping
Form-Based Authentication XHTML Code
Chapter 13: Client Certificates
Preparing Scripting
Generating Client Certificates
Storing the Client Certificate in the Browser
Storing the Client Certificate on the Server
Client Certificate Web Applications
Additional GlassFish Configuration
Client Certificate Example
Chapter 14: REST Security
Security Constraints for REST URLs
About JSON Web Tokens
Preparing GlassFish
The JWT Login Process, Client Code
Server Code
The JWT Login Process, Server Code
Sending JWTs Back to the Server
Handling JWTs in REST Endpoints
Chapter 15: JAVA MVC
About MVC
Installing Java MVC
Configuration Files
Static Files
Model Classes
Controller Classes
Messages
View Pages
Running the Pet Shop Application
Part III: Advanced Architecture Related Topics
Chapter 16: Microprofiles
Starting a MicroProfile Sample Project
Installing a MicroProfile Server
Changing the Application to a Microservice
Deploying and Running the Microservice
Chapter 17: Custom CDI
CDI Specification
Building Object Graphs
Qualifiers
Alternatives
Producers
Scope
Interceptors
Decorators
Chapter 18: Interceptors
CDI Interceptors
JPA Lifecycle Listeners
Servlet Listeners
Faces Phase Listeners
Chapter 19: Bean Validation
Where to Use Bean Validation
How to Add Constraints
Built-in Constraints
Custom Constraints
Bean Validation Exceptions
Chapter 20: Jakarta EE Concurrency
Preparing the Jakarta EE Server
Using a ManagedExecutorService
Using a ManagedScheduledExecutorService
Using the ManagedThreadFactory
Enterprise Concurrency and Transactions
Chapter 21: Batch Processing
Batch Processing Concepts
Preparing the Server for Batch Processing
An Employee Attendance Example Batch Processing
Starting a Batch Processing EAR Project
Example Data Preparation
Job Definition File
Batch Processing Scheduling
Batch Processing Java Artifacts
Building and Deploying the Application
Part IV: Useful Supporting Technologies
Chapter 22: XML Binding
Why JAXB Is So Complicated
Writing a Java Object Tree as XML
Adding a Schema
Transforming from XML to Java
Generating Java Classes from Schemas
Chapter 23: JSON Handling
JSON Documents
JSON with REST Services
Generating JSON
Parsing JSON
Binding JSON to Java Objects
Chapter 24: Jakarta Mail
Installing Jakarta Mail
Generating and Sending Emails
Chapter 25: Application Client (Groovy)
Providing an Enterprise Application
Building an Application Client
Running a GroovyConsole Application Client
Chapter 26: Adding Scripting Languages
Installing Scripting Engines
Using Scripting in Java
Part V: Advanced Resource Related Topics
Chapter 27: Hibernate as ORM
Installing Hibernate
Adapting the Persistence Configuration
Fetching the Hibernate Session
Chapter 28: Connectors
Coding a Resource Adapter
Packaging and Deploying a Resource Adapter
Deployment Descriptors
Resource Adapter Deployment
Defining a Resource Adapter on the Server
Resource Adapter Clients
Chapter 29: Caching
Installing Ehcache
Configuring Hibernate for Ehcache
Defining Cached Objects in the Code
Monitoring Caching Activities
Chapter 30: NoSQL
Using CouchDB from Jakarta EE Applications
Using MongoDB from Jakarta EE Applications
Part VI: Security Enhancements
Chapter 31: Secured JMX
Using SSL for Remote JMX Connections
Generating the SSL Keys
Configuring the Server
Configuring the Client
Disabling Random JMX Ports
Chapter 32: Java Web Tokens with Encryption
Installing Jose4j
Encrypting Claims
Decrypting Claims
Further Reading
Chapter 33: Java Enterprise Security
Form-Based Authentication
The Security API
Authentication Data: IdentityStore
Authentication Methods: HttpAuthenticationMechanism
Part VII: Advanced Monitoring and Logging
Chapter 34: Monitoring Workflow
Using JMX as a Monitoring Technology
Enabling Remote JMX
MBeans in Jakarta EE Applications
Aggregating Values
JMX Clients
Monitoring Frameworks
Chapter 35: Logging Pipeline with Fluentd
Installing Fluentd
Running Fluentd
Using Logfiles as Input
Filtering
Using Multiple Routes
Fluentd Output
Further Reading
Chapter 36: Performance Troubleshooting
Load and Performance Tests
NFR Testing Methodology
Where to Run NFR Tests
NFR Test Duration
NFR Tests with JMeter
Frontend Tests with Selenium
Analyzing Performance Figures
Reducing the File Size
Plotting a Performance Chart
No Min or Max, Please
Code-Level Monitoring with VisualVM
Code Optimization
Chapter 37: Garbage Collection
The Importance of Garbage Collectors
G1 Garbage Collector
Shenandoah GC
Zero Garbage Collector
Garbage Collector Logs
Chapter 38: Memory Troubleshooting
Identifying Memory Leaks
More Evidence: Heap Dumps
Analyzing Heap Dumps
Chapter 39: Custom Log4j Appender
Including Log4j
A Statistics Appender
Index