Virgo is an open source, OSGi-based, Java application server. Virgo supports the deployment of OSGi bundles and unmodified Java web applications as well as OSGi-influenced Shared Libraries WARs and Shared Services WARs.Virgo Programmer Guide, section 3.1

Virgo is based on the Equinox OSGi implementation, part of the Eclipse project. A few different distributions of Virgo exist:Virgo Deliverables Virgo Nano, Virgo Kernel, Virgo Server for Apache Tomcat (embedding the Apache Tomcat servlet container) and Virgo Jetty Server (embedding the Eclipse Jetty servlet container). 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 dm Server product pageEclipse Virgo home page SpringSource is now a division of VMware.

History

The SpringSource dm Server was originally announced as the SpringSource Application Platform on April 30, 2008.Introducing the SpringSource Application Platform Version 1.0 of the SpringSource dm Server was released September 30, 2008.SpringSource dm Server 1.0.0 reaches GA Version 2.0 was released January 12, 2010.dm Server 2.0.0 released

SpringSource donated dm Server to Eclipse as the Virgo project later in 2010.Eclipse Virgo Released

In 2013 SpringSource contributions to Eclipse Virgo came to an end and the team members got reallocated to different projects.Mailing list message about lead step down In absence of a lead, the Virgo project was about to be archivedForum post about project archival until Florian Waibel stepped in as the new project lead.InfoQ interview with Florian Waibel

IDE Tools

Eclipse Virgo is supported by a set of Eclipse plug-ins called Virgo ToolsVirgo Tools Wiki page 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.Virgo Tools documentation

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 (PARs), 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

References

https://www.researchgate.net/publication/341090703_Application_Lifecycle_Management_for_Industrial_IoT_Devices_in_Smart_Grid_Use_Cases#pf3

External links