Java 9: Building Robust Modular Applications

Mastering advanced features of Java and implement them to build amazing projects
Preview in Mapt

Java 9: Building Robust Modular Applications

Dr. Edward Lavieri, Peter Verhas, Jason Lee
New Release!

Mastering advanced features of Java and implement them to build amazing projects
Mapt Subscription
FREE
$29.99/m after trial
eBook
$10.00
RRP $79.99
Save 87%
Print + eBook
$99.99
RRP $99.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$10.00
$99.99
$29.99 p/m after trial
RRP $79.99
RRP $99.99
Subscription
eBook
Print + eBook
Start 14 Day Trial

Frequently bought together


Java 9: Building Robust Modular Applications Book Cover
Java 9: Building Robust Modular Applications
$ 79.99
$ 10.00
Hands-On Enterprise Application Development with Java 9 [Video] Book Cover
Hands-On Enterprise Application Development with Java 9 [Video]
$ 124.99
$ 10.00
Buy 2 for $20.00
Save $184.98
Add to Cart

Book Details

ISBN 139781788832823
Paperback910 pages

Book Description

Java 9 and its new features add to the richness of the language; Java is one of the languages most used by developers to build robust software applications. Java 9 comes with a special emphasis on modularity with its integration with Jigsaw. This course is your one-stop guide to mastering the language.

You'll be provided with an overview and explanation of the new features introduced in Java 9 and the importance of the new APIs and enhancements. Some new features of Java 9 are ground-breaking; if you are an experienced programmer, you will be able to make your enterprise applications leaner by learning these new features. You'll be provided with practical guidance in applying your newly acquired knowledge of Java 9 and further information on future developments of the Java platform. This course will improve your productivity, making your applications faster. Next, you'll go on to implement everything you've learned by building 10 cool projects. You will learn to build an email filter that separates spam messages from all your inboxes, a social media aggregator app that will help you efficiently track various feeds, and a microservice for a client/server note application, to name just a few.

By the end of this course, you will be well acquainted with Java 9 features and able to build your own applications and projects.

This Learning Path contains the best content from the following two recently published Packt products:
• Mastering Java 9
• Java 9 Programming Blueprints

Table of Contents

Chapter 1: The Java 9 Landscape
Java 9 at 20,000 feet
Breaking the monolith
Playing around with the Java Shell
Taking control of external processes
Boosting performance with G1
Measuring performance with JMH
Getting started with HTTP 2.0
Encompassing reactive programming
Expanding the wish list
Summary
Chapter 2: Discovering Java 9
Improved Contended Locking [JEP 143]
Segmented code cache [JEP 197]
Smart Java compilation, phase two [JEP 199]
Resolving Lint and Doclint warnings [JEP 212]
Tiered attribution for javac [JEP 215]
Annotations pipeline 2.0 [JEP 217]
New version-string scheme [JEP 223]
Generating run-time compiler tests automatically [JEP 233]
Testing class-file attributes generated by Javac [JEP 235]
Storing interned strings in CDS archives [JEP 250]
Preparing JavaFX UI controls and CSS APIs for modularization [JEP 253]
Compact strings [JEP 254]
Merging selected Xerces 2.11.0 updates into JAXP [JEP 255]
Updating JavaFX/Media to newer version of GStreamer [JEP 257]
HarfBuzz Font-Layout Engine [JEP 258]
HiDPI graphics on Windows and Linux [JEP 263]
Marlin graphics renderer [JEP 265]
Unicode 8.0.0 [JEP 267]
Reserved stack areas for critical sections [JEP 270]
Dynamic linking of language-defined object models [JEP 276]
Additional tests for humongous objects in G1 [JEP 278]
Improving test-failure troubleshooting [JEP 279]
Optimizing string concatenation [JEP 280]
HotSpot C++ unit-test framework [JEP 281]
Enabling GTK 3 on Linux [JEP 283]
New HotSpot build system [JEP 284]
Summary
Chapter 3: Java 9 Language Enhancements
Working with variable handlers [JEP 193]
Eliding depreciation warnings on import statements [JEP 211]
Milling Project Coin [JEP 213]
Processing import statements correctly [JEP 216]
Summary
Chapter 4: Building Modular Applications with Java 9
A modular primer
Reviewing Java's platform module system [JEP-200]
Modularizing JDK source code [JEP-201]
Understanding modular run-time images [JEP-220]
Getting to know the module system [JEP-261]
Modular Java application packaging [JEP-275]
JLink - The Java Linker [JEP-282]
Encapsulating most internal APIs [JEP-260]
Summary
Chapter 5: Migrating Applications to Java 9
Quick review of Project Jigsaw
How modules fit into the Java landscape
Migration planning
Advice from Oracle
Useful tools
Summary
Chapter 6: Experimenting with the Java Shell
What is JShell?
Getting Started with JShell
Practical uses of JShell
Working with scripts
Summary
Chapter 7: Leveraging the New Default G1 Garbage Collector
Overview of garbage collection
Pre-Java 9 garbage collection
Collecting garbage with the new Java platform
Persistent issues
Summary
Chapter 8: Microbenchmarking Applications with JMH
Microbenchmarking overview
Microbenchmarking with Maven
Benchmarking options
Techniques for avoiding microbenchmarking pitfalls
Summary
Chapter 9: Making Use of the ProcessHandle API
What are processes?
The new ProcessHandle interface
Getting the PID of the current process
Getting information about a process
Listing processes
Waiting for processes
Terminating processes
A small process controller application
Summary
Chapter 10: Fine-Grained Stack Tracing
Overview of the Java Stack
The importance of stack information
Working with StackWalker
StackFrame
Performance
Summary
Chapter 11: New Tools and Tool Enhancements
The new HTTP client [JEP-110]
Simplified Doclet API [JEP-221]
HTML5 Javadoc [JEP-224]
Javadoc search [JEP-225]
Remove launch-time JRE version selection [JEP-231]
Parser API for Nashorn [JEP-236]
Multi-release JAR files [JEP-238]
Java-level JVM compiler interface [JEP-243]
BeanInfo annotations [JEP-256]
TIFF image input/output [JEP-262]
Platform logging API and service [JEP-264]
XML Catalogs [JEP-268]
Convenience factory methods for collections [JEP-269]
Platform-specific desktop features [JEP-272]
Enhanced method handles [JEP-274]
Enhanced deprecation [JEP-277]
Summary
Chapter 12: Concurrency and Reactive Programming
Reactive Programming
The New Flow API
Additional Concurrency Updates
Spin-Wait Hints
Summary
Chapter 13: Security Enhancements
Datagram Transport Layer Security
Creating PKCS12 keystores
Improving security application performance
TLS application-layer protocol negotiation extension
Leveraging CPU instructions for GHASH and RSA
OCSP stapling for TLS
DRBG-based SecureRandom implementations
Summary
Chapter 14: Command Line Flags
Unified JVM Logging [JEP 158]
Compiler control [JEP 165]
Diagnostic commands [JEP 228]
Heap profiling agent [JEP 240]
Removing your JHAT [JEP 241]
JVM command-line flag argument validation [JEP 245]
Compile for older platform versions [JEP 247]
Summary
Chapter 15: Best Practices In Java 9
Support for UTF-8
Unicode 7.0.0
The Linux/AArch64 port
Multi-resolution Images
Common Locale Data Repository (CLDR)
Summary
Chapter 16: Future Directions
Future Changes to the JDK
Future changes to the Java Compiler
Future Changes to the Java Virtual Machine
Future Changes to JavaX
Ongoing Special Projects
Summary
Chapter 17: Introduction
New features in Java 8
New features in Java 9
Projects
Getting started
Summary
Chapter 18: Managing Processes in Java
Creating a project
Bootstrapping the application
Defining the user interface
Initializing the user interface
Adding menus
Updating the process list
Summary
Chapter 19: Duplicate File Finder
Getting started
Building the library
Building the command-line interface
Building the graphical user interface
Summary
Chapter 20: Date Calculator
Getting started
Building the library
Building the command-line interface
Summary
Chapter 21: Sunago - A Social Media Aggregator
Getting started
Adding a network - Twitter
Adding another network - Instagram
Summary
Chapter 22: Sunago - An Android Port
Getting started
Building the user interface
Summary
Chapter 23: Email and Spam Management with MailFilter
Getting started
A brief look at the history of email protocols
Summary
Chapter 24: Photo Management with PhotoBeans
Getting started
Bootstrapping the project
NetBeans modules
TopComponent - the class for tabs and windows
Nodes, a NetBeans presentation object
Lookup, a NetBeans fundamental
Writing our own nodes
Performing Actions
Services - exposing decoupled functionality
Summary
Chapter 25: Taking Notes with Monumentum
Getting started
Summary
Chapter 26: Serverless Java
Getting started
Planning the application
Building your first function
Summary
Chapter 27: DeskDroid - A Desktop Client for Your Android Phone
Getting started
Creating the Android project
Server-sent events
Creating the desktop application
Summary
Chapter 28: What is Next?
Looking back
Looking forward
Looking around
Summary

What You Will Learn

  • Package Java applications as modules using the Java Platform Module System
  • Implement process management in Java using the all-new process handling API
  • Integrate your applications with third-party services in the cloud
  • Interact with mail servers, using JavaMail to build an application that filters spam messages
  • Use JavaFX to build rich GUI-based applications, which are an essential element of application development
  • Leverage the possibilities provided by the newly introduced Java shell
  • Test your application's effectiveness with the JVM harness
  • See how Java 9 provides support for the HTTP 2.0 standard

Authors

Table of Contents

Chapter 1: The Java 9 Landscape
Java 9 at 20,000 feet
Breaking the monolith
Playing around with the Java Shell
Taking control of external processes
Boosting performance with G1
Measuring performance with JMH
Getting started with HTTP 2.0
Encompassing reactive programming
Expanding the wish list
Summary
Chapter 2: Discovering Java 9
Improved Contended Locking [JEP 143]
Segmented code cache [JEP 197]
Smart Java compilation, phase two [JEP 199]
Resolving Lint and Doclint warnings [JEP 212]
Tiered attribution for javac [JEP 215]
Annotations pipeline 2.0 [JEP 217]
New version-string scheme [JEP 223]
Generating run-time compiler tests automatically [JEP 233]
Testing class-file attributes generated by Javac [JEP 235]
Storing interned strings in CDS archives [JEP 250]
Preparing JavaFX UI controls and CSS APIs for modularization [JEP 253]
Compact strings [JEP 254]
Merging selected Xerces 2.11.0 updates into JAXP [JEP 255]
Updating JavaFX/Media to newer version of GStreamer [JEP 257]
HarfBuzz Font-Layout Engine [JEP 258]
HiDPI graphics on Windows and Linux [JEP 263]
Marlin graphics renderer [JEP 265]
Unicode 8.0.0 [JEP 267]
Reserved stack areas for critical sections [JEP 270]
Dynamic linking of language-defined object models [JEP 276]
Additional tests for humongous objects in G1 [JEP 278]
Improving test-failure troubleshooting [JEP 279]
Optimizing string concatenation [JEP 280]
HotSpot C++ unit-test framework [JEP 281]
Enabling GTK 3 on Linux [JEP 283]
New HotSpot build system [JEP 284]
Summary
Chapter 3: Java 9 Language Enhancements
Working with variable handlers [JEP 193]
Eliding depreciation warnings on import statements [JEP 211]
Milling Project Coin [JEP 213]
Processing import statements correctly [JEP 216]
Summary
Chapter 4: Building Modular Applications with Java 9
A modular primer
Reviewing Java's platform module system [JEP-200]
Modularizing JDK source code [JEP-201]
Understanding modular run-time images [JEP-220]
Getting to know the module system [JEP-261]
Modular Java application packaging [JEP-275]
JLink - The Java Linker [JEP-282]
Encapsulating most internal APIs [JEP-260]
Summary
Chapter 5: Migrating Applications to Java 9
Quick review of Project Jigsaw
How modules fit into the Java landscape
Migration planning
Advice from Oracle
Useful tools
Summary
Chapter 6: Experimenting with the Java Shell
What is JShell?
Getting Started with JShell
Practical uses of JShell
Working with scripts
Summary
Chapter 7: Leveraging the New Default G1 Garbage Collector
Overview of garbage collection
Pre-Java 9 garbage collection
Collecting garbage with the new Java platform
Persistent issues
Summary
Chapter 8: Microbenchmarking Applications with JMH
Microbenchmarking overview
Microbenchmarking with Maven
Benchmarking options
Techniques for avoiding microbenchmarking pitfalls
Summary
Chapter 9: Making Use of the ProcessHandle API
What are processes?
The new ProcessHandle interface
Getting the PID of the current process
Getting information about a process
Listing processes
Waiting for processes
Terminating processes
A small process controller application
Summary
Chapter 10: Fine-Grained Stack Tracing
Overview of the Java Stack
The importance of stack information
Working with StackWalker
StackFrame
Performance
Summary
Chapter 11: New Tools and Tool Enhancements
The new HTTP client [JEP-110]
Simplified Doclet API [JEP-221]
HTML5 Javadoc [JEP-224]
Javadoc search [JEP-225]
Remove launch-time JRE version selection [JEP-231]
Parser API for Nashorn [JEP-236]
Multi-release JAR files [JEP-238]
Java-level JVM compiler interface [JEP-243]
BeanInfo annotations [JEP-256]
TIFF image input/output [JEP-262]
Platform logging API and service [JEP-264]
XML Catalogs [JEP-268]
Convenience factory methods for collections [JEP-269]
Platform-specific desktop features [JEP-272]
Enhanced method handles [JEP-274]
Enhanced deprecation [JEP-277]
Summary
Chapter 12: Concurrency and Reactive Programming
Reactive Programming
The New Flow API
Additional Concurrency Updates
Spin-Wait Hints
Summary
Chapter 13: Security Enhancements
Datagram Transport Layer Security
Creating PKCS12 keystores
Improving security application performance
TLS application-layer protocol negotiation extension
Leveraging CPU instructions for GHASH and RSA
OCSP stapling for TLS
DRBG-based SecureRandom implementations
Summary
Chapter 14: Command Line Flags
Unified JVM Logging [JEP 158]
Compiler control [JEP 165]
Diagnostic commands [JEP 228]
Heap profiling agent [JEP 240]
Removing your JHAT [JEP 241]
JVM command-line flag argument validation [JEP 245]
Compile for older platform versions [JEP 247]
Summary
Chapter 15: Best Practices In Java 9
Support for UTF-8
Unicode 7.0.0
The Linux/AArch64 port
Multi-resolution Images
Common Locale Data Repository (CLDR)
Summary
Chapter 16: Future Directions
Future Changes to the JDK
Future changes to the Java Compiler
Future Changes to the Java Virtual Machine
Future Changes to JavaX
Ongoing Special Projects
Summary
Chapter 17: Introduction
New features in Java 8
New features in Java 9
Projects
Getting started
Summary
Chapter 18: Managing Processes in Java
Creating a project
Bootstrapping the application
Defining the user interface
Initializing the user interface
Adding menus
Updating the process list
Summary
Chapter 19: Duplicate File Finder
Getting started
Building the library
Building the command-line interface
Building the graphical user interface
Summary
Chapter 20: Date Calculator
Getting started
Building the library
Building the command-line interface
Summary
Chapter 21: Sunago - A Social Media Aggregator
Getting started
Adding a network - Twitter
Adding another network - Instagram
Summary
Chapter 22: Sunago - An Android Port
Getting started
Building the user interface
Summary
Chapter 23: Email and Spam Management with MailFilter
Getting started
A brief look at the history of email protocols
Summary
Chapter 24: Photo Management with PhotoBeans
Getting started
Bootstrapping the project
NetBeans modules
TopComponent - the class for tabs and windows
Nodes, a NetBeans presentation object
Lookup, a NetBeans fundamental
Writing our own nodes
Performing Actions
Services - exposing decoupled functionality
Summary
Chapter 25: Taking Notes with Monumentum
Getting started
Summary
Chapter 26: Serverless Java
Getting started
Planning the application
Building your first function
Summary
Chapter 27: DeskDroid - A Desktop Client for Your Android Phone
Getting started
Creating the Android project
Server-sent events
Creating the desktop application
Summary
Chapter 28: What is Next?
Looking back
Looking forward
Looking around
Summary

Book Details

ISBN 139781788832823
Paperback910 pages
Read More

Read More Reviews

Recommended for You

Hands-On Enterprise Application Development with Java 9 [Video] Book Cover
Hands-On Enterprise Application Development with Java 9 [Video]
$ 124.99
$ 10.00
Learning Java 9 – Modular Programming [Video] Book Cover
Learning Java 9 – Modular Programming [Video]
$ 124.99
$ 10.00
Java 9 Dependency Injection Book Cover
Java 9 Dependency Injection
$ 35.99
$ 10.00
Cucumber with Java Build Automation Framework in Less Code [Video] Book Cover
Cucumber with Java Build Automation Framework in Less Code [Video]
$ 195.99
$ 10.00
Maven Tutorial - Manage Java Dependencies in 20 Steps [Video] Book Cover
Maven Tutorial - Manage Java Dependencies in 20 Steps [Video]
$ 192.99
$ 10.00
Building Web Services with Java EE 8 [Video] Book Cover
Building Web Services with Java EE 8 [Video]
$ 124.99
$ 10.00