Increasing complexity in modern enterprise applications is a fact of life. Developers not only have to deal with complex business logic, but also a myriad of other concerns such as security, auditing, exposing business functionality to external applications, and managing the evolution of these concerns. The Spring Framework addresses these needs by offering a Plain-Old Java Object (POJO) based solution that lets you focus on your business logic.

Complex applications pose problems that go beyond using the right set of technologies. You need to take into account other considerations such as a simplified development process, easy deployment, monitoring deployed applications, and managing changes in response to changing business needs. This is where the Virgo Server comes into play. It offers a simple yet comprehensive platform to develop, deploy, and service enterprise applications. In this Programmer Guide, we explore the runtime portions of the Virgo Server, the Virgo Server for Apache Tomcat, Virgo Jetty Server and the Virgo Kernel, and learn how to develop applications to benefit from their capabilities.

A Note to Virgo Kernel Programmers

Although this guide is written primarily for Virgo Server for Apache Tomcat programmers, much of it is also useful for Virgo Kernel programmers who should simply ignore the web-related sections.

A Note to Virgo Nano Programmers

This guide is written primarily for Virgo Server for Apache Tomcat programmers. Although a base version of Virgo Nano, without the new provisioning system, is used to build the Virgo Server for Apache Tomcat, much of this guide does not apply to Virgo Nano. The VN lacks regions support but has much improved runtime footprint and startup time and also provides support for p2 provisioning. The Virgo Nano features are covered better in the User Guide.