Jump to: navigation, search

Difference between revisions of "Virgo/Source"

(Virgo git Repositories)
(Virgo git Repositories)
 
(38 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{Virgo}}
 
{{Virgo}}
 +
[[Category:Virgo]] [[Category:EclipseRT]]
  
 
= Virgo Components =
 
= Virgo Components =
Line 11: Line 12:
 
= Virgo git Repositories  =
 
= Virgo git Repositories  =
  
Each Virgo component resides in its own git repository. The {{VirgoLink|Build}} tab details how to clone and build these components, but if you want a quick peek at the source code, follow the Short Name links in the table.  
+
Virgo git repositories are hosted at [http://git.eclipse.org/c/ git.eclipse.org] and mirrored to [https://github.com/eclipse github].
  
{| width="1500" border="1" cellpadding="1" cellspacing="1"
+
Each Virgo component resides in its own git repository. The {{VirgoLink|Build}} tab details how to clone and build these components, but if you want a quick peek at the source code, follow the Short Name links in the table.
 +
 
 +
Note: some corporate firewalls do not permit the "git:" protocol, but you can substitute "http:" instead.
 +
 
 +
{| width="1550" border="1" cellpadding="1" cellspacing="1"
 
|-
 
|-
 
| '''Short Name'''  
 
| '''Short Name'''  
Line 20: Line 25:
 
| '''Committer: git clone'''
 
| '''Committer: git clone'''
 
|-
 
|-
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.web-server.git/tree web-server]  
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.apps.git/tree apps]
| Web server packaging build
+
| Virgo-supplied applications
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web-server.git  
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.apps.git
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web-server.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.apps.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.artifact-repository.git/tree/ artifact-repository]
 +
| Artifact repository
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.artifact-repository.git  
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.artifact-repository.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.bundlor.git/tree bundlor]
 +
| Bundlor manifest generation tool
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.bundlor.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.bundlor.git
 
|-
 
|-
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.documentation.git/tree documentation]
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.documentation.git/tree documentation]
Line 30: Line 45:
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.documentation.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.documentation.git
 
|-
 
|-
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.apps.git/tree apps]
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.eclipse-mirror.git/tree eclipse-mirror]
| Virgo-supplied applications
+
| Handles mirroring of Eclipse p2 artifacts to Ivy repositories
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.apps.git
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.eclipse-mirror.git  
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.apps.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.eclipse-mirror.git
 
|-
 
|-
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.web.git/tree web]
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.ide.git/tree ide]
| Web integration layer
+
| Eclipse IDE tooling
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web.git
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.ide.git  
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.ide.git
 
|-
 
|-
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.kernel.git/tree kernel]
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.kernel.git/tree kernel]
Line 45: Line 60:
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel.git
 
|-
 
|-
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.artifact-repository.git/tree/ artifact-repository]
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.kernel-system-verification-tests.git/tree kernel-system-verification-tests]
| Artifact repository
+
| Kernel SVT tests
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.artifact-repository.git  
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-system-verification-tests.git
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.artifact-repository.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-system-verification-tests.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.kernel-tools.git/tree kernel-tools]  
 +
| Tools integration layer
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-tools.git  
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-tools.git
 
|-
 
|-
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.medic.git/tree/ medic]  
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.medic.git/tree/ medic]  
Line 54: Line 74:
 
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.medic.git  
 
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.medic.git  
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.medic.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.medic.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.nano.git/tree/ nano]
 +
| Nano
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.nano.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.nano.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.packaging.git/tree packaging]
 +
| Virgo common packaging build
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.packaging.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.packaging.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.performance-test.git/tree/ performance-test]
 +
| Performance tests
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.performance-test.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.performance-test.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.samples.git/tree samples]
 +
| Sample Applications
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.samples.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.samples.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.snaps.git/tree/ snaps]
 +
| Modular web UI
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.snaps.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.snaps.git
 +
|-
 +
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.system-verification-tests.git/tree/ system-verification-tests] 
 +
| SVT tests
 +
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.system-verification-tests.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.system-verification-tests.git
 
|-
 
|-
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.test.git/tree/ test]  
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.test.git/tree/ test]  
Line 64: Line 114:
 
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.util.git  
 
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.util.git  
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.util.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.util.git
|-
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.osgi-extensions.git/tree/ osgi-extensions]
 
| Launcher and Equinox hooks
 
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.osgi-extensions.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.osgi-extensions.git
 
|-
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.osgi-test-stubs.git/tree/ osgi-test-stubs]
 
| Unit test stubs for common OSGi interfaces
 
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.osgi-test-stubs.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.osgi-test-stubs.git
 
 
|-
 
|-
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.virgo-build.git/tree/ virgo-build]  
 
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.virgo-build.git/tree/ virgo-build]  
Line 80: Line 120:
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.virgo-build.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.virgo-build.git
 
|-
 
|-
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.performance-test.git/tree/ performance-test]  
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.web.git/tree web]
| Performance tests
+
| Web integration layer
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.performance-test.git  
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web.git
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.performance-test.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web.git
 +
|}
 +
 
 +
Virgo's project web site resides in the following git repository.
 +
 
 +
{| width="1400" border="1" cellpadding="1" cellspacing="1"
 
|-
 
|-
| system-verification-tests
+
| '''Short Name'''
| SVT tests
+
| '''Description'''
|  
+
| '''Anonymous: git clone'''
|  
+
| '''Committer: git clone'''
 
|-
 
|-
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.kernel-system-verification-tests.git/tree kernel-system-verification-tests]
+
| [http://git.eclipse.org/c/www.eclipse.org/virgo.git/tree web site]
| Kernel SVT tests
+
| Virgo project web site
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-system-verification-tests.git
+
| git://git.eclipse.org/gitroot/www.eclipse.org/virgo.git
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-system-verification-tests.git
+
| ssh://''committerid''@git.eclipse.org/gitroot/www.eclipse.org/virgo.git
|-
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.kernel-tools.git/tree kernel-tools]  
+
| Tools integration layer
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-tools.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-tools.git
+
|-
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.sample-greenpages.git/tree sample-greenpages]
+
| Greenpages sample
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-greenpages.git  
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-greenpages.git
+
|-
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.sample-configuration-properties.git/tree sample-configuration-properties]
+
| Configuration properties sample
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-configuration-properties.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-configuration-properties.git
+
|-
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.sample-formtags.git/tree/ sample-formtags]
+
| Formtags sample
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-formtags.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-formtags.git
+
|-
+
| [http://git.eclipse.org/c/virgo/org.eclipse.virgo.sample-osgi-examples.git/tree/ sample-osgi-examples]
+
| OSGi samples
+
| git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-osgi-examples.git
+
| ssh://''committer_id''@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.sample-osgi-examples.git
+
 
|}
 
|}
  
Virgo's sister project, Gemini Web, resides in the following git repository.
+
Virgo's sister projects, from Gemini, resides in the following git repositories.
  
{| width="1500" border="1" cellpadding="1" cellspacing="1"
+
{| width="1400" border="1" cellpadding="1" cellspacing="1"
 
|-
 
|-
 
| '''Short Name'''  
 
| '''Short Name'''  
Line 134: Line 154:
 
| git://git.eclipse.org/gitroot/gemini.web/org.eclipse.gemini.web.gemini-web-container.git  
 
| git://git.eclipse.org/gitroot/gemini.web/org.eclipse.gemini.web.gemini-web-container.git  
 
| ssh://''committer_id''@git.eclipse.org/gitroot/gemini.web/org.eclipse.gemini.web.gemini-web-container.git
 
| ssh://''committer_id''@git.eclipse.org/gitroot/gemini.web/org.eclipse.gemini.web.gemini-web-container.git
 +
|-
 +
| [http://git.eclipse.org/c/gemini.management/org.eclipse.gemini.managment.git/tree gemini-management]
 +
| Gemini management
 +
| git://git.eclipse.org/gitroot/gemini.management/org.eclipse.gemini.managment.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/gemini.management/org.eclipse.gemini.managment.git
 +
|-
 +
| [http://git.eclipse.org/c/gemini.blueprint/org.eclipse.gemini.blueprint.git/tree gemini-blueprint]
 +
| Gemini Blueprint
 +
| git://git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git
 +
| ssh://''committer_id''@git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git
 
|}
 
|}
  
Line 158: Line 188:
 
src/test/resources/                // Unit/integration test resources
 
src/test/resources/                // Unit/integration test resources
 
template.mf                        // Bundlor template
 
template.mf                        // Bundlor template
</pre>  
+
</pre>
 +
= How to Add new woven project to Virgo  =
 +
 
 +
Generally all kernel projects and up stream projects are woven to add supportability features. In order to add a new Virgo project you need to create a Java project with the structure described above. The Spring tooling is only necessary if your projects utilizes Spring at runtime.
 +
When your project is ready you need to add a weaving dependencies so there won't be errors during the ant build time weaving process.
 +
 
 +
The dependency must be places in the project's '''ivy.xml'''. Here it is:
 +
''<dependency org="org.aspectj" name="com.springsource.org.aspectj.weaver" rev="${org.aspectj}" conf="compile->runtime"/>''
 +
 
 +
And you're done. Now project will be woven like the rest of the kernel projects.
 +
 
 
= How to Add a git Repository to Virgo  =
 
= How to Add a git Repository to Virgo  =
  
Line 165: Line 205:
 
1. Add the new repository to the git server (may require project lead privileges):  
 
1. Add the new repository to the git server (may require project lead privileges):  
 
<pre>&gt;ssh &lt;committer_id&gt;@git.eclipse.org
 
<pre>&gt;ssh &lt;committer_id&gt;@git.eclipse.org
&gt;cd /gitroot/virgo
+
&gt;initrepo /gitroot/virgo/org.eclipse.virgo.&lt;reponame&gt;.git
&gt;initrepo org.eclipse.virgo.&lt;reponame&gt;.git
+
 
&lt;log out e.g. using Ctrl-D&gt;
 
&lt;log out e.g. using Ctrl-D&gt;
 
</pre>  
 
</pre>  
Line 197: Line 236:
 
8. Add the new repository to the table above.
 
8. Add the new repository to the table above.
  
9. Don't forget to create [[Hudson]] build jobs, if you need them, and close any bug which was tracking the creation of the new repository.
+
9. Use the Foundation Portal to add the new repository to the list of source repositories in the project metadata. In particular, this [https://bugs.eclipse.org/bugs/show_bug.cgi?id=332970#c16 should] cause the repository to be mirrored on github.
  
[[Category:Virgo]] [[Category:EclipseRT]]
+
10. Don't forget to create [[Hudson]] build jobs, if you need them, and close any bug which was tracking the creation of the new repository.
 +
 
 +
= Archaeology =
 +
 
 +
Sometimes it is necessary to delve into the origins of a particular piece of code. Virgo (and Gemini Web Container) derived from SpringSource dm Server. If you want to start digging, please note that the original source is licensed partly under the GPL v3 and partly under the Apache License v2. The original git repositories are available on [http://git.springsource.org git.springsource.org] in the [http://git.springsource.org/dm-server dm Server] and [http://git.springsource.org/osgi-web-container OSGi Web Container] projects. The intermediate repositories used to prepare the donation to Eclipse are also on [http://git.springsource.org git.springsource.org] in the [http://git.springsource.org/virgo Virgo] and [http://git.springsource.org/gemini Gemini] projects.
 +
 
 +
In order to protect Eclipse users from accessing non-Eclipse licensed code, the history was trimmed from the Virgo (and Gemini Web Container) repositories. However the commit log message of the first commit to each Eclipse repository notes the SHA of the commit in the intermediate repository from which it was copied. Note also that some samples were not contributed because of uncertain authorship, so a few dm Server repositories do not correspond to any Virgo repository.

Latest revision as of 10:51, 3 April 2013

Virgo Components

The Virgo source code is organised into separate components which form a directed acyclic dependency graph. This is a layered architecture in which lower layers may provide function to higher layers but not vice versa.

It is important to understand the layering when making changes: changes to lower layers have a greater potential impact than changes to the higher layers.

To do: add a picture of the basic layering.

Virgo git Repositories

Virgo git repositories are hosted at git.eclipse.org and mirrored to github.

Each Virgo component resides in its own git repository. The Build tab details how to clone and build these components, but if you want a quick peek at the source code, follow the Short Name links in the table.

Note: some corporate firewalls do not permit the "git:" protocol, but you can substitute "http:" instead.

Short Name Description Anonymous: git clone Committer: git clone
apps Virgo-supplied applications git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.apps.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.apps.git
artifact-repository Artifact repository git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.artifact-repository.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.artifact-repository.git
bundlor Bundlor manifest generation tool git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.bundlor.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.bundlor.git
documentation End-user documentation git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.documentation.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.documentation.git
eclipse-mirror Handles mirroring of Eclipse p2 artifacts to Ivy repositories git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.eclipse-mirror.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.eclipse-mirror.git
ide Eclipse IDE tooling git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.ide.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.ide.git
kernel Core runtime git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel.git
kernel-system-verification-tests Kernel SVT tests git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-system-verification-tests.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-system-verification-tests.git
kernel-tools Tools integration layer git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-tools.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.kernel-tools.git
medic Diagnostics git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.medic.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.medic.git
nano Nano git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.nano.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.nano.git
packaging Virgo common packaging build git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.packaging.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.packaging.git
performance-test Performance tests git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.performance-test.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.performance-test.git
samples Sample Applications git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.samples.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.samples.git
snaps Modular web UI git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.snaps.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.snaps.git
system-verification-tests SVT tests git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.system-verification-tests.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.system-verification-tests.git
test Test framework git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.test.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.test.git
util utilities git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.util.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.util.git
virgo-build Ant/Ivy based build system git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.virgo-build.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.virgo-build.git
web Web integration layer git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web.git ssh://committer_id@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.web.git

Virgo's project web site resides in the following git repository.

Short Name Description Anonymous: git clone Committer: git clone
web site Virgo project web site git://git.eclipse.org/gitroot/www.eclipse.org/virgo.git ssh://committerid@git.eclipse.org/gitroot/www.eclipse.org/virgo.git

Virgo's sister projects, from Gemini, resides in the following git repositories.

Short Name Description Anonymous: git clone Committer: git clone
gemini-web-container Gemini web container git://git.eclipse.org/gitroot/gemini.web/org.eclipse.gemini.web.gemini-web-container.git ssh://committer_id@git.eclipse.org/gitroot/gemini.web/org.eclipse.gemini.web.gemini-web-container.git
gemini-management Gemini management git://git.eclipse.org/gitroot/gemini.management/org.eclipse.gemini.managment.git ssh://committer_id@git.eclipse.org/gitroot/gemini.management/org.eclipse.gemini.managment.git
gemini-blueprint Gemini Blueprint git://git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git ssh://committer_id@git.eclipse.org/gitroot/gemini.blueprint/org.eclipse.gemini.blueprint.git

Source Organisation

A typical git repository is organised into the following files and directories:

build-xxx/                         // top-level build directory
build.properties                   // properties substituted during build
build.versions                     // dependency version properties
org.eclipse.virgo.xxx.y.z/         // a project
...                                // more projects
virgo-build/                       // git submodule

Each project is organised into the following files and directories:

.classpath                         // Eclipse build class path
.project                           // Eclipse project metadata
.settings/                         // Settings
.springBeans                       // Spring tooling metadata
build.xml                          // Ant build instructions
ivy.xml                            // Ivy build dependencies
src/main/java/                     // Runtime source
src/main/resources/                // Runtime resources
src/test/java/                     // Unit/integration test source
src/test/resources/                // Unit/integration test resources
template.mf                        // Bundlor template

How to Add new woven project to Virgo

Generally all kernel projects and up stream projects are woven to add supportability features. In order to add a new Virgo project you need to create a Java project with the structure described above. The Spring tooling is only necessary if your projects utilizes Spring at runtime. When your project is ready you need to add a weaving dependencies so there won't be errors during the ant build time weaving process.

The dependency must be places in the project's ivy.xml. Here it is: <dependency org="org.aspectj" name="com.springsource.org.aspectj.weaver" rev="${org.aspectj}" conf="compile->runtime"/>

And you're done. Now project will be woven like the rest of the kernel projects.

How to Add a git Repository to Virgo

While this information is mainly of use while the Virgo repositories are initially being populated, it may be useful later. It says how to trace back from Virgo to its origins, how to update a repository description, and what files to copy when a new repository is added.

1. Add the new repository to the git server (may require project lead privileges):

>ssh <committer_id>@git.eclipse.org
>initrepo /gitroot/virgo/org.eclipse.virgo.<reponame>.git
<log out e.g. using Ctrl-D>

2. Clone the new repository:

>git clone ssh://<committer_id>@git.eclipse.org/gitroot/virgo/org.eclipse.virgo.<reponame>.git <repo dir>

3. Create the directories of the new repository and any .gitignore file. For example:

>cd <repo dir>
>cp <source dir>/.gitignore .
>cp -r <source dir>/o* .
>cp -r <source dir>/b* .
Make sure you get all the files -- some of them may not fall into these patterns.

4. If you are creating the new repository from an existing git repository, tag the existing repository and make a note of the tagged commit SHA.

>cd <source dir>
>git tag Virgo-checkin
>git push origin master --tags
>cd <repo dir>

5. Add a submodule for Virgo build.

>git submodule add git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.virgo-build.git virgo-build

6. Stage all the above changes and push to master.

>git add .
>git commit -m "initial checkin from <existing repository> commit <tagged commit SHA>"
>git push origin master

7. Edit .git/description, making sure the file is a single line ending in a newline, and rsynch this (may require project lead privileges).

>rsync .git/description <committer-id>@git.eclipse.org:/gitroot/virgo/org.eclipse.virgo.<reponame>.git/description

8. Add the new repository to the table above.

9. Use the Foundation Portal to add the new repository to the list of source repositories in the project metadata. In particular, this should cause the repository to be mirrored on github.

10. Don't forget to create Hudson build jobs, if you need them, and close any bug which was tracking the creation of the new repository.

Archaeology

Sometimes it is necessary to delve into the origins of a particular piece of code. Virgo (and Gemini Web Container) derived from SpringSource dm Server. If you want to start digging, please note that the original source is licensed partly under the GPL v3 and partly under the Apache License v2. The original git repositories are available on git.springsource.org in the dm Server and OSGi Web Container projects. The intermediate repositories used to prepare the donation to Eclipse are also on git.springsource.org in the Virgo and Gemini projects.

In order to protect Eclipse users from accessing non-Eclipse licensed code, the history was trimmed from the Virgo (and Gemini Web Container) repositories. However the commit log message of the first commit to each Eclipse repository notes the SHA of the commit in the intermediate repository from which it was copied. Note also that some samples were not contributed because of uncertain authorship, so a few dm Server repositories do not correspond to any Virgo repository.