EclipseRT Virgo and OSGi - Eclipsepediawiki.eclipse.org/images/a/af/VirgoOverview.pdfTitle Example...

35
1 Copyright VMware 2009, 2010. Licensed under the Eclipse Public License. EclipseRT Virgo and OSGi Chris Frost Glyn Normington Steve Powell

Transcript of EclipseRT Virgo and OSGi - Eclipsepediawiki.eclipse.org/images/a/af/VirgoOverview.pdfTitle Example...

1

Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

EclipseRT Virgoand OSGi

Chris FrostGlyn Normington

Steve Powell

2Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Agenda

• OSGi basics

• Gemini and Virgo at Eclipse

• A tour of Virgo

• Current status

• How can I get started?

3Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

OSGi basics

4Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

It’s bundlesall the way down

• OSGi is a Module System

A Bundle = a Jar fle = a single module (approx)

The Bundle Manifest defnes the imports/exports

• Many adopters including a lot of Eclipse projects

• Defned by the OSGi Alliance

5Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

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)

6Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Gemini and Virgo

7Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

What is Virgo?

• “Dynamic Enterprise Application Platform”

• Based on SpringSource dm Server 2.0

• Objectives:

• Better OSGi platform

• Servlets & Migration of Java EE apps

• Modular and extensible

8Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

What is Gemini?• “Enterprise Modules Project”

• A collection of OSGi spec implementations

• Aims to provide a single authoritative collection

• Main contributors are SpringSource and Oracle

• Virgo uses Gemini:

web and blueprint support

9Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Virgo and EclipseRT

10Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

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, including

resolution failure, deadlock, delayed services

11Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Virgo tour

12Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Virgo Externals

13Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

14Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

15Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Artifacts

• Identifed by type, name, version

• Types:

• bundle - OSGi bundle

• confguration - properties fle

• plan - list of artifacts

• par – container of artifacts

16Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

17Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Plans• XML

• List artifacts by type, name, version range

• Scoping

• Atomicity

• PARs

• Contain artifacts

• Scoped, atomic

17

18Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Scoping

19Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

20Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Repositories• Artifacts indexed by type, name, version

• Supports queries e.g. by version range

• Repository types:

External

Watched

Remote

• Repositories may be chained

21Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Repository Chainingremote

22Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

23Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Pipelines

24Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

25Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Regions

26Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Current status

27Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

• All code now in Eclipse GIT

• Milestone release

2.1.0.M01 17th June 2010

• IP in the last stages

• All repositories can be checked out and built (except SVTs – to follow)

• Virgo Nightly Builds available

• Baseline release in early 4Q 2010

27

28Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

...status• SpringSource Tool Suite supports Virgo servers

• STS 2.3.2

http://www.springsource.com/products/sts

• plus nightly build of dm Server Tools

http://www.springsource.com/snapshot/e3.5

• Including support for plans

29Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

How can I get started?

30Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Getting started

• Pre-req: Java 6

• Download and unzip

• bin/startup.sh or bin\startup.bat

• drop WAR fles or bundles into pickup dir

31Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

...then what?• Read documentation

User Guide

Programmer Guide

“Getting Started” Guide

• Join the community

http://wiki.eclipse.org/Virgo/Community

32Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Roles

• Casual user

• Expert user

• Contributor

• Committer

32

33Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Committer Skills

• Know or be willing to learn:

Clean architecture and code

Unit and integration testing

Concurrency

(Deep) OSGi understanding

git, ant, ivy, etc.

34Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Work Areas

• Developer docs and wiki

• Jetty adapter

• Regions and nested frameworks

• p2 integration

• More server types

35Copyright VMware 2009, 2010. Licensed under the Eclipse Public License.

Further Information

• http://www.eclipse.org/virgo

• http://wiki.eclipse.org/Virgo/Community

• #VirgoRT

• Download Virgo 2.1.0.M01 and try it out

• http://www.eclipse.org/virgo/download