Welcome to GaryGregory. I am a software developer based in Los Angeles, California; always building...

 Java Persistence with Hibernate 2nd Edition

by Christian Bauer, Gavin King, Gary Gregory

Persistence—the ability of data to outlive an instance of a program—is central to modern applications. Hibernate, the most popular Java persistence tool, offers automatic and transparent object/relational mapping, making it a snap to work with SQL databases in Java applications.

Java Persistence with Hibernate explores Hibernate by developing an application that ties together hundreds of individual examples. You’ll immediately dig into the rich programming model of Hi-bernate, working through mappings, queries, fetching strategies, transactions, conversations, caching, and more. Along the way you’ll fi nd a well-illustrated discussion of best practices in data-base design and optimization techniques. In this revised edition, authors Christian Bauer, Gavin King, and Gary Gregory cover Hibernate 5 in detail with the Java Persistence 2.1 standard (JSR338). All examples have been updated for the latest Hibernate and Java EE specifi cation versions.

What’s Inside

The book assumes a working knowledge of Java.

 JUnit in Action 2nd Edition

by Tahchiev, Leme, Massol, Gregory

JUnit is the leading Java unit testing framework and its version 4.8 signifi cantly improves the Java development process. Designed for productivity, it has extensions for newer appli-cation styles—like Ajax and HTML-based presentation layers—and for application frameworks like EJB and OSGi.

JUnit in Action, Second Edition is an entirely revised and up-to-date guide to unit testing Java applications. It provides tech-niques for solving real-world problems such as using mocks for testing isolation, in-container testing for Java EE and database applications, and test automation. In an example-driven style, it covers JUnit 4.8 innovations such as the new annotations that simplify test writing, improved exception handling, and the new assertion methods. Along the way, you’ll learn to integrate JUnit with other important open source frameworks and tools.

What’s Inside

 Spring Batch in Action

by Cogoluègnes, Templier, Gregory, Bazoud

Even though running batch jobs is a common task, there’s no standard way to write them. Spring Batch is a framework for writing batch applications in Java. It includes reusable components and a solid runtime environment, so you don’t have to start a new project from scratch. And it uses Spring’s familiar programming model to simplify confi guration and implementation, so it’ll be comfortably familiar to most Java developers.

Spring Batch in Action is a thorough, in-depth guide to writing effi cient batch applications. Starting with the basics, it discusses the best practices of batch jobs along with details of the Spring Batch framework. You’ll learn by working through dozens of practical, reusable examples in key areas like monitoring, tuning, enterprise integration, and automated testing.

What’s Inside

No prior batch programming experience is required. Basic knowledge of Java and Spring is assumed.

Free Open Source Software

If you want to join me in building Free Open Source Software, please visit:

Apache Log4j 1 Goodies

Apache Log4j 2 Goodies

Comming soon.

JCommander Add-ons

The goal of the JCommander-Addons project is to provide any and all JCommander converters and validators an advanced applications will need.

Feel free to submit a pull-request and examine the sources and build site.

Continuous Integration  Coverage Status


Gary Gregory

Gary Gregory has been involved with all aspects of software development for the past 20 years and has co-authored three books on Java:

He has lead software development teams and delivered products. He is experienced in all aspects of software development: design, development, requirements analysis, technology assessment, documentation, and project management. He has been a team leader for developing system architecture, components, and frameworks including RDBMS interfaces and object-oriented class libraries. Gary has delivered application servers for Rocket Software, Seagull Software, object-oriented tools for ParcPlace-Digialk and relational database frameworks for Nevis Technologies and Ashton-Tate.

He graduated from the University of California at Los Angeles, with a B.A. in Linguistics and Computer Science.

He is an active member of The Apache Software Foundation, the Apache Project Management Committee for the Apache Commons, Apache Logging (Log4j), Apache HttpComponents and Apache Xalan projects.