Ryan Cuprak is an CPG & Retail, Formulation R&D Development Senior Manager at Dassault Systemes, co-author EJB in Action 2nd Edition from Manning and the NetBeans Certification Guide from McGrall-Hill. He is also president of the Connecticut Java Users Group since 2003. Ryan is a JavaOne Rockstar Presenter. At Dassault Systemes he works on the ENOVIA Enginuity chemical formulation software and is involved in desktop and backend server development as well as client data migrations. Prior to joining DS, Ryan worked for a distributed computing company, TurboWorx, and also Eastman Kodak’s Molecular imaging Systems group, now part of Burker. Ryan earned a BS in computer science and biology from Loyola University Chicago.
Migrating to Modules
Java has finally shipped with modules! You’ve attended presentations and read articles about Java 9 modules, but how do you actually go about modularizing an application? This session will present a practical example in which an application is modularized. Application architecture, dependencies, and tooling will be covered. Hopefully this will give you a better idea of what is involved in modularizing an application and the benefits it provides.
Exploring Java Heap Dumps
Memory leaks are not always simple or easy to find. Heap dumps from production systems are often gigantic (4+ gigs) with millions of objects in memory. Simple spot checking with traditional tools is woefully inadequate in these situations, especially with real data. Leaks can be entire object graphs with enormous amounts of noise. This session will show you how to build custom tools using the Apache NetBeans Profiler/Heapwalker APIs. Using these APIs, you can read and analyze Java heaps programmatically to ask really hard questions. This gives you the power to analyze complex object graphs with tens of thousands of objects in seconds.
Introduction to CDI
Contexts and Dependency was introduced in Java EE 6 and has since become a core technology. This lab will cover the basic features of CDI 1 and 2. Everything from injection and scopes to decorators, transactions, concurrency, and testing will be covered.