Eclipse Virgo
 Glyn Normington




        1
Agenda

• What is Virgo?
• Externals
• Concepts
• How can I get involved?

                     2
What is Virgo?
• “Dynamic Enterprise Application Platform”
• Based on SpringSource dm Server 2.0
 • Not to be confused wit...
Problems Virgo Solves
• Groups bundles into manageable units
• Enables the use of existing open source libraries
 • TCCL, ...
Virgo and EclipseRT

    Virgo                 Gemini

    web                web container

    kernel               blue...
Virgo Externals
                                          Admin
startup.sh -clean                        console




servi...
Artifacts



Regions

                                            Plans
                       Virgo
                     ...
Artifacts




    8
Artifacts

• Identified by type, name, version
• Types:
 • bundle - OSGi bundle
 • configuration - properties file
 • plan - ...
Plans




 10
Plans
•   XML

•   List artifacts by type, name, version range

•   Scoping

•   Atomicity

•   PARs

    •   Contain arti...
Scoping
            Synthetic
            Context



       A                B



A


B
       Y                X

       ...
Repositories




      13
Repositories
• Artifacts indexed by type, name, version
• Supports queries e.g. by version range
• Repository types:
 • Ex...
Repository Chaining
              remote




         15
Pipelines




     16
Pipelines

       install

transform        quasiInstall
                                resolve

quasiResolve       commi...
Regions




   18
Regions
           User Region




                           services



packages      services




           Kernel Reg...
How can I get involved?



           20
Current Status


• Renaming & relicensing underway
• IP scrutiny ready to begin
• Baseline release is the goal

          ...
Roles

• Casual user
• Expert user
• Contributor
• Committer

                  22
Committer Skills
• Know or willing to learn:
 • Clean architecture & code
 • Unit and integration testing
 • Concurrency
 ...
Work Areas
• Developer docs & wiki
• Jetty adapter
• Regions and nested frameworks
• p2 integration
• More server types
 •...
Further Information
• Virgo Community Launch BoF
  • Today 7.15pm in Tasman
• Application Models for OSGi BoF - Wed.
• htt...
Upcoming SlideShare
Loading in …5
×

Eclipse Virgo

6,308 views

Published on

Presentation given at EclipseCon 2010.

Published in: Technology
4 Comments
4 Likes
Statistics
Notes
  • As promised, I've described those concepts in more detail on the Virgo wiki:
    http://wiki.eclipse.org/Virgo/Concepts.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Good Introduction
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Thanks for the feedback.

    It makes my flesh creep, but I gave a similar presentation at the London OSGi DevCon and it was recorded (and videod): http://skillsmatter.com/podcast/java-jee/dm-server-2-0

    Also, those topics are some of my favourites, so I plan to provide more information on the Virgo wiki. Please bug me if I don't do that within a couple of months.

    Glyn
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Great content Glyn. I wish there were audio with this, is there anywhere to get that? I recently rolled off a Spring dm Server 2.0 project and am planning a seminar in Philadelphia soon.

    Where can I read more on Scoping, Repository Chaining, Pipelines & Regions. I know some of the basics, but I want to learn more.

    Thanks,
    Gordon Dickens
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
6,308
On SlideShare
0
From Embeds
0
Number of Embeds
394
Actions
Shares
0
Downloads
0
Comments
4
Likes
4
Embeds 0
No embeds

No notes for slide


  • dm Server open source project at v2.0

    Associated Eclipse tooling:
    Plugin Development Environment
    Web Tools Platform



  • Server runtime for EclipseRT

    Kernel for application deployment and management
  • Compare Equinox shell

    /pickup deployed and started

    Interesting events
    Method entry/exit (via aspect)
    Asserts
    Unchecked exceptions (via aspect)
    Deadlocks
    Resolution failures - N.B. RFD
    JMX dump request
    Event log messages: Component, number, severity. I18N
    Log messages: Global and per-application logging
    Dumps: Resolver state, thread stacks, heap, in-memory log, ...
  • Fluffy thought-bubbles - nothing to do with cloud computing!

  • Bundles include WARs

    Configuration artifacts mapped into Config. Admin.

    deploy: install and start





  • Prevent interference between applications

    Scopes bundles, packages, and services

    Synthetic context bundle acts as TCCL for library calls

    Scope acts as boundary for LTW

    Y cannot access A and B

  • External repo: deep, configurable pattern

    Watched repo: flat
  • Remote refers to repo hosted by Virgo web server

    Remote repo caches index

    Chain defines a search order (query)

  • transform stage drives Transformer extensions

    Transform tree of artifacts (metadata, file content)

    InstallArtifactLifecycleListener driven for each artifact lifecycle event

  • Built on Equinox nested frameworks

    Enables different versions of Spring




  • Tooling -> WTP, PDE

  • Eclipse Virgo

    1. 1. Eclipse Virgo Glyn Normington 1
    2. 2. Agenda • What is Virgo? • Externals • Concepts • How can I get involved? 2
    3. 3. What is Virgo? • “Dynamic Enterprise Application Platform” • Based on SpringSource dm Server 2.0 • Not to be confused with Spring DM • Objectives: • Better OSGi platform • Migration of Java EE apps • Modular and extensible 3
    4. 4. 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, deadlock, delayed services 4
    5. 5. Virgo and EclipseRT Virgo Gemini web web container kernel blueprint ... ... Equinox Spring 5
    6. 6. Virgo Externals Admin startup.sh -clean console service wrapper JMX client /pickup Virgo Shell /config /serviceability 6
    7. 7. Artifacts Regions Plans Virgo Concepts Pipelines Repositories 7
    8. 8. Artifacts 8
    9. 9. Artifacts • Identified by type, name, version • Types: • bundle - OSGi bundle • configuration - properties file • plan - list of artifacts • ... 9
    10. 10. Plans 10
    11. 11. Plans • XML • List artifacts by type, name, version range • Scoping • Atomicity • PARs • Contain artifacts • Scoped, atomic 11
    12. 12. Scoping Synthetic Context A B A B Y X 12
    13. 13. Repositories 13
    14. 14. Repositories • Artifacts indexed by type, name, version • Supports queries e.g. by version range • Repository types: • External • Watched • Remote • Repositories may be chained 14
    15. 15. Repository Chaining remote 15
    16. 16. Pipelines 16
    17. 17. Pipelines install transform quasiInstall resolve quasiResolve commit 17
    18. 18. Regions 18
    19. 19. Regions User Region services packages services Kernel Region 19
    20. 20. How can I get involved? 20
    21. 21. Current Status • Renaming & relicensing underway • IP scrutiny ready to begin • Baseline release is the goal 21
    22. 22. Roles • Casual user • Expert user • Contributor • Committer 22
    23. 23. Committer Skills • Know or willing to learn: • Clean architecture & code • Unit and integration testing • Concurrency • (Deep) OSGi • git, ant, ivy, etc. 23
    24. 24. Work Areas • Developer docs & wiki • Jetty adapter • Regions and nested frameworks • p2 integration • More server types • Integration, batch, ECF, ... 24
    25. 25. Further Information • Virgo Community Launch BoF • Today 7.15pm in Tasman • Application Models for OSGi BoF - Wed. • http://www.eclipse.org/virgo • Join us in the forum and dev list • #VirgoRT • http://www.springsource.org/dmserver • Download dm Server 2.0 and try it out 25

    ×