SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Hands on Gemini, Virgo, Libra
Hristo Iliev, Violeta Georgieva, Borislav Kapukaranov
March 22, 2011
Libra
OSGi Tooling, Creating Web Application Bundle
Overview


Integrates the existing WTP and PDE
tooling. Provides standard tools for OSGi
Enterprise application development.



Features:
   Creation of deployable artifacts
   Converting existing Java EE artifacts
   Editing and validation of artifact metadata
   OSGi server adapter




© 2011 SAP AG. All rights reserved.               3
Web Application Bundle
Creation




© 2011 SAP AG. All rights reserved.   4
Gemini Web
Web Application Bundles (WAB), JSF
Overview


Model for Java EE Web Applications in
OSGi. Interoperability between Java EE
Web Application and OSGi



Features:
 Installation of WAR files and Web
  Application Bundles (WABs)
 Web application lifecycle control
 Control of configuration properties via URL
  parameters




© 2011 SAP AG. All rights reserved.             6
Gemini Web
Building and Running




© 2011 SAP AG. All rights reserved.   7
Virgo
Concepts
Overview


Module-based Java application server,
designed to run enterprise Java and
Spring-powered applications.

Features:
   Application isolation
   Kernel isolation
   Provisioning
   Hot deployment
   Web container
   Spring 3
   Legacy library support
   Supportability




© 2011 SAP AG. All rights reserved.     10
Features


   Group                              Highlights
   Isolation                          Scoping
                                      User region
   Provisioning                       Hot deployment
                                      Deploy artifacts
                                      Repositories
                                      Type dependencies
   Web                                Jetty
                                      Gemini Web + Tomcat

   Libraries                          Spring
                                      Synthetic bundle context
   Supportability                     Logging
                                      Deadlock detection
                                      Heap dumps

© 2011 SAP AG. All rights reserved.                              11
Regions




© 2011 SAP AG. All rights reserved.   12
Deployment
Hot deploy, Artifacts, Plans
Running application on Virgo




How?
 Hot Deploy (pickup directory)
 Admin Console
 Programmatically




© 2011 SAP AG. All rights reserved.   14
Deploy bundles




1. Unzip Virgo from the
    resources/virgo/virgo-tomcat-server-
    3.0.0.M03.zip file, located in the
    tutorial materials

2. Start Virgo using either startup.bat or
    startup.sh




© 2011 SAP AG. All rights reserved.          15
Hot deployment
Bundles




© 2011 SAP AG. All rights reserved.   16
Deploy bundles




1. Export from Eclipse & Deploy the
    model bundle

2. Export & Deploy the web application
    bundle

3. Check both bundles in Admin Console
    https://localhost:8080/admin
    user: admin
    password: springsource

4. Request the web application here
http://localhost:8080/comics/series.jsf


© 2011 SAP AG. All rights reserved.       17
Application packaging


Bundle, WAR
 Standard
 Well known

PAR
 Archive with all modules  Atomic
 No ordering

Plan
 Ordering
 Scoping, Atomicity

Configuration




© 2011 SAP AG. All rights reserved.   18
Plans

<?xml version="1.0" encoding="UTF-8"?>

<plan            name="multi-artifact.plan“ version="1.0.0”

                 scoped="true“ atomic="true"

                 xmlns=“…" xmlns:xsi=“…" xsi:schemaLocation=“…“>



                 <artifact type="configuration”

                                      name="app-properties" version="1.0.0"/>

                 <artifact type="bundle”

                                      name="com.acme.exciting.app" version="[2.0.0, 3.1.0)"/>

</plan>


© 2011 SAP AG. All rights reserved.                                                             19
Hot deployment
Plan




© 2011 SAP AG. All rights reserved.   21
Deploy plans




1. Stop the model bundle (this time lets
    use the Admin Console
    https://localhost:8080/admin
    user: admin
    password: springsource)

2. Request the web application in a new
browser
http://localhost:8080/comics/series.jsf -
what happens?

3. Undeploy both bundles



© 2011 SAP AG. All rights reserved.         22
Deploy plans - atomicity




1. Copy both bundles in repository/usr

2. Create a plan for our application using
the already existing one as a skeleton

3. Deploy the created plan via Admin
Console

4. Check how stopping the model bundle
will affect the application this time




© 2011 SAP AG. All rights reserved.          23
Usage hints
Debug, Security, Supportability
Debugging




Debug options:
 -debug <port>
 -suspend



Serviceability :
 Logs
 Dumps
 Heap dumps




© 2011 SAP AG. All rights reserved.   25
Productive usage




Restrict access:
 Remove Admin console
 Bind OSGi telnet to localhost

Optimize:
 Move artifacts watched  external
 Pre-compile JSPs




© 2011 SAP AG. All rights reserved.   26
Feedback


Mailing list:
https://dev.eclipse.org/mailman/listinfo/vir
go-dev

Virgo forums:
http://www.eclipse.org/forums/index.php
?t=thread&frm_id=159




© 2011 SAP AG. All rights reserved.            27
Thank You!


Contact information:

Hristo Iliev (hsiliev@gmail.com)
Borislav Kapukaranov (b.kapukaranov@gmail.com)
Violeta Georgieva (violeta.georgieva@sap.com)

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVKenny Gryp
 
JavaFX and JEE 7
JavaFX and JEE 7JavaFX and JEE 7
JavaFX and JEE 7Vijay Nair
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199cwspeaks
 
Enterprise Java Hosting in a Cloud Environment
Enterprise Java Hosting in a Cloud EnvironmentEnterprise Java Hosting in a Cloud Environment
Enterprise Java Hosting in a Cloud EnvironmentSweta Vajjhala
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0Frederic Descamps
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXBruno Borges
 
Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...SL Corporation
 
Net Beans61 Platform
Net Beans61 PlatformNet Beans61 Platform
Net Beans61 Platformsatyajit_t
 
Embedding Jaspersoft into your PHP application
Embedding Jaspersoft into your PHP applicationEmbedding Jaspersoft into your PHP application
Embedding Jaspersoft into your PHP applicationMariano Luna
 
Oracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise ApplicationsOracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise Applicationsglynnfoster
 
Continuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesContinuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesMarco Vermeulen
 
Updated resume
Updated resumeUpdated resume
Updated resumepavani p
 
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...VCE
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20Frederic Descamps
 
Best Practices with IPS on Oracle Solaris 11
Best Practices with IPS on Oracle Solaris 11Best Practices with IPS on Oracle Solaris 11
Best Practices with IPS on Oracle Solaris 11glynnfoster
 
V mware white paper virtualizing business-critical applications with confidence
V mware white paper  virtualizing business-critical applications with confidenceV mware white paper  virtualizing business-critical applications with confidence
V mware white paper virtualizing business-critical applications with confidenceReadWrite
 
SOA OSB suite cluster installation
SOA OSB suite cluster installationSOA OSB suite cluster installation
SOA OSB suite cluster installationRakesh Gujjarlapudi
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineDonghuKIM2
 

Was ist angesagt? (20)

MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV
 
Ausoug glassfish perth
Ausoug glassfish perthAusoug glassfish perth
Ausoug glassfish perth
 
JavaFX and JEE 7
JavaFX and JEE 7JavaFX and JEE 7
JavaFX and JEE 7
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199
 
Enterprise Java Hosting in a Cloud Environment
Enterprise Java Hosting in a Cloud EnvironmentEnterprise Java Hosting in a Cloud Environment
Enterprise Java Hosting in a Cloud Environment
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...Monitoring of Web Applications and GlassFish for Performance and Availability...
Monitoring of Web Applications and GlassFish for Performance and Availability...
 
Net Beans61 Platform
Net Beans61 PlatformNet Beans61 Platform
Net Beans61 Platform
 
Embedding Jaspersoft into your PHP application
Embedding Jaspersoft into your PHP applicationEmbedding Jaspersoft into your PHP application
Embedding Jaspersoft into your PHP application
 
Oracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise ApplicationsOracle Solaris 11 - Best for Enterprise Applications
Oracle Solaris 11 - Best for Enterprise Applications
 
Continuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesContinuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBees
 
Updated resume
Updated resumeUpdated resume
Updated resume
 
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
 
Best Practices with IPS on Oracle Solaris 11
Best Practices with IPS on Oracle Solaris 11Best Practices with IPS on Oracle Solaris 11
Best Practices with IPS on Oracle Solaris 11
 
V mware white paper virtualizing business-critical applications with confidence
V mware white paper  virtualizing business-critical applications with confidenceV mware white paper  virtualizing business-critical applications with confidence
V mware white paper virtualizing business-critical applications with confidence
 
SOA OSB suite cluster installation
SOA OSB suite cluster installationSOA OSB suite cluster installation
SOA OSB suite cluster installation
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
 

Ähnlich wie Gemini WEB and Virgo

Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFrançois Le Droff
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseMatt Raible
 
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogicHTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogicOracle
 
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Codemotion
 
Modernize your Solaris Apps
Modernize your Solaris AppsModernize your Solaris Apps
Modernize your Solaris AppsAppZero
 
Virgo 3.0 from OSGi Community Event 2011 at Darmstadt
Virgo 3.0 from OSGi Community Event 2011 at DarmstadtVirgo 3.0 from OSGi Community Event 2011 at Darmstadt
Virgo 3.0 from OSGi Community Event 2011 at DarmstadtChristopher Frost
 
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...Fwdays
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
What's New in AppFuse 2.0
What's New in AppFuse 2.0What's New in AppFuse 2.0
What's New in AppFuse 2.0Matt Raible
 
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010Diyan Yordanov
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)François Le Droff
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practiceslisui0807
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 

Ähnlich wie Gemini WEB and Virgo (20)

Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
 
Seven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
 
Crx 2.2 Deep-Dive
Crx 2.2 Deep-DiveCrx 2.2 Deep-Dive
Crx 2.2 Deep-Dive
 
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogicHTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
 
Sail Fin Webinar Overview
Sail Fin Webinar OverviewSail Fin Webinar Overview
Sail Fin Webinar Overview
 
Jetty Vs Tomcat
Jetty Vs TomcatJetty Vs Tomcat
Jetty Vs Tomcat
 
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
 
Modernize your Solaris Apps
Modernize your Solaris AppsModernize your Solaris Apps
Modernize your Solaris Apps
 
Virgo 3.0 from OSGi Community Event 2011 at Darmstadt
Virgo 3.0 from OSGi Community Event 2011 at DarmstadtVirgo 3.0 from OSGi Community Event 2011 at Darmstadt
Virgo 3.0 from OSGi Community Event 2011 at Darmstadt
 
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
 
Gfp Launch Sailfin Whatis Sreeram
Gfp Launch Sailfin Whatis SreeramGfp Launch Sailfin Whatis Sreeram
Gfp Launch Sailfin Whatis Sreeram
 
GlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and Future
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
DavidWible_res
DavidWible_resDavidWible_res
DavidWible_res
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
What's New in AppFuse 2.0
What's New in AppFuse 2.0What's New in AppFuse 2.0
What's New in AppFuse 2.0
 
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
Migration of Existing Web Applications to OSGi at Eclipse Summit Europe 2010
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practices
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 

Mehr von Hristo Iliev

From the Drawing Board to the Trenches: Building a Production-ready Application
From the Drawing Board to the Trenches: Building a Production-ready ApplicationFrom the Drawing Board to the Trenches: Building a Production-ready Application
From the Drawing Board to the Trenches: Building a Production-ready ApplicationHristo Iliev
 
Cf News september-december 2017
Cf News september-december 2017Cf News september-december 2017
Cf News september-december 2017Hristo Iliev
 
Cf news june september 2017
Cf news june september 2017Cf news june september 2017
Cf news june september 2017Hristo Iliev
 
Resistance is futile, resilience is crucial
Resistance is futile, resilience is crucialResistance is futile, resilience is crucial
Resistance is futile, resilience is crucialHristo Iliev
 
Cf news april june 2017
Cf news april june 2017Cf news april june 2017
Cf news april june 2017Hristo Iliev
 
CF News April Feb-Apr 2017
CF News April Feb-Apr 2017CF News April Feb-Apr 2017
CF News April Feb-Apr 2017Hristo Iliev
 
Diego container scheduler
Diego container schedulerDiego container scheduler
Diego container schedulerHristo Iliev
 
Applications & tasks
Applications & tasksApplications & tasks
Applications & tasksHristo Iliev
 
Cloud foundry history
Cloud foundry historyCloud foundry history
Cloud foundry historyHristo Iliev
 
Buildpacks detect, compile, release
Buildpacks  detect, compile, releaseBuildpacks  detect, compile, release
Buildpacks detect, compile, releaseHristo Iliev
 
What cloud foundry is not
What cloud foundry is notWhat cloud foundry is not
What cloud foundry is notHristo Iliev
 
Don’t talk to strangers: Test isolation with containers
Don’t talk to strangers: Test isolation with containersDon’t talk to strangers: Test isolation with containers
Don’t talk to strangers: Test isolation with containersHristo Iliev
 
Agile Software Development Techniques for Daily Use
Agile Software Development Techniques for Daily UseAgile Software Development Techniques for Daily Use
Agile Software Development Techniques for Daily UseHristo Iliev
 

Mehr von Hristo Iliev (15)

From the Drawing Board to the Trenches: Building a Production-ready Application
From the Drawing Board to the Trenches: Building a Production-ready ApplicationFrom the Drawing Board to the Trenches: Building a Production-ready Application
From the Drawing Board to the Trenches: Building a Production-ready Application
 
Cf News september-december 2017
Cf News september-december 2017Cf News september-december 2017
Cf News september-december 2017
 
CFS NA 2017
CFS NA 2017CFS NA 2017
CFS NA 2017
 
Cf news june september 2017
Cf news june september 2017Cf news june september 2017
Cf news june september 2017
 
Resistance is futile, resilience is crucial
Resistance is futile, resilience is crucialResistance is futile, resilience is crucial
Resistance is futile, resilience is crucial
 
Cf news april june 2017
Cf news april june 2017Cf news april june 2017
Cf news april june 2017
 
CF News April Feb-Apr 2017
CF News April Feb-Apr 2017CF News April Feb-Apr 2017
CF News April Feb-Apr 2017
 
Diego container scheduler
Diego container schedulerDiego container scheduler
Diego container scheduler
 
Applications & tasks
Applications & tasksApplications & tasks
Applications & tasks
 
Cloud foundry history
Cloud foundry historyCloud foundry history
Cloud foundry history
 
Buildpacks detect, compile, release
Buildpacks  detect, compile, releaseBuildpacks  detect, compile, release
Buildpacks detect, compile, release
 
What cloud foundry is not
What cloud foundry is notWhat cloud foundry is not
What cloud foundry is not
 
Sofia meetup #1
Sofia meetup #1Sofia meetup #1
Sofia meetup #1
 
Don’t talk to strangers: Test isolation with containers
Don’t talk to strangers: Test isolation with containersDon’t talk to strangers: Test isolation with containers
Don’t talk to strangers: Test isolation with containers
 
Agile Software Development Techniques for Daily Use
Agile Software Development Techniques for Daily UseAgile Software Development Techniques for Daily Use
Agile Software Development Techniques for Daily Use
 

Gemini WEB and Virgo

  • 1. Hands on Gemini, Virgo, Libra Hristo Iliev, Violeta Georgieva, Borislav Kapukaranov March 22, 2011
  • 2. Libra OSGi Tooling, Creating Web Application Bundle
  • 3. Overview Integrates the existing WTP and PDE tooling. Provides standard tools for OSGi Enterprise application development. Features:  Creation of deployable artifacts  Converting existing Java EE artifacts  Editing and validation of artifact metadata  OSGi server adapter © 2011 SAP AG. All rights reserved. 3
  • 4. Web Application Bundle Creation © 2011 SAP AG. All rights reserved. 4
  • 5. Gemini Web Web Application Bundles (WAB), JSF
  • 6. Overview Model for Java EE Web Applications in OSGi. Interoperability between Java EE Web Application and OSGi Features:  Installation of WAR files and Web Application Bundles (WABs)  Web application lifecycle control  Control of configuration properties via URL parameters © 2011 SAP AG. All rights reserved. 6
  • 7. Gemini Web Building and Running © 2011 SAP AG. All rights reserved. 7
  • 9. Overview Module-based Java application server, designed to run enterprise Java and Spring-powered applications. Features:  Application isolation  Kernel isolation  Provisioning  Hot deployment  Web container  Spring 3  Legacy library support  Supportability © 2011 SAP AG. All rights reserved. 10
  • 10. Features Group Highlights Isolation Scoping User region Provisioning Hot deployment Deploy artifacts Repositories Type dependencies Web Jetty Gemini Web + Tomcat Libraries Spring Synthetic bundle context Supportability Logging Deadlock detection Heap dumps © 2011 SAP AG. All rights reserved. 11
  • 11. Regions © 2011 SAP AG. All rights reserved. 12
  • 13. Running application on Virgo How?  Hot Deploy (pickup directory)  Admin Console  Programmatically © 2011 SAP AG. All rights reserved. 14
  • 14. Deploy bundles 1. Unzip Virgo from the resources/virgo/virgo-tomcat-server- 3.0.0.M03.zip file, located in the tutorial materials 2. Start Virgo using either startup.bat or startup.sh © 2011 SAP AG. All rights reserved. 15
  • 15. Hot deployment Bundles © 2011 SAP AG. All rights reserved. 16
  • 16. Deploy bundles 1. Export from Eclipse & Deploy the model bundle 2. Export & Deploy the web application bundle 3. Check both bundles in Admin Console https://localhost:8080/admin user: admin password: springsource 4. Request the web application here http://localhost:8080/comics/series.jsf © 2011 SAP AG. All rights reserved. 17
  • 17. Application packaging Bundle, WAR  Standard  Well known PAR  Archive with all modules  Atomic  No ordering Plan  Ordering  Scoping, Atomicity Configuration © 2011 SAP AG. All rights reserved. 18
  • 18. Plans <?xml version="1.0" encoding="UTF-8"?> <plan name="multi-artifact.plan“ version="1.0.0” scoped="true“ atomic="true" xmlns=“…" xmlns:xsi=“…" xsi:schemaLocation=“…“> <artifact type="configuration” name="app-properties" version="1.0.0"/> <artifact type="bundle” name="com.acme.exciting.app" version="[2.0.0, 3.1.0)"/> </plan> © 2011 SAP AG. All rights reserved. 19
  • 19. Hot deployment Plan © 2011 SAP AG. All rights reserved. 21
  • 20. Deploy plans 1. Stop the model bundle (this time lets use the Admin Console https://localhost:8080/admin user: admin password: springsource) 2. Request the web application in a new browser http://localhost:8080/comics/series.jsf - what happens? 3. Undeploy both bundles © 2011 SAP AG. All rights reserved. 22
  • 21. Deploy plans - atomicity 1. Copy both bundles in repository/usr 2. Create a plan for our application using the already existing one as a skeleton 3. Deploy the created plan via Admin Console 4. Check how stopping the model bundle will affect the application this time © 2011 SAP AG. All rights reserved. 23
  • 23. Debugging Debug options:  -debug <port>  -suspend Serviceability :  Logs  Dumps  Heap dumps © 2011 SAP AG. All rights reserved. 25
  • 24. Productive usage Restrict access:  Remove Admin console  Bind OSGi telnet to localhost Optimize:  Move artifacts watched  external  Pre-compile JSPs © 2011 SAP AG. All rights reserved. 26
  • 26. Thank You! Contact information: Hristo Iliev (hsiliev@gmail.com) Borislav Kapukaranov (b.kapukaranov@gmail.com) Violeta Georgieva (violeta.georgieva@sap.com)