Virgo and RT playing together at EclipseCon 2011

During this talk, Christopher presented the audience Virgo, part of the RT umbrella of the Eclipse Foundation

The virgo packages

  • Equinox,
  • then Virgo Kernel,
  • then Virgo Tomcat Server or Virgo Jetty Server

The Gemini project

  • blueprint : DI
  • Web : support for WABs and WARs
  • JPA : persistence in OSGi
  • DBAccess : modular JDBC drivers
  • Management : JMX management (start /stop)
  • JNDI : JNDI naming in OSGi

Demo :

How to extend virgo to get your own custom server

  1. Download virgo kernel and unzip it (and configure your osgi console port)
  2. starts it, it looks for new applications to install; you can open an osgi console through telnet
  3. add equinox.http to the ext repo, and the same for equinox servlet API bundle (2.5)
  4. Configure http port , in properties, define : org.osgi.service.http.port=5555 for example
  5. add the HttpService to the initial artifacts (a configuration similar to a config.ini osgi.bundles list)
  6. start it, check everything is ok in the osgi console
  7. You can then deploy a jar (osgi bundle) containing a servlet, configured using Spring (osgi:reference on osgi.http service); just copying it to the virgo kernel : it just works

In the works :

  1. P2 integration
  2. integration with Gemini projects
  3. better tooling from libra project

Talking to Christopher and Glynn, I also learned that : (I’m totally a virgo n00b)

  • Virgo is like having Equinox + Spring OSGi + Jetty; BUT it also provides a unified mechanism system, using logback (and so slf4j logging APIs)
  • Virgo also solved problems such as Emphatic loading mechanism : take hibernate for example, a bundle using it would normally not be able to see the other bundles providing Hibernate based classes; that’s why they came up with this idea of dynamic bundle creation at runtime, that solves this visibility problem (check Glynn blog entry to know more about this problem)
  • Not P2 enabled : Virgo just recently joined the Eclipse world, and since uses its own dependency and update mechanism; P2 support is high on the priority list

 

http://www.eclipsecon.org/2011/sessions/?page=sessions&id=2086