SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Developing modular
applications with Java EE 6 and
       Enterprise OSGi
    ...and WebSphere V8.5 Liberty Profile



           Jacek Laskowski
                  jacek@japila.pl
                 @JacekLaskowski




                                           wersja 1.0, Riga, Latvia, 29.11.2012
About me
•   Java EE, OSGi and functional programming (Clojure, F# and Scala)
    enthusiast

•   Founder and leader of Warszawa Java User Group

•   Javarsovia, Confitura, warsjawa conference team member

•   Blogger of http://JacekLaskowski.pl

•   Blogger of http://blog.japila.pl

•   @JacekLaskowski

•   Member of Apache Software Foundation

•   Apache OpenEJB and TomEE committer

•   Member of IBM Academy of Technology

•   IBMer in World-wide WebSphere Competitive Migration Team
OSGi Blueprint

                 • Chapter 121
                 • Blueprint Container
                   Specification Version 1.0




                                         @JacekLaskowski
OSGi Blueprint defines a dependency
   injection framework, specifically for OSGi bundles,
    that understands the unique dynamic nature of services.

Bundles in this programming model contain a number of
  XML definition resources which are used by the Blueprint
 Container to wire the application together and start it when
                     the bundle is active.
OSGi Service Platform Release 4,Version 4.2 page 193




                                                       @JacekLaskowski
OSGi Blueprint




                 @JacekLaskowski
OSGi Blueprint
•   Dependency injection framework for OSGi bundles




                                                      @JacekLaskowski
OSGi Blueprint
•   Dependency injection framework for OSGi bundles

•   Programming model




                                                      @JacekLaskowski
OSGi Blueprint
•   Dependency injection framework for OSGi bundles

•   Programming model

    •   XML to define constituents




                                                      @JacekLaskowski
OSGi Blueprint
•   Dependency injection framework for OSGi bundles

•   Programming model

    •   XML to define constituents

•   Enterprise OSGi == OSGi Blueprint




                                                      @JacekLaskowski
OSGi Blueprint
•   Dependency injection framework for OSGi bundles

•   Programming model

    •   XML to define constituents

•   Enterprise OSGi == OSGi Blueprint

    •   For this presentation only




                                                      @JacekLaskowski
Blueprint bundle

          A bundle is a Blueprint bundle if
  it contains one or more blueprint XML definition
                        resources
        in the OSGI-INF/blueprint directory or
   it contains the Bundle-Blueprint manifest header
             referring to existing resources.




                                              @JacekLaskowski
Problems (to be?) solved




                           @JacekLaskowski
Problems (to be?) solved
How can
you know
 the type
  exists?
(visibility)




                           @JacekLaskowski
Problems (to be?) solved
 How can
 you know
  the type
   exists?
 (visibility)


   What
 about the
  available
 methods?
(versioning)
                            @JacekLaskowski
Problems (to be?) solved
 How can
 you know
  the type
   exists?
 (visibility)                How are
                             the parts
                            integrated?
   What
 about the
  available
 methods?
(versioning)
                              @JacekLaskowski
@JacekLaskowski
Demo Time

        @JacekLaskowski
Open questions




                 @JacekLaskowski
Open questions
•   Difference between Maven and OSGi Blueprint




                                                  @JacekLaskowski
Open questions
•   Difference between Maven and OSGi Blueprint

    •   build-time vs runtime




                                                  @JacekLaskowski
Open questions
•   Difference between Maven and OSGi Blueprint

    •   build-time vs runtime

    •   Maven brings the libs to the app and bundles them




                                                            @JacekLaskowski
Open questions
•   Difference between Maven and OSGi Blueprint

    •   build-time vs runtime

    •   Maven brings the libs to the app and bundles them

    •   Do you need to include the libs inside the app if they’re available at
        runtime?




                                                                          @JacekLaskowski
Thanks for listening
   Questions?

   @JacekLaskowski
    http://blog.japila.pl

Más contenido relacionado

La actualidad más candente

There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
jbandi
 

La actualidad más candente (17)

Neo4J and Grails
Neo4J and GrailsNeo4J and Grails
Neo4J and Grails
 
Javaone 2014
Javaone 2014Javaone 2014
Javaone 2014
 
OSGi with the Spring Framework
OSGi with the Spring FrameworkOSGi with the Spring Framework
OSGi with the Spring Framework
 
GraphQL-ify your APIs - Devoxx UK 2021
 GraphQL-ify your APIs - Devoxx UK 2021 GraphQL-ify your APIs - Devoxx UK 2021
GraphQL-ify your APIs - Devoxx UK 2021
 
Polyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4jPolyglot Persistence with MongoDB and Neo4j
Polyglot Persistence with MongoDB and Neo4j
 
Build tool
Build toolBuild tool
Build tool
 
Swift: The Basics
Swift: The BasicsSwift: The Basics
Swift: The Basics
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
 
Polyglot
PolyglotPolyglot
Polyglot
 
Better java with design
Better java with designBetter java with design
Better java with design
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
 
Javascript toolkit
Javascript toolkitJavascript toolkit
Javascript toolkit
 
Becoming fully buzzword compliant
Becoming fully buzzword compliantBecoming fully buzzword compliant
Becoming fully buzzword compliant
 
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel MitarJavantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
 
Javaone - Gradle: Harder, Better, Stronger, Faster
Javaone - Gradle: Harder, Better, Stronger, Faster Javaone - Gradle: Harder, Better, Stronger, Faster
Javaone - Gradle: Harder, Better, Stronger, Faster
 
Morden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web AppsMorden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web Apps
 
Gradle enabled android project
Gradle enabled android projectGradle enabled android project
Gradle enabled android project
 

Similar a Developing modular applications with Java EE 6 and Enterprise OSGi + WebSphere V8.5 Liberty Profile

How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
mfrancis
 
Spring Dynamic Modules for OSGi by Example - Martin Lippert, Consultant
Spring Dynamic Modules for OSGi by Example - Martin Lippert, ConsultantSpring Dynamic Modules for OSGi by Example - Martin Lippert, Consultant
Spring Dynamic Modules for OSGi by Example - Martin Lippert, Consultant
mfrancis
 

Similar a Developing modular applications with Java EE 6 and Enterprise OSGi + WebSphere V8.5 Liberty Profile (20)

OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
 
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
 
OSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon KaegiOSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon Kaegi
 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)
 
Introduction to Spock: A Unit Testing Framework
Introduction to Spock: A Unit Testing FrameworkIntroduction to Spock: A Unit Testing Framework
Introduction to Spock: A Unit Testing Framework
 
Assist software awesome scala
Assist software   awesome scalaAssist software   awesome scala
Assist software awesome scala
 
OpenJDK Penrose Presentation (JavaOne 2012)
OpenJDK Penrose Presentation (JavaOne 2012)OpenJDK Penrose Presentation (JavaOne 2012)
OpenJDK Penrose Presentation (JavaOne 2012)
 
Introduction to Spring & Spring BootFramework
Introduction to Spring  & Spring BootFrameworkIntroduction to Spring  & Spring BootFramework
Introduction to Spring & Spring BootFramework
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
Spring MVC framework
Spring MVC frameworkSpring MVC framework
Spring MVC framework
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
Use Integrated Genome Browser to explore, analyze, and publish genomic data
Use Integrated Genome Browser to explore, analyze, and publish genomic dataUse Integrated Genome Browser to explore, analyze, and publish genomic data
Use Integrated Genome Browser to explore, analyze, and publish genomic data
 
Spring Dynamic Modules for OSGi by Example - Martin Lippert, Consultant
Spring Dynamic Modules for OSGi by Example - Martin Lippert, ConsultantSpring Dynamic Modules for OSGi by Example - Martin Lippert, Consultant
Spring Dynamic Modules for OSGi by Example - Martin Lippert, Consultant
 
Using the Splunk Java SDK
Using the Splunk Java SDKUsing the Splunk Java SDK
Using the Splunk Java SDK
 
Open Social Frameworks
Open Social FrameworksOpen Social Frameworks
Open Social Frameworks
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 

Más de Jacek Laskowski

Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
Jacek Laskowski
 

Más de Jacek Laskowski (11)

 Kafka Streams VS Spark Structured Streaming - Modern Stream Processing Engin...
 Kafka Streams VS Spark Structured Streaming - Modern Stream Processing Engin... Kafka Streams VS Spark Structured Streaming - Modern Stream Processing Engin...
 Kafka Streams VS Spark Structured Streaming - Modern Stream Processing Engin...
 
Opening slides to Warsaw Scala FortyFives on Testing tools
Opening slides to Warsaw Scala FortyFives on Testing toolsOpening slides to Warsaw Scala FortyFives on Testing tools
Opening slides to Warsaw Scala FortyFives on Testing tools
 
#Be #social #FTW aka Your #Professional #Development with #StackOverflow #Git...
#Be #social #FTW aka Your #Professional #Development with #StackOverflow #Git...#Be #social #FTW aka Your #Professional #Development with #StackOverflow #Git...
#Be #social #FTW aka Your #Professional #Development with #StackOverflow #Git...
 
StackOverflow, GitHub, twitter, reddit i Twój profesjonalny rozwój
StackOverflow, GitHub, twitter, reddit i Twój profesjonalny rozwójStackOverflow, GitHub, twitter, reddit i Twój profesjonalny rozwój
StackOverflow, GitHub, twitter, reddit i Twój profesjonalny rozwój
 
Introduction to Web Application Development in Clojure
Introduction to Web Application Development in ClojureIntroduction to Web Application Development in Clojure
Introduction to Web Application Development in Clojure
 
Introduction to Functional Programming in Scala
Introduction to Functional Programming in ScalaIntroduction to Functional Programming in Scala
Introduction to Functional Programming in Scala
 
Moje pierwsze kroki w programowaniu funkcyjnym w Scali
Moje pierwsze kroki w programowaniu funkcyjnym w ScaliMoje pierwsze kroki w programowaniu funkcyjnym w Scali
Moje pierwsze kroki w programowaniu funkcyjnym w Scali
 
Functional web development with Git(Hub), Heroku and Clojure
Functional web development with Git(Hub), Heroku and ClojureFunctional web development with Git(Hub), Heroku and Clojure
Functional web development with Git(Hub), Heroku and Clojure
 
Praktyczne wprowadzenie do OSGi i Enterprise OSGi
Praktyczne wprowadzenie do OSGi i Enterprise OSGiPraktyczne wprowadzenie do OSGi i Enterprise OSGi
Praktyczne wprowadzenie do OSGi i Enterprise OSGi
 
Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
 
(map Clojure everyday-tasks)
(map Clojure everyday-tasks)(map Clojure everyday-tasks)
(map Clojure everyday-tasks)
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Developing modular applications with Java EE 6 and Enterprise OSGi + WebSphere V8.5 Liberty Profile

  • 1. Developing modular applications with Java EE 6 and Enterprise OSGi ...and WebSphere V8.5 Liberty Profile Jacek Laskowski jacek@japila.pl @JacekLaskowski wersja 1.0, Riga, Latvia, 29.11.2012
  • 2. About me • Java EE, OSGi and functional programming (Clojure, F# and Scala) enthusiast • Founder and leader of Warszawa Java User Group • Javarsovia, Confitura, warsjawa conference team member • Blogger of http://JacekLaskowski.pl • Blogger of http://blog.japila.pl • @JacekLaskowski • Member of Apache Software Foundation • Apache OpenEJB and TomEE committer • Member of IBM Academy of Technology • IBMer in World-wide WebSphere Competitive Migration Team
  • 3. OSGi Blueprint • Chapter 121 • Blueprint Container Specification Version 1.0 @JacekLaskowski
  • 4. OSGi Blueprint defines a dependency injection framework, specifically for OSGi bundles, that understands the unique dynamic nature of services. Bundles in this programming model contain a number of XML definition resources which are used by the Blueprint Container to wire the application together and start it when the bundle is active. OSGi Service Platform Release 4,Version 4.2 page 193 @JacekLaskowski
  • 5. OSGi Blueprint @JacekLaskowski
  • 6. OSGi Blueprint • Dependency injection framework for OSGi bundles @JacekLaskowski
  • 7. OSGi Blueprint • Dependency injection framework for OSGi bundles • Programming model @JacekLaskowski
  • 8. OSGi Blueprint • Dependency injection framework for OSGi bundles • Programming model • XML to define constituents @JacekLaskowski
  • 9. OSGi Blueprint • Dependency injection framework for OSGi bundles • Programming model • XML to define constituents • Enterprise OSGi == OSGi Blueprint @JacekLaskowski
  • 10. OSGi Blueprint • Dependency injection framework for OSGi bundles • Programming model • XML to define constituents • Enterprise OSGi == OSGi Blueprint • For this presentation only @JacekLaskowski
  • 11. Blueprint bundle A bundle is a Blueprint bundle if it contains one or more blueprint XML definition resources in the OSGI-INF/blueprint directory or it contains the Bundle-Blueprint manifest header referring to existing resources. @JacekLaskowski
  • 12. Problems (to be?) solved @JacekLaskowski
  • 13. Problems (to be?) solved How can you know the type exists? (visibility) @JacekLaskowski
  • 14. Problems (to be?) solved How can you know the type exists? (visibility) What about the available methods? (versioning) @JacekLaskowski
  • 15. Problems (to be?) solved How can you know the type exists? (visibility) How are the parts integrated? What about the available methods? (versioning) @JacekLaskowski
  • 17. Demo Time @JacekLaskowski
  • 18. Open questions @JacekLaskowski
  • 19. Open questions • Difference between Maven and OSGi Blueprint @JacekLaskowski
  • 20. Open questions • Difference between Maven and OSGi Blueprint • build-time vs runtime @JacekLaskowski
  • 21. Open questions • Difference between Maven and OSGi Blueprint • build-time vs runtime • Maven brings the libs to the app and bundles them @JacekLaskowski
  • 22. Open questions • Difference between Maven and OSGi Blueprint • build-time vs runtime • Maven brings the libs to the app and bundles them • Do you need to include the libs inside the app if they’re available at runtime? @JacekLaskowski
  • 23. Thanks for listening Questions? @JacekLaskowski http://blog.japila.pl