O'Reilly logo
live online training icon Live Online training

Java Next Steps: Modules

Effectively migrating legacy Java applications

Topic: Software Development
Venkat Subramaniam

Java programmers perceive the introduction of modules as either the most significant or the most disruptive change to the language yet. It turns out both viewpoints are reasonable—and understanding why is critical to choosing whether (and when) to migrate legacy Java applications to use modules.

Join expert Venkat Subramaniam to learn why modules were introduced in Java and what key benefits they provide, as well as the trade-offs when adopting them. Then you’ll get straight into code and learn how to create modules as you explore the different configuration options and how they affect the behavior at both compile time and runtime. Along the way, you’ll learn the most prudent pathway to modularizing your existing Java applications.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • What problems modules solve and how you can benefit from using them
  • How to create modules and the consequences of using them
  • How to migrate from legacy to modularized Java applications

And you’ll be able to:

  • Decide if and when to modularize your applications
  • Effectively modularize your own applications
  • Govern modularization of Java applications in your enterprise

This training course is for you because...

  • You’re an architect, lead developer, or programmer working with large Java applications.
  • You work with enterprise Java applications.
  • You want to become proficient in modularizing Java applications.


Recommended preparation:

Recommended follow-up:

About your instructor

  • Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, co-founder of the devdotnext software conference, and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects. Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.


The timeframes are only estimates and may vary according to how the class is progressing

Benefits of modularization in Java (55 minutes)

  • Presentation: Why modularize; why now
  • Group discussion: What do you gain from modularization?; configurations and related limitations
  • Hands-on exercise: Create modules in Java
  • Q&A

Break (5 minutes)

Working with multiple modules (55 minutes)

  • Presentation: Visibility; implied readability; opening for reflection
  • Hands-on exercises: Create multiple modules; perform reflective access
  • Group discussion: How to design modules and dependencies
  • Q&A

Break (5 minutes)

Using the Service Loader API (55 minutes)

  • Presentation: Discovering modules dynamically
  • Hands-on exercise: Implement services and clients to discover them
  • Group discussion: Why and when to use the Service Loader API
  • Q&A

Break (5 minutes)

From legacy to modularized applications (60 minutes)

  • Presentation: Working with legacy JARs; the path of migration from legacy to modularized code
  • Hands-on exercise: Transition from legacy code to modules
  • Group discussion: How to deal with dependencies, both old and new
  • Q&A