Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Virgo/Future"

(Jetty Support)
m (Release Branding)
(125 intermediate revisions by 7 users not shown)
Line 1: Line 1:
[[Category:Virgo]] [[Category:EclipseRT]]
 
 
{{Virgo}}
 
{{Virgo}}
This page notes design ideas for future Virgo features.  
+
This page summarises the Virgo plan and notes design ideas for future Virgo features.  
  
== Jetty Support ==
+
= Virgo Plan =
  
Note that Jetty support may be provided mostly in Virgo's sister project Gemini Web. The Tomcat-based Virgo Web Server integrates Gemini Web and a Jetty-based variant may do the same.
+
The following plan is subject to change and depends on how much resource is available as the project evolves.  
  
Ideally this will allow arbitrary versions of Jetty (and preferably also Tomcat) to be swapped in. This seems feasible for Jetty but perhaps not for Tomcat. For Jetty, we need to make sure we use stable APIs which will be continue to work as Jetty evolves.
+
== 3.7.0 (Steel) Release ==
  
=== Bootstrapping Jetty ===
+
* Upgrade to Gemini Blueprint 2.0
 +
* TBD, but see the [https://bugs.eclipse.org/bugs/show_bug.cgi?id=396813 Steel bugtrain bug 396813].
  
Jetty already supports [[Jetty/Feature/Jetty_OSGi#Jetty_bootstrapping_in_OSGi|bootstrapping inside OSGi]]. The Jetty bootstrapping bundle 'org.eclipse.jetty.osgi.boot' can easily be included in the list of initial artifacts automatically deployed into the user region during Virgo startup.
+
== 4.0.0 (Cobalt) Release ==
  
=== Deploying Web Bundles ===
+
* Upgrade to Gemini Management 2.0
 +
* Support Equinox unity (my suggestion, it may now be called something different) - see [https://bugs.eclipse.org/bugs/show_bug.cgi?id=404390 bug 404390]
 +
* Upgrade to Gemini Web 3.0 (Embedded Apache Tomcat 8.0.x) - this is a plan and it still is not finalized
  
Jetty already supports [[Jetty/Feature/Jetty_OSGi#Deployment_of_web-applications_via_OSGi|deployment of OSGi web applications]].
+
== Release Branding  ==
  
After Jetty is bootstrapped in the OSGi framework, web bundles may be deployed directly to Jetty using the whiteboard pattern.
+
To accommodate simultaneous releases of Virgo runtime, OSGi Web Container runtime, and Virgo tooling, we are branding each release with the name of a colour, including old releases.  
  
A ContextHandler service must be registered with appropriate service properties. Presumably the bundle registering the service is the web bundle itself, although this is not clear from the Jetty documentation above which refers to the registering bundle as a 'contributor'. It is not clear whether the contributor is a bundle which is contributing some other web bundle or whether the contributor is the web bundle itself (in which case why should it be called 'contributor'?).
+
{| class="wikitable" border="1" cellpadding="10" cellspacing="0"
 +
|+ '''''Virgo Release Branding and Component Versions'''''
 +
|-
 +
! Brand
 +
! Runtime
 +
! Web Container
 +
! Blueprint
 +
! Spring Framework
 +
! Management
 +
! Eclipse IDE Tooling
 +
|-
 +
| Fern || SpringSource dm Server 1.0.x || Embedded Apache Tomcat 6.0.x || Spring DM 1.1.x || 2.5.6.A || - || -
 +
|-
 +
| Emerald || SpringSource dm Server 2.0.x || OSGi Web Container 1.0.x <br> (Embedded Apache Tomcat 6.0.x) || Spring DM 1.2.1 || 3.0.0.RELEASE || - || -
 +
|-
 +
| Cornflower || Virgo 2.1.x || Gemini Web 1.1.x <br> (Embedded Apache Tomcat 6.0.x) || Spring DM 1.2.1 || 3.0.0.RELEASE || - || -
 +
|-
 +
| Maya || Virgo 3.0.x || Gemini Web 2.0.x <br> (Embedded Apache Tomcat 7.0.x) || Spring DM 1.2.1 || 3.0.5.RELEASE || - || -
 +
|-
 +
| Bondi || Virgo 3.5 || Gemini Web 2.1 <br> (Embedded Apache Tomcat 7.0.x) || Gemini Blueprint 1.0 || 3.0.5.RELEASE || Gemini Management 1.0.2  || Virgo IDE 1.0
 +
|-
 +
| Sky || Virgo 3.6.x || Gemini Web 2.2.x <br> (Embedded Apache Tomcat 7.0.x) || Gemini Blueprint 1.0.2 || 3.1.0.RELEASE || Gemini Management 1.0.x || Virgo IDE 1.0.1
 +
|-
 +
| Steel || Virgo 3.7 || Gemini Web 2.2.x <br> (Embedded Apache Tomcat 7.0.x) || Gemini Blueprint 2.0  || 4.2.x.RELEASE || Gemini Management 1.0.5 || Virgo IDE 1.5
 +
|-
 +
| Cobalt || Virgo 4.0 || Gemini Web 3.0.x <br> (Embedded Apache Tomcat 8.0.x) || Gemini Blueprint 2.0  || 4.2.x.RELEASE || Gemini Management 2.0 || Virgo IDE 1.5
 +
|}
  
Assuming that the contributor is the web bundle itself, Virgo will need to create a ContextHandler service each time a web bundle starts.
+
Note 1: we are steering clear of the following "wimp list" of colours: [http://www.microsoft.com/windowsazure/ Azure], [http://www.eclipse.org/indigo/ Indigo].
  
If deployment of the web application fails, the failure must be reported back on the thread which initiated deployment. A problem with the whiteboard pattern is that errors are not easily detected. Perhaps Jetty provides some way to listen for successful or failed deployment of a particular web bundle?
+
Note 2: the SpringSource dm Server releases are shades of green because of the SpringSource branding. Virgo has cornflower blue in its logo and admin console styling, so we chose shades of blue for Virgo releases.
  
=== Deploying WAR Files ===
+
= Future Directions =
  
Jetty supports deploying WAR files by installing the WAR file as a bundle using the "war:" URL scheme. However, Virgo supports deploying WAR files via all its standard deployment mechanisms which ultimately drive the deployer API. We could either drive installation using the "war:" scheme or, for consistency with Virgo's existing support for WARs including the way errors are detected and handled, we could continue to transform WARs into web bundles using the transformation support in Gemini Web.
+
Support for the OSGi Subsystems specification is deferred indefinitely ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=358437#c4 rationale]), except for [https://bugs.eclipse.org/bugs/show_bug.cgi?id=358441 generalising the InstallArtifact tree to a DAG] which was implemented in Virgo 3.5.0 (see the Kernel Enhancements section of the [http://www.eclipse.org/virgo/download/release-notes/3.5.0.RELEASE.php Virgo 3.5.0 release notes]).
 
+
=== Class Loading ===
+
 
+
Need to ensure correct class loading and resource lookup in the single bundle case as well as the case of a web bundle inside a scoped plan.
+
 
+
Need to support class loader customisation, throw-away class loaders, etc. as in the current Virgo web support.
+
 
+
=== Logging ===
+
 
+
Need to ensure Jetty's logs feed in to the appropriate Virgo Medic logs.
+
 
+
Also need to support per-application logging.
+

Revision as of 05:05, 4 April 2016


This page summarises the Virgo plan and notes design ideas for future Virgo features.

Virgo Plan

The following plan is subject to change and depends on how much resource is available as the project evolves.

3.7.0 (Steel) Release

4.0.0 (Cobalt) Release

  • Upgrade to Gemini Management 2.0
  • Support Equinox unity (my suggestion, it may now be called something different) - see bug 404390
  • Upgrade to Gemini Web 3.0 (Embedded Apache Tomcat 8.0.x) - this is a plan and it still is not finalized

Release Branding

To accommodate simultaneous releases of Virgo runtime, OSGi Web Container runtime, and Virgo tooling, we are branding each release with the name of a colour, including old releases.

Virgo Release Branding and Component Versions
Brand Runtime Web Container Blueprint Spring Framework Management Eclipse IDE Tooling
Fern SpringSource dm Server 1.0.x Embedded Apache Tomcat 6.0.x Spring DM 1.1.x 2.5.6.A - -
Emerald SpringSource dm Server 2.0.x OSGi Web Container 1.0.x
(Embedded Apache Tomcat 6.0.x)
Spring DM 1.2.1 3.0.0.RELEASE - -
Cornflower Virgo 2.1.x Gemini Web 1.1.x
(Embedded Apache Tomcat 6.0.x)
Spring DM 1.2.1 3.0.0.RELEASE - -
Maya Virgo 3.0.x Gemini Web 2.0.x
(Embedded Apache Tomcat 7.0.x)
Spring DM 1.2.1 3.0.5.RELEASE - -
Bondi Virgo 3.5 Gemini Web 2.1
(Embedded Apache Tomcat 7.0.x)
Gemini Blueprint 1.0 3.0.5.RELEASE Gemini Management 1.0.2 Virgo IDE 1.0
Sky Virgo 3.6.x Gemini Web 2.2.x
(Embedded Apache Tomcat 7.0.x)
Gemini Blueprint 1.0.2 3.1.0.RELEASE Gemini Management 1.0.x Virgo IDE 1.0.1
Steel Virgo 3.7 Gemini Web 2.2.x
(Embedded Apache Tomcat 7.0.x)
Gemini Blueprint 2.0 4.2.x.RELEASE Gemini Management 1.0.5 Virgo IDE 1.5
Cobalt Virgo 4.0 Gemini Web 3.0.x
(Embedded Apache Tomcat 8.0.x)
Gemini Blueprint 2.0 4.2.x.RELEASE Gemini Management 2.0 Virgo IDE 1.5

Note 1: we are steering clear of the following "wimp list" of colours: Azure, Indigo.

Note 2: the SpringSource dm Server releases are shades of green because of the SpringSource branding. Virgo has cornflower blue in its logo and admin console styling, so we chose shades of blue for Virgo releases.

Future Directions

Support for the OSGi Subsystems specification is deferred indefinitely (rationale), except for generalising the InstallArtifact tree to a DAG which was implemented in Virgo 3.5.0 (see the Kernel Enhancements section of the Virgo 3.5.0 release notes).

Back to the top