Jump to: navigation, search


< Virgo
Revision as of 03:56, 28 June 2010 by Gnormington.vmware.com (Talk | contribs) (Migrating from the dm Server slices prototype to the Virgo snaps prototype)

You can join the Virgo community by tweeting about #virgort, subscribing to the virgo-dev mailing list, or using bugzilla. 


There is a weekly, one hour call at 14:00 UTC on Tuesdays to discuss Virgo. See meetings for details.



Please read the Eclipse.org Terms of Use before making any contribution. Check out the flow chart in the Eclipse Legal Process poster. In particular, please make sure that you wrote 100% of the contribution and did not copy content from elsewhere or rely on the intellectual property of others.

Then attach your code or patch to a bugzilla bug so that the necessary due diligence and IP checks can be performed.

You should probably discuss large contributions (more than 250 lines of code and/or configuration) on the virgo-dev mailing list first so everyone knows what's going on.

Contributions should include unit tests whenever possible. This ensures that the contributed code is well structured and can be unit tested as well as preventing a technical debt of untested code.

Take Virgo for a spin

If you want to take the Virgo web server for a spin, first download it and unpack the downloaded archive to a directory, which we will refer to as $SERVER_HOME, ensuring there are no spaces in the path of the directory. On Windows unzip to a directory, which we will refer to as %SERVER_HOME%, again ensuring there are no spaces in the path of the directory. We recommend 7zip for unpacking on Windows as the built-in zip extraction utility sometimes fail to unpack reliably.

Then start the Virgo web server. On Unix, issue the following commands from a shell:


On Windows, issue the following commands in a command prompt:


Virgo should issue event log messages like this:

[2010-06-04 10:55:48.236] startup-tracker              <KE0001I> Kernel starting. 
[2010-06-04 10:55:52.078] kernel-dm-11                 <SH0001I> Kernel ssh shell available on port 2401. 
[2010-06-04 10:55:52.197] startup-tracker              <KE0002I> Kernel started. 
[2010-06-04 10:55:52.308] system-artifacts             <DE0000I> Installing plan 'org.eclipse.virgo.kernel.userregion.springdm' version '2.1.0'. 
[2010-06-04 10:55:52.476] system-artifacts             <DE0000I> Installing bundle 'org.springframework.osgi.core' version '1.2.1'. 
[2010-06-04 10:55:52.594] system-artifacts             <DE0000I> Installing bundle 'org.springframework.osgi.extender' version '1.2.1'. 
[2010-06-04 10:55:52.612] system-artifacts             <DE0000I> Installing bundle 'org.springframework.osgi.io' version '1.2.1'. 
[2010-06-04 10:55:52.631] system-artifacts             <DE0000I> Installing bundle 'org.eclipse.virgo.kernel.agent.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:52.666] system-artifacts             <DE0000I> Installing bundle 'org.eclipse.virgo.kernel.deployer.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:54.129] system-artifacts             <DE0001I> Installed bundle 'org.springframework.osgi.core' version '1.2.1'. 
[2010-06-04 10:55:54.133] system-artifacts             <DE0001I> Installed bundle 'org.springframework.osgi.extender' version '1.2.1'. 
[2010-06-04 10:55:54.137] system-artifacts             <DE0001I> Installed bundle 'org.springframework.osgi.io' version '1.2.1'. 
[2010-06-04 10:55:54.141] system-artifacts             <DE0001I> Installed bundle 'org.eclipse.virgo.kernel.agent.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:54.145] system-artifacts             <DE0001I> Installed bundle 'org.eclipse.virgo.kernel.deployer.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:54.149] system-artifacts             <DE0001I> Installed plan 'org.eclipse.virgo.kernel.userregion.springdm' version '2.1.0'. 
[2010-06-04 10:55:54.183] system-artifacts             <DE0004I> Starting plan 'org.eclipse.virgo.kernel.userregion.springdm' version '2.1.0'. 
[2010-06-04 10:55:54.199] system-artifacts             <DE0004I> Starting bundle 'org.springframework.osgi.core' version '1.2.1'. 
[2010-06-04 10:55:54.209] start-signalling-1           <DE0005I> Started bundle 'org.springframework.osgi.core' version '1.2.1'. 
[2010-06-04 10:55:54.209] system-artifacts             <DE0004I> Starting bundle 'org.springframework.osgi.extender' version '1.2.1'. 
[2010-06-04 10:55:54.660] start-signalling-1           <DE0005I> Started bundle 'org.springframework.osgi.extender' version '1.2.1'. 
[2010-06-04 10:55:54.661] system-artifacts             <DE0004I> Starting bundle 'org.springframework.osgi.io' version '1.2.1'. 
[2010-06-04 10:55:54.670] start-signalling-1           <DE0005I> Started bundle 'org.springframework.osgi.io' version '1.2.1'. 
[2010-06-04 10:55:54.670] system-artifacts             <DE0004I> Starting bundle 'org.eclipse.virgo.kernel.agent.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:54.688] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.virgo.kernel.agent.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:54.688] system-artifacts             <DE0004I> Starting bundle 'org.eclipse.virgo.kernel.deployer.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:54.813] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.virgo.kernel.deployer.dm' version '2.1.0.D-20100513120258'. 
[2010-06-04 10:55:54.818] start-signalling-1           <DE0005I> Started plan 'org.eclipse.virgo.kernel.userregion.springdm' version '2.1.0'. 
[2010-06-04 10:55:54.878] system-artifacts             <DE0000I> Installing plan 'org.eclipse.virgo.web' version '2.0.0'. 
[2010-06-04 10:55:54.922] system-artifacts             <DE0000I> Installing bundle 'org.eclipse.gemini.web.core' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:54.953] system-artifacts             <DE0000I> Installing bundle 'org.eclipse.gemini.web.tomcat' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:54.969] system-artifacts             <DE0000I> Installing bundle 'org.eclipse.virgo.web.core' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:54.982] system-artifacts             <DE0000I> Installing bundle 'org.eclipse.virgo.web.dm' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:54.997] system-artifacts             <DE0000I> Installing bundle 'org.eclipse.virgo.web.tomcat' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:55.487] system-artifacts             <DE0001I> Installed bundle 'org.eclipse.gemini.web.core' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:55.492] system-artifacts             <DE0001I> Installed bundle 'org.eclipse.gemini.web.tomcat' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:55.497] system-artifacts             <DE0001I> Installed bundle 'org.eclipse.virgo.web.core' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:55.502] system-artifacts             <DE0001I> Installed bundle 'org.eclipse.virgo.web.dm' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:55.507] system-artifacts             <DE0001I> Installed bundle 'org.eclipse.virgo.web.tomcat' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:55.512] system-artifacts             <DE0001I> Installed plan 'org.eclipse.virgo.web' version '2.0.0'. 
[2010-06-04 10:55:55.540] system-artifacts             <DE0004I> Starting plan 'org.eclipse.virgo.web' version '2.0.0'. 
[2010-06-04 10:55:55.546] system-artifacts             <DE0004I> Starting bundle 'org.eclipse.gemini.web.core' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:55.575] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.gemini.web.core' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:55.576] system-artifacts             <DE0004I> Starting bundle 'org.eclipse.gemini.web.tomcat' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:56.081] system-artifacts             <TC0000I> Starting Tomcat. 
[2010-06-04 10:55:56.155] system-artifacts             <TC0010I> Creating HTTP/1.1 connector with scheme http on port 8080. 
[2010-06-04 10:55:56.180] system-artifacts             <TC0010I> Creating HTTP/1.1 connector with scheme https on port 8443. 
[2010-06-04 10:55:56.191] system-artifacts             <TC0010I> Creating AJP/1.3 connector with scheme http on port 8009. 
[2010-06-04 10:55:56.252] system-artifacts             <TC0001I> Started Tomcat. 
[2010-06-04 10:55:56.269] system-artifacts             <DE0004I> Starting bundle 'org.eclipse.virgo.web.core' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:56.281] system-artifacts             <DE0004I> Starting bundle 'org.eclipse.virgo.web.dm' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:56.294] system-artifacts             <DE0005I> Started bundle 'org.eclipse.virgo.web.tomcat' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:56.311] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.virgo.web.dm' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:56.454] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.gemini.web.tomcat' version '1.0.0.BUILD-20100330115713'. 
[2010-06-04 10:55:56.465] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.virgo.web.core' version '2.1.0.D-20100513122450'. 
[2010-06-04 10:55:56.470] start-signalling-1           <DE0005I> Started plan 'org.eclipse.virgo.web' version '2.0.0'. 
[2010-06-04 10:55:56.476] Thread-2                     <UR0001I> User region ready. 
[2010-06-04 10:55:57.482] fs-watcher                   <HD0001I> Hot deployer processing 'INITIAL' event for file 'org.eclipse.virgo.apps.admin-2.1.0.D-20100513124429.plan'. 
[2010-06-04 10:55:57.563] fs-watcher                   <DE0000I> Installing plan 'org.eclipse.virgo.apps.admin.plan' version '2.0.0'. 
[2010-06-04 10:55:57.597] fs-watcher                   <DE0000I> Installing bundle 'org.eclipse.virgo.apps.admin.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:55:59.235] fs-watcher                   <DE0000I> Installing bundle 'org.eclipse.virgo.apps.admin.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:01.872] fs-watcher                   <DE0001I> Installed bundle 'org.eclipse.virgo.apps.admin.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:01.877] fs-watcher                   <DE0001I> Installed bundle 'org.eclipse.virgo.apps.admin.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:01.881] fs-watcher                   <DE0001I> Installed plan 'org.eclipse.virgo.apps.admin.plan' version '2.0.0'. 
[2010-06-04 10:56:01.892] fs-watcher                   <DE0004I> Starting plan 'org.eclipse.virgo.apps.admin.plan' version '2.0.0'. 
[2010-06-04 10:56:01.897] fs-watcher                   <DE0004I> Starting bundle 'org.eclipse.virgo.apps.admin.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.064] fs-watcher                   <DE0004I> Starting bundle 'org.eclipse.virgo.apps.admin.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.077] Thread-3                     <WE0000I> Starting web bundle 'org.eclipse.virgo.apps.admin.web' version '2.1.0.D-20100513124429' with context path '/admin'. 
[2010-06-04 10:56:02.077] fs-watcher                   <HD0001I> Hot deployer processing 'INITIAL' event for file 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429.par'. 
[2010-06-04 10:56:02.121] start-signalling-2           <DE0005I> Started bundle 'org.eclipse.virgo.apps.admin.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.273] fs-watcher                   <DE0000I> Installing par 'org.eclipse.virgo.apps.repository' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.293] fs-watcher                   <DE0000I> Installing bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.300] fs-watcher                   <DE0000I> Installing bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.656] fs-watcher                   <DE0001I> Installed bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.660] fs-watcher                   <DE0001I> Installed bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.665] fs-watcher                   <DE0001I> Installed bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-synthetic.context' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.669] fs-watcher                   <DE0001I> Installed par 'org.eclipse.virgo.apps.repository' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.721] fs-watcher                   <DE0004I> Starting par 'org.eclipse.virgo.apps.repository' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.728] fs-watcher                   <DE0004I> Starting bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.894] fs-watcher                   <DE0004I> Starting bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.900] Thread-3                     <WE0000I> Starting web bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.web' version '2.1.0.D-20100513124429' with context path '/org.eclipse.virgo.apps.repository'. 
[2010-06-04 10:56:02.900] fs-watcher                   <DE0004I> Starting bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-synthetic.context' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.909] start-signalling-3           <DE0005I> Started bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-synthetic.context' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:02.944] fs-watcher                   <HD0001I> Hot deployer processing 'INITIAL' event for file 'org.eclipse.virgo.apps.splash-2.1.0.D-20100513124429.war'. 
[2010-06-04 10:56:03.148] fs-watcher                   <DE0000I> Installing bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:03.246] start-signalling-3           <DE0005I> Started bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.core' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:03.284] fs-watcher                   <DE0001I> Installed bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:03.384] fs-watcher                   <DE0004I> Starting bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:03.388] Thread-3                     <WE0000I> Starting web bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.D-20100513124429' with context path '/'. 
[2010-06-04 10:56:03.764] Thread-3                     <WE0001I> Started web bundle 'org.eclipse.virgo.apps.admin.web' version '2.1.0.D-20100513124429' with context path '/admin'. 
[2010-06-04 10:56:03.774] start-signalling-1           <DE0005I> Started bundle 'org.eclipse.virgo.apps.admin.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:03.783] start-signalling-1           <DE0005I> Started plan 'org.eclipse.virgo.apps.admin.plan' version '2.0.0'. 
[2010-06-04 10:56:03.936] Thread-3                     <WE0001I> Started web bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.D-20100513124429' with context path '/'. 
[2010-06-04 10:56:03.941] start-signalling-3           <DE0005I> Started bundle 'org.eclipse.virgo.apps.splash' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:04.313] Thread-3                     <WE0001I> Started web bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.web' version '2.1.0.D-20100513124429' with context path '/org.eclipse.virgo.apps.repository'. 
[2010-06-04 10:56:04.317] start-signalling-2           <DE0005I> Started bundle 'org.eclipse.virgo.apps.repository-2.1.0.D-20100513124429-org.eclipse.virgo.apps.repository.web' version '2.1.0.D-20100513124429'. 
[2010-06-04 10:56:04.321] start-signalling-2           <DE0005I> Started par 'org.eclipse.virgo.apps.repository' version '2.1.0.D-20100513124429'. 
You can then log in to the Virgo admin console (user "admin", password "springsource"). You should see the welcome panel of the admin console:
admin console welcome panel

You can then examine the features of the admin console. For example, you can explore the artifacts currently installed by clicking on the Artifacts pane and expanding some of the sections marked with '+' signs:

admin console artifacts pane

If you want to try deploying a bundle, drop it into the pickup directory:


For example, if you download the trivial test application helloweb.war and drop it into the pickup directory, the following event log messages are displayed:

[2010-06-04 11:25:49.528] fs-watcher                   <DE0000I> Installing bundle 'helloweb' version '0.0.0'. 
[2010-06-04 11:25:49.594] fs-watcher                   <DE0001I> Installed bundle 'helloweb' version '0.0.0'. 
[2010-06-04 11:25:49.683] fs-watcher                   <DE0004I> Starting bundle 'helloweb' version '0.0.0'. 
[2010-06-04 11:25:49.688] Thread-3                     <WE0000I> Starting web bundle 'helloweb' version '0.0.0' with context path '/helloweb'. 
[2010-06-04 11:25:49.780] Thread-3                     <WE0001I> Started web bundle 'helloweb' version '0.0.0' with context path '/helloweb'. 
[2010-06-04 11:25:49.783] start-signalling-3           <DE0005I> Started bundle 'helloweb' version '0.0.0'.

and you can then invoke the application or inspect it in the admin console:

admin console showing helloweb.war

Migration Notes

Migrating from dm Server 2.0.x to Virgo 2.1.0.M01

The following changes in Virgo 2.1.0.M01 affect users migrating from dm Server 2.0.x:

Package Names

The Java package names of the code have been renamed from com.springsource or org.eclipse.

Some of these packages are more likely than others to be used by applications. For example, the following web configuration:


needs to be changed to:


The main package changes are shown in the following table although very few of these are likely to impact applications. Users who have modified or extended dm Server are far more likely to be affected.

Package changes
dm Server 2.0.x Virgo 2.1.0.x
com.springsource.osgi.teststubs.* org.eclipse.virgo.teststubs.osgi.*
com.springsource.osgi.extensions.* org.eclipse.virgo.osgi.extensions.*
com.springsource.osgi.launcher.* org.eclipse.virgo.osgi.launcher.*
com.springsource.util.* org.eclipse.virgo.util.*
com.springsource.osgi.test.* org.eclipse.virgo.test.*
com.springsource.osgi.medic.* org.eclipse.virgo.medic.*
com.springsource.repository.* org.eclipse.virgo.repository.*
com.springsource.kernel.* org.eclipse.virgo.kernel.*
com.springsource.osgi.webcontainer.* org.eclipse.gemini.web.*
com.springsource.server.* org.eclipse.virgo.*


The kernel shell did not make it through the stringent Eclipse IP process and so Virgo extends the Equinox console instead.

The inline shell is no longer supported and the "-shell" switch on the startup script produces a warning.

The Equinox console is configured in the user region properties file via the osgi.console property with a default value of 2401.

The kernel properties shell.enabled and shell.port are no longer used and are ignored if specified. Remote access to the Equinox console is via telnet (whereas the kernel shell supported ssh).

Service Wrapper

The service wrapper did not make it through the stringent Eclipse IP process and so is no longer supported. Anyone needing this function will need to create their own service wrapper or take the one from dm Server 2.0.x and doctor it.

Migrating from the dm Server slices prototype to the Virgo snaps prototype

Even though the slices project was a prototype, a number of dm Server users found it very useful and asked for it to be made available on Virgo. It is currently being renamed to "snaps" and contributed to Virgo.

There will be a one-time hit for users to migrate from slices to snaps, largely because of the renaming.

Package Names

The Java package names of the code have been renamed from com.springsource.osgi.slices.* or org.eclipse.virgo.snaps.*.

Class names

'Slice' is replaced by 'Snap' in class names.

Notable class name changes
dm Server slices Virgo snaps
com.springsource.osgi.slices.core.SliceHostFilter org.eclipse.virgo.snaps.core.SnapHostFilter
com.springsource.osgi.slices.Slices org.eclipse.virgo.snaps.Snaps
com.springsource.osgi.slices.SlicesTag org.eclipse.virgo.snaps.SnapsTag

Manifest headers

'Slice' is replaced by 'Snap' in manifest headers.

Manifest header changes
dm Server slices Virgo snaps
Slice-Host Snap-Host
Slice-ContextPath Snap-ContextPath

Bundle symbolic names

Bundle symbolic name changes
dm Server slices Virgo snaps
com.springsource.osgi.slices.api org.eclipse.virgo.snaps.api
com.springsource.osgi.slices.core org.eclipse.virgo.snaps.core

Plan names

Plan name changes
dm Server slices Virgo snaps
com.springsource.osgi.slices org.eclipse.virgo.snaps

Event log messages

The prefix SL is replaced by the prefix SN.


  •  A Virgo overview presentation, dating from June 2010, licensed under the Eclipse Public License for anyone who wants to present it or use it to create their own presentation on Virgo. It is provided in open office and PDF formats.