Eclipse RT projects Gemini web and Virgo par Steve Powell
1. EclipseRT
Virgo and Gemini Web
steve powell spowell@vmware.com
chris frost cfrost@vmware.com
glyn normington gnormington@vmware.com
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 1
Monday, 22 November 2010 1
2. Agenda
• OSGi basics
• Virgo and Gemini at Eclipse
• A tour of Virgo
• Current status
• How can I get started?
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 2
Monday, 22 November 2010 2
4. “It’s bundles all the way down”
• OSGi is a Module System
A Bundle = a Jar file = a single module (approx)
The Bundle Manifest defines the imports/exports
• Many adopters including a lot of Eclipse
projects
• Defined by the OSGi Alliance
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 4
Monday, 22 November 2010 4
5. Services
• A Bundle can export and consume services
This happens dynamically at runtime
• A service is a Java Object with some properties
• Managed by a Service Registry
(the Whiteboard pattern)
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 5
Monday, 22 November 2010 5
6. Life-cycle
• Resolving the dependencies must happen before
running a module’s code
• starting/stopping/refreshing a module are life-cycle
events
• OSGi framework offers life-cycle management
through services
• modules are dynamic
• resolved, started, stopped, refreshed at any time
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 6
Monday, 22 November 2010 6
7. Virgo and Gemini
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 7
Monday, 22 November 2010 7
8. Virgo
• “Dynamic Enterprise Application Platform”
• Based on SpringSource dm Server 2.0
• not to be confused with Spring DM
• Original objectives:
• Better OSGi platform; Migration of Java EE
apps; Modular and extensible
• Virgo objectives:
• Broaden exploitation of OSGi; Lower barriers
to adoption; Grow committers
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 8
Monday, 22 November 2010 8
9. Gemini
• “Enterprise Modules Project”
• A collection of OSGi spec implementations
• Aims to provide authoritative collection
• Main contributors are SpringSource and
Oracle
• Virgo uses Gemini:
web and blueprint support
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 9
Monday, 22 November 2010 9
10. Virgo and EclipseRT
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 10
Monday, 22 November 2010 10
11. Problems Virgo Solves
✓Groups bundles into manageable units
✓Enables the use of existing open source libraries
TCCL, LTW, implicit package use
✓Provisions from repositories
✓Extensive diagnostics
resolution failure analysis, deadlock detection,
delayed service warnings
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 11
Monday, 22 November 2010 11
12. Virgo Tour
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 12
Monday, 22 November 2010 12
14. Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 14
Monday, 22 November 2010 14
15. Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 15
Monday, 22 November 2010 15
16. Artifacts
• Identified by type, name, version
• Types:
• bundle - OSGi bundle
• configuration - properties file
• plan - list of artifacts
• ...
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 16
Monday, 22 November 2010 16
17. Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 17
Monday, 22 November 2010 17
18. Plans
• XML
• List artifacts by type, name, version (range)
• Scoping
• Atomicity
• PARs similar
• contain artifacts
• scoped, atomic
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 18
Monday, 22 November 2010 18
20. Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 20
Monday, 22 November 2010 20
21. Repositories
• Artifacts indexed by type, name, version
• Supports queries e.g. by version range
• Repository types:
• External
• Watched
• Remote
• Repositories may be chained
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 21
Monday, 22 November 2010 21
22. Repository Chaining
remote
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 22
Monday, 22 November 2010 22
23. Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 23
Monday, 22 November 2010 23
28. Virgo released
• All code in git.eclipse.org repositories
(see http://wiki.eclipse.org/Virgo/Source)
• Virgo 2.1.0.RELEASE shipped (1 Nov 2010)
• Gemini Web 1.1.0.RELEASE shipped (1 Nov 2010)
• All repositories can be checked out and built
(SVTs soon)
• Virgo Recent Builds available
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 28
Monday, 22 November 2010 28
29. Virgo released...
• Eclipse Community Forum (Virgo home link)
• Virgo developer mailing list
• Community conference call once a week
• Active Bugzilla (currently ~10 bugs; ~60 enh)
(bugs.eclipse.org/bugs under RT;
the Gemini.Web and Virgo products)
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 29
Monday, 22 November 2010 29
30. Release Notes
• Performance improvements (startup,
logging)
• Upgrade dependencies (Equinox; Tomcat;
LogBack; Gemini.Web)
• Equinox Console extension (vsh)
• Bugs and docs improvements
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 30
Monday, 22 November 2010 30
31. Documentation
• All updated for 2.1.0.RELEASE:
• User Guide
• Programmer’s Guide
• Getting Started Guide
(featuring GreenPages 2.3.0.RELEASE)
• http://www.eclipse.org/virgo/documentation/
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 31
Monday, 22 November 2010 31
32. Tools
• SpringSource Tool Suite supports Virgo servers
out-of-the-box
• STS 2.5.0.RELEASE
• http://www.springsource.com/products/sts
• ...or add server tool support to Eclipse IDE
• http://dist.springsource.com/release/TOOLS/
nightly/e3.6 for dm Server Tools
• Including support for plans
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 32
Monday, 22 November 2010 32
33. Time-line Virgo 2.1.0 logging performance bug
contributions added:
- testcases
improve diags in fs failures - OSGi extensions
fix undeploy bugs Equinox upgrade
releasable kernel slim kernel
improve ‘buildability’ Windows startup
M05
1
.M0
Rationalise dependencies
Code drop remove shell performance M06
.0
add vsh extension logback upgrade
RC1
2.2
artifact extension api
M01 M02 M03 M04 RELEASE
May June July Aug Sept Oct Nov
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 33
Monday, 22 November 2010 33
34. How can I get started?
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 34
Monday, 22 November 2010 34
35. Getting Started
• Pre-req: Java 6
• Download and unzip
• bin/startup.sh or binstartup.bat
• drop WAR files or bundles into pickup dir
(there are some there already)
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 35
Monday, 22 November 2010 35
36. ...then what?
• Read documentation
• User Guide
• Programmer Guide
• “Getting Started” Guide
• Join the community
• http://wiki.eclipse.org/Virgo/Community
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 36
Monday, 22 November 2010 36
37. Participants
• Casual user
• Expert user
• Contributor
• Committer
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 37
Monday, 22 November 2010 37
38. Committer Skills
• Know or willing to learn:
• Clean architecture and code
• Unit and integration testing built-in
• Concurrency
• (Deep) OSGi
• git, ant, ivy, etc.
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 38
Monday, 22 November 2010 38
39. Work Areas
• Developer docs, wiki, virgo-dev support
• Jetty support
• p2 integration
• More server types built on the kernel
• Integration, batch, RAP, ...
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 39
Monday, 22 November 2010 39
41. RAP news... (Florian Waibel)
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 41
Monday, 22 November 2010 41
42. Tools future
• donation to Eclipse in progress:
• Bundlor (standalone as well as plugin)
• dm Server Tools (Virgo Tools)
• including artifact grouping (plans)
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 42
Monday, 22 November 2010 42
43. Further Information
• http://www.eclipse.org/Virgo
• http://wiki.eclipse.org/Virgo/Community
•#VirgoRT
• Download Virgo 2.1.0.RELEASE and try it
http://www.eclipse.org/Virgo/download
Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. 43
Monday, 22 November 2010 43