Virgo (software)

Last updated
Virgo
Original author(s) SpringSource
Developer(s) Eclipse Foundation
Stable release
3.7.4 [1] / August 8, 2020;19 months ago (2020-08-08)
Written in Java
Operating system Cross-platform
Type Application server
License EPL-1.0
Website www.eclipse.org/virgo/ OOjs UI icon edit-ltr-progressive.svg

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. [2]

Contents

Virgo is based on the Equinox OSGi implementation, part of the Eclipse project. A few different distributions of Virgo exist: [3] 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. [4] [5] SpringSource is now a division of VMware.

History

The SpringSource dm Server was originally announced as the SpringSource Application Platform on April 30, 2008. [6] Version 1.0 of the SpringSource dm Server was released September 30, 2008. [7] Version 2.0 was released January 12, 2010. [8]

SpringSource donated dm Server to Eclipse as the Virgo project later in 2010. [9]

In 2013 SpringSource contributions to Eclipse Virgo came to an end and the team members got reallocated to different projects. [10] In absence of a lead, the Virgo project was about to be archived [11] until Florian Waibel stepped in as the new project lead. [12]

IDE Tools

Eclipse Virgo is supported by a set of Eclipse plug-ins called Virgo Tools [13] 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. [14]

Feature summary

Related Research Articles

OSGi

The OSGi Alliance is an open standards organization for computer software founded in March 1999. They originally specified and continue to maintain the OSGi standard. The OSGi specification describes a modular system and a service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments.

A web container is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access-rights. A web container handles requests to servlets, Jakarta Server Pages (JSP) files, and other types of files that include server-side code. The Web container creates servlet instances, loads and unloads servlets, creates and manages request and response objects, and performs other servlet-management tasks. A web container implements the web component contract of the Jakarta EE architecture. This architecture specifies a runtime environment for additional web components, including security, concurrency, lifecycle management, transaction, deployment, and other services.

Apache Tomcat Java-based HTTP web server environment

Apache Tomcat is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. Tomcat provides a "pure Java" HTTP web server environment in which Java code can run.

Eclipse (software) Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.

JOnAS

JOnAS is an open-source implementation of the Java EE application server specification, developed and hosted by the OW2 consortium, having been originally been created by Groupe Bull. JOnAS is released under the LGPL 2.1 open-source license.

Apache Geronimo

Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license.

WebSphere Application Server Community Edition (WASCE) was a free-of-charge, certified Java EE 6 application server for building and managing Java applications. Until September 30, 2016, it was IBM's supported distribution of Apache Geronimo that usee Tomcat for servlet container and Axis 2 for web services. Another difference from Apache Geronimo is that WASCE came with DB2 and Informix database drivers, better XML parser libraries and contained the latest patches from unreleased upstream versions. Over 30 WASCE developers were committers in the Apache Geronimo project.

GlassFish

GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by Payara, Oracle and Red Hat. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).

Eclipse Jetty is a Java web server and Java Servlet container. While web servers are usually associated with serving documents to people, Jetty is now often used for machine to machine communications, usually within larger software frameworks. Jetty is developed as a free and open source project as part of the Eclipse Foundation. The web server is used in products such as Apache ActiveMQ, Alfresco, Scalatra, Apache Geronimo, Apache Maven, Apache Spark, Google App Engine, Eclipse, FUSE, iDempiere, Twitter's Streaming API and Zimbra. Jetty is also the server in open source projects such as Lift, Eucalyptus, OpenNMS, Red5, Hadoop and I2P. Jetty supports the latest Java Servlet API as well as protocols HTTP/2 and WebSocket.

EasyBeans is an open-source Enterprise JavaBeans (EJB) container hosted by the OW2 Consortium. The License used by EasyBeans is the LGPL. EasyBeans is the EJB 3.0 container of the JOnAS application server.

Apache Felix

Apache Felix is an open source implementation of the OSGi Core Release 6 framework specification. The initial codebase was donated from the Oscar project at ObjectWeb. The developers worked on Felix for a full year and have made various improvements while retaining the original footprint and performance. On June 21, 2007, the project graduated from incubation as a top level project and is considered the smallest size software at Apache Software Foundation.

Apache CXF is an open source software project developing a Web services framework. It originated as the combination of Celtix developed by IONA Technologies and XFire developed by a team hosted at Codehaus in 2006. These two projects were combined by people working together at the Apache Software Foundation and the name "CXF" was derived by combining "Celtix" and "XFire".

JBoss Tools is a set of Eclipse plugins and features designed to help JBoss and JavaEE developers develop applications. It is an umbrella project for the JBoss developed plugins that will make it into JBoss Developer Studio.

Spring was the company created by the founders of the Spring Framework to support and develop Spring and related projects. Originally incorporated as Interface 21, it was renamed SpringSource in 2008 to better reflect its main business. Over time most of the Spring developers were employed full-time by the company which offered training and consulting services to finance its activities. The company was then renamed as Spring. Recognizing that the platform of choice for most Spring applications was Apache Tomcat, Spring merged with Covalent on January 29, 2008. Like Spring, Covalent was the financial vehicle supporting some of the developers of Tomcat.

Spring Roo Open-source software tool

Spring Roo is an open-source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Thymeleaf, Apache Maven and AspectJ. Spring Roo is a member of the Spring portfolio of projects.

Apache Aries

Apache Aries, a Blueprint Container implementations and extensions of application-focused specifications defined by OSGi Enterprise Expert Group. The project aims to deliver a set of pluggable Java components enabling an enterprise OSGi application programming model. The Aries project Content includes the following:

OpenEJB is an open-source, embeddable and lightweight Enterprise JavaBeans Container System and EJB Server, released under the Apache License 2.0. OpenEJB has been integrated with Java EE application servers such as Geronimo and WebObjects.

iDempiere

iDempiere. Community Powered Enterprise, also known as OSGi + ADempiere, is an open source Enterprise Resource Planning (ERP) software that is fully navigable on PCs, tablets and smartphones, it also has customer relationship management (CRM) and supply chain management (SCM) functions. It is in contrast to proprietary or most other open source ERP solutions driven only by a community of supporters.

References