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

+

+

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.

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:

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 171:

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 203:

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.

+

+

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.

Contents

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

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.

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):

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.