Virgo is an open source, OSGi-based, Java application server. Virgo supports the deployment of OSGi bundles and unmodified Javaweb applications as well as OSGi-influenced Shared Libraries WARs and Shared Services WARs. Virgo is based on the Equinox OSGi implementation, part of the Eclipse project. A few different distributions of Virgo exist: Virgo Nano, Virgo Kernel, Virgo Server for Apache Tomcat and Virgo Jetty Server. Virgo Server for Apache Tomcat is the primary distribution for OSGi development. Virgo uses Spring Framework which is embedded and made available as a run-time dependency to deployed applications. Virgo is licensed using the Eclipse Public License. Virgo was originally developed as SpringSource dm Server by SpringSource and is currently maintained by the Eclipse Foundation. SpringSource is now a division of VMware.
History
The SpringSource dm Server was originally announced as the SpringSource Application Platform on April 30, 2008. Version 1.0 of the SpringSource dm Server was released September 30, 2008. Version 2.0 was released January 12, 2010. SpringSource donated dm Server to Eclipse as the later in 2010. In 2013 SpringSource contributions to Eclipse Virgo came to an end and the team members got reallocated to different projects. In absence of a lead, the Virgo project was about to be archived until stepped in as the new project lead.
IDE">Integrated development environment">IDE Tools
Eclipse Virgo is supported by a set of Eclipse plug-ins called Virgo Tools which allow using the Eclipse IDE for the development and testing of OSGi applications against an embedded Virgo test environment. The tools support hot deploy of individual bundles and allow deployment of plan files.
Feature summary
Web admin console - deploy and manage artifacts, examine diagnostic dumps, and explore bundle wiring, either in a live system or offline following a resolution failure
Gogo shell - manage Virgo and deployed artifacts using a command line shell accessed via ssh or telnet
Plans - define the artifacts that compose an application, optionally making the application atomic to tie the artifact lifecycles together, and scoped to isolate the application from other applications
Provisioning - automatically supply the dependencies of an application including bundles, plans, plan archives, and configurations, from both local and remote repositories
Web container - supports vanilla WAR files, with all their dependencies in WEB-INF/lib, and Web Application Bundles, that import their dependencies via OSGi manifest metadata, via the reference implementation of the OSGi Web Container specification, based on embedded Apache Tomcat and configured using the standard Tomcat server.xml
User region - isolates the kernel from user-installed applications and enables administrators to focus on application artifacts and their dependencies without seeing those of the kernel as well
Spring – Virgo 3.6.2 packages Spring 3.1.x, Virgo 3.7 packages Spring 4.2.x
Hot deployment - deploy artifacts to Virgo by copying them into the pickup directory, either in archive or exploded form, as an alternative to deploying via the admin console or shell
Logging - via embedded LogBack with a rich set of appenders available out of the box
JMX management, accessed via the admin console, the shell, the Virgo IDE tooling, or directly via a JMX client such as JConsole