SlideShare a Scribd company logo
1 of 29
Hot Deployable Cocoon Blocks with OSGi Daniel Fagerström [email_address]
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Deja vú? ,[object Object],[object Object],[object Object]
Modularization in 2.2 ,[object Object],[object Object],[object Object],[object Object],[object Object]
How?
OSGi ,[object Object],[object Object],[object Object],[object Object]
What is a block? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What is a Block? What is a Block? Classes,resources Components Sitemap Export packages Import packages Registered services Used services
Block Structure myBlock/ META-INF/ manifest.mf   # bundle manifest cocoon/ spring/ components.xml  # spring components spring/ osgi-services.xml   # spring-osgi – exports & imports org/ apache/ cocoon/ ...  # classes COB-INF/ sitemap.xmap ...  # resources
Component Wiring ,[object Object],[object Object],[object Object]
Spring-OSGi vs. Declarative Services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exporting a Bean <!-- cocoon-xml-impl --> <bean name=&quot; org.apache.cocoon.core.xml.SAXParser &quot; class=&quot;org.apache.cocoon.core.xml.impl.JaxpSAXParser&quot; scope=&quot;singleton&quot;> <property name=&quot;validate&quot;  value=&quot;false&quot;/> </bean> <osgi:service ref=&quot; org.apache.cocoon.core.xml.SAXParser &quot;  interface=&quot; org.apache.cocoon.core.xml.SAXParser &quot;/>
Importing a Bean <!-- cocoon-pipeline-components --> <osgi:reference id=&quot; org.apache.cocoon.core.xml.SAXParser &quot; interface=&quot; org.apache.cocoon.core.xml.SAXParser &quot;/> <bean name=&quot;org.apache.cocoon.generation.Generator/file&quot; class=&quot;org.apache.cocoon.generation.FileGenerator&quot; scope=&quot;prototype&quot;> <property name=&quot;parser&quot;  ref=&quot; org.apache.cocoon.core.xml.SAXParser &quot;/> </bean>
Bean Map ,[object Object]
Bean Map <!-- cocoon-expression-language-impl --> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/js &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/jexl &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/jxpath &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/default &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/>
Bean Map <!-- cocoon-expression-language-impl --> <bean id=&quot; org.apache.cocoon.el.ExpressionFactory &quot; class=&quot;org.apache.cocoon.el.impl.DefaultExpressionFactory&quot;> <property name=&quot;expressionCompilers&quot;> <cosgi:map interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> </property> </bean> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionFactory &quot; interface=&quot;org.apache.cocoon.el.ExpressionFactory&quot;/>
Service Events ,[object Object]
Service Events <!-- cocoon-servlet-service-demo1 --> <osgi:service  ref=&quot;org.apache.cocoon.servletservice.demo1.servlet&quot; interface=&quot; javax.servlet.Servlet &quot;> <osgi:service-properties> <prop key=&quot;mountPath&quot;>/test1</prop> </osgi:service-properties> </osgi:service> <!-- cocoon-servlet-service-demo2 --> <osgi:service  ref=&quot;org.apache.cocoon.servletservice.demo2.servlet&quot; interface=&quot; javax.servlet.Servlet &quot;> <osgi:service-properties> <prop key=&quot;mountPath&quot;>/test2</prop> </osgi:service-properties> </osgi:service>
Service Events <!-- cocoon-servlet-service-impl --> <osgi:reference id=&quot; httpService &quot;  interface=&quot;org.osgi.service.http.HttpService&quot;/> <osgi:collection id=&quot;servletService&quot; interface=&quot; javax.servlet.Servlet &quot;> <osgi:listener bind-method=&quot; setServlet &quot; unbind-method=&quot; unsetServlet &quot; ref=&quot; servletListener &quot;/> </osgi:collection> <bean id=&quot; servletListener &quot;  class=&quot;org.apache.cocoon.servletservice.osgi.Activator&quot;> <property name=&quot;httpService&quot; ref=&quot; httpService &quot;/> </bean>
Tunnelling a Prototype ,[object Object],[object Object]
Tunnelling a Prototype <!-- cocoon-pipeline-components --> <bean name=&quot; org.apache.cocoon.generation.Generator/file &quot; class=&quot;org.apache.cocoon.generation.FileGenerator&quot; scope=&quot;prototype&quot; > <property name=&quot;parser&quot; ref=&quot;org.apache.cocoon.core.xml.SAXParser&quot;/> </bean> <cosgi:service ref=&quot; org.apache.cocoon.generation.Generator/file &quot; interface=&quot; org.apache.cocoon.generation.Generator &quot; factory-export=&quot;true&quot; />
Tunnelling a Prototype <!-- cocoon-core-main-sample --> <cosgi:reference name=&quot; org.apache.cocoon.generation.Generator/file &quot; interface=&quot; org.apache.cocoon.generation.Generator &quot; factory-export=&quot;true&quot; />
Service Manager? ,[object Object],[object Object],[object Object],[object Object]
Cocoon-OSGi Architecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cocoon-OSGi Architecture Blocks /editor / Http Service Dispatcher
Deployment architecture Cocoon platform Blocks Blocks repository (Maven 2) Blocks discovery (OBR) Deployment service
When? ,[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object]

More Related Content

What's hot

"13 ways to run web applications on the Internet" Andrii Shumada
"13 ways to run web applications on the Internet" Andrii Shumada"13 ways to run web applications on the Internet" Andrii Shumada
"13 ways to run web applications on the Internet" Andrii ShumadaFwdays
 
Scale your Magento app with Elastic Beanstalk
Scale your Magento app with Elastic BeanstalkScale your Magento app with Elastic Beanstalk
Scale your Magento app with Elastic BeanstalkCorley S.r.l.
 
10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the worldColdFusionConference
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for DevelopmentChris Tankersley
 
Web Development with NodeJS
Web Development with NodeJSWeb Development with NodeJS
Web Development with NodeJSRiza Fahmi
 
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten ZiegelerMonitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegelermfrancis
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!Andrew Conner
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleHenryk Konsek
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparisonHiroshi Nakamura
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxColdFusionConference
 
Service oriented web development with OSGi
Service oriented web development with OSGiService oriented web development with OSGi
Service oriented web development with OSGiCarsten Ziegeler
 
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...mfrancis
 
CPAN Dependency Heaven
CPAN Dependency HeavenCPAN Dependency Heaven
CPAN Dependency HeavenOpusVL
 

What's hot (20)

"13 ways to run web applications on the Internet" Andrii Shumada
"13 ways to run web applications on the Internet" Andrii Shumada"13 ways to run web applications on the Internet" Andrii Shumada
"13 ways to run web applications on the Internet" Andrii Shumada
 
Realtime with websockets
Realtime with websocketsRealtime with websockets
Realtime with websockets
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
 
Scale your Magento app with Elastic Beanstalk
Scale your Magento app with Elastic BeanstalkScale your Magento app with Elastic Beanstalk
Scale your Magento app with Elastic Beanstalk
 
10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world10 Reasons ColdFusion PDFs should rule the world
10 Reasons ColdFusion PDFs should rule the world
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
Web Development with NodeJS
Web Development with NodeJSWeb Development with NodeJS
Web Development with NodeJS
 
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten ZiegelerMonitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
 
Restful API's with ColdFusion
Restful API's with ColdFusionRestful API's with ColdFusion
Restful API's with ColdFusion
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whale
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQuery
 
GlassFish Embedded API
GlassFish Embedded APIGlassFish Embedded API
GlassFish Embedded API
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandbox
 
Android and REST
Android and RESTAndroid and REST
Android and REST
 
Service oriented web development with OSGi
Service oriented web development with OSGiService oriented web development with OSGi
Service oriented web development with OSGi
 
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
What’s cool in the new and updated OSGi specs (DS, Cloud and more) - David Bo...
 
CPAN Dependency Heaven
CPAN Dependency HeavenCPAN Dependency Heaven
CPAN Dependency Heaven
 
Web sockets in Java
Web sockets in JavaWeb sockets in Java
Web sockets in Java
 

Viewers also liked

PresentacióN1 Franco
PresentacióN1 FrancoPresentacióN1 Franco
PresentacióN1 FrancoVanessac
 
Aula Pedrio Vinha[1]
Aula Pedrio Vinha[1]Aula Pedrio Vinha[1]
Aula Pedrio Vinha[1]dally.psy
 
Nunca Se [1]
Nunca Se [1]Nunca Se [1]
Nunca Se [1]mfmartins
 
SSVM07 Spatio-Temporal Scale-Spaces
SSVM07 Spatio-Temporal Scale-SpacesSSVM07 Spatio-Temporal Scale-Spaces
SSVM07 Spatio-Temporal Scale-SpacesDaniel Fagerstrom
 
How to Improve Your Organization\'s Website Through Usability Testing
How to Improve Your Organization\'s Website Through Usability TestingHow to Improve Your Organization\'s Website Through Usability Testing
How to Improve Your Organization\'s Website Through Usability TestingCAMT
 

Viewers also liked (6)

PresentacióN1 Franco
PresentacióN1 FrancoPresentacióN1 Franco
PresentacióN1 Franco
 
Aula Pedrio Vinha[1]
Aula Pedrio Vinha[1]Aula Pedrio Vinha[1]
Aula Pedrio Vinha[1]
 
Nunca Se [1]
Nunca Se [1]Nunca Se [1]
Nunca Se [1]
 
SSVM07 Spatio-Temporal Scale-Spaces
SSVM07 Spatio-Temporal Scale-SpacesSSVM07 Spatio-Temporal Scale-Spaces
SSVM07 Spatio-Temporal Scale-Spaces
 
Agile Bi Dw
Agile Bi DwAgile Bi Dw
Agile Bi Dw
 
How to Improve Your Organization\'s Website Through Usability Testing
How to Improve Your Organization\'s Website Through Usability TestingHow to Improve Your Organization\'s Website Through Usability Testing
How to Improve Your Organization\'s Website Through Usability Testing
 

Similar to Cocoon OSGi CocoonGT2007

The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's Howmrdon
 
OGCE Project Overview
OGCE Project OverviewOGCE Project Overview
OGCE Project Overviewmarpierc
 
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009marpierc
 
Gert Vanthienen Presentation
Gert Vanthienen PresentationGert Vanthienen Presentation
Gert Vanthienen Presentationguest27deb47
 
cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123Parag Gajbhiye
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0Eugenio Romano
 
Plugins 2.0: The Overview
Plugins 2.0: The OverviewPlugins 2.0: The Overview
Plugins 2.0: The Overviewmrdon
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework BasicMario Romano
 
OCCI Specification Walkthrough
OCCI Specification WalkthroughOCCI Specification Walkthrough
OCCI Specification Walkthroughbefreax
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010Adrian Trenaman
 
Introduction To ASP.NET MVC
Introduction To ASP.NET MVCIntroduction To ASP.NET MVC
Introduction To ASP.NET MVCAlan Dean
 
Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Robert MacLean
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTimothy Oxley
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversTatsuhiko Miyagawa
 
ServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBIServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBIGert Vanthienen
 
WSGI, Repoze, Deliverence
WSGI, Repoze, DeliverenceWSGI, Repoze, Deliverence
WSGI, Repoze, DeliverenceQuintagroup
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformAlfresco Software
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixBruce Snyder
 

Similar to Cocoon OSGi CocoonGT2007 (20)

The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's How
 
OGCE Project Overview
OGCE Project OverviewOGCE Project Overview
OGCE Project Overview
 
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009
 
Gert Vanthienen Presentation
Gert Vanthienen PresentationGert Vanthienen Presentation
Gert Vanthienen Presentation
 
cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123cdac@parag.gajbhiye@test123
cdac@parag.gajbhiye@test123
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
 
Plugins 2.0: The Overview
Plugins 2.0: The OverviewPlugins 2.0: The Overview
Plugins 2.0: The Overview
 
Gohan
GohanGohan
Gohan
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
 
OCCI Specification Walkthrough
OCCI Specification WalkthroughOCCI Specification Walkthrough
OCCI Specification Walkthrough
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
 
Introduction To ASP.NET MVC
Introduction To ASP.NET MVCIntroduction To ASP.NET MVC
Introduction To ASP.NET MVC
 
Spring Surf 101
Spring Surf 101Spring Surf 101
Spring Surf 101
 
Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
 
ServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBIServiceMix 4 -- Integrating OSGi with JBI
ServiceMix 4 -- Integrating OSGi with JBI
 
WSGI, Repoze, Deliverence
WSGI, Repoze, DeliverenceWSGI, Repoze, Deliverence
WSGI, Repoze, Deliverence
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
 

Recently uploaded

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Recently uploaded (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Cocoon OSGi CocoonGT2007

  • 1. Hot Deployable Cocoon Blocks with OSGi Daniel Fagerström [email_address]
  • 2.
  • 3.
  • 4.
  • 5.
  • 7.
  • 8.
  • 9. What is a Block? What is a Block? Classes,resources Components Sitemap Export packages Import packages Registered services Used services
  • 10. Block Structure myBlock/ META-INF/ manifest.mf # bundle manifest cocoon/ spring/ components.xml # spring components spring/ osgi-services.xml # spring-osgi – exports & imports org/ apache/ cocoon/ ... # classes COB-INF/ sitemap.xmap ... # resources
  • 11.
  • 12.
  • 13. Exporting a Bean <!-- cocoon-xml-impl --> <bean name=&quot; org.apache.cocoon.core.xml.SAXParser &quot; class=&quot;org.apache.cocoon.core.xml.impl.JaxpSAXParser&quot; scope=&quot;singleton&quot;> <property name=&quot;validate&quot; value=&quot;false&quot;/> </bean> <osgi:service ref=&quot; org.apache.cocoon.core.xml.SAXParser &quot; interface=&quot; org.apache.cocoon.core.xml.SAXParser &quot;/>
  • 14. Importing a Bean <!-- cocoon-pipeline-components --> <osgi:reference id=&quot; org.apache.cocoon.core.xml.SAXParser &quot; interface=&quot; org.apache.cocoon.core.xml.SAXParser &quot;/> <bean name=&quot;org.apache.cocoon.generation.Generator/file&quot; class=&quot;org.apache.cocoon.generation.FileGenerator&quot; scope=&quot;prototype&quot;> <property name=&quot;parser&quot; ref=&quot; org.apache.cocoon.core.xml.SAXParser &quot;/> </bean>
  • 15.
  • 16. Bean Map <!-- cocoon-expression-language-impl --> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/js &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/jexl &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/jxpath &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionCompiler/default &quot; interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/>
  • 17. Bean Map <!-- cocoon-expression-language-impl --> <bean id=&quot; org.apache.cocoon.el.ExpressionFactory &quot; class=&quot;org.apache.cocoon.el.impl.DefaultExpressionFactory&quot;> <property name=&quot;expressionCompilers&quot;> <cosgi:map interface=&quot; org.apache.cocoon.el.ExpressionCompiler &quot;/> </property> </bean> <osgi:service ref=&quot; org.apache.cocoon.el.ExpressionFactory &quot; interface=&quot;org.apache.cocoon.el.ExpressionFactory&quot;/>
  • 18.
  • 19. Service Events <!-- cocoon-servlet-service-demo1 --> <osgi:service ref=&quot;org.apache.cocoon.servletservice.demo1.servlet&quot; interface=&quot; javax.servlet.Servlet &quot;> <osgi:service-properties> <prop key=&quot;mountPath&quot;>/test1</prop> </osgi:service-properties> </osgi:service> <!-- cocoon-servlet-service-demo2 --> <osgi:service ref=&quot;org.apache.cocoon.servletservice.demo2.servlet&quot; interface=&quot; javax.servlet.Servlet &quot;> <osgi:service-properties> <prop key=&quot;mountPath&quot;>/test2</prop> </osgi:service-properties> </osgi:service>
  • 20. Service Events <!-- cocoon-servlet-service-impl --> <osgi:reference id=&quot; httpService &quot; interface=&quot;org.osgi.service.http.HttpService&quot;/> <osgi:collection id=&quot;servletService&quot; interface=&quot; javax.servlet.Servlet &quot;> <osgi:listener bind-method=&quot; setServlet &quot; unbind-method=&quot; unsetServlet &quot; ref=&quot; servletListener &quot;/> </osgi:collection> <bean id=&quot; servletListener &quot; class=&quot;org.apache.cocoon.servletservice.osgi.Activator&quot;> <property name=&quot;httpService&quot; ref=&quot; httpService &quot;/> </bean>
  • 21.
  • 22. Tunnelling a Prototype <!-- cocoon-pipeline-components --> <bean name=&quot; org.apache.cocoon.generation.Generator/file &quot; class=&quot;org.apache.cocoon.generation.FileGenerator&quot; scope=&quot;prototype&quot; > <property name=&quot;parser&quot; ref=&quot;org.apache.cocoon.core.xml.SAXParser&quot;/> </bean> <cosgi:service ref=&quot; org.apache.cocoon.generation.Generator/file &quot; interface=&quot; org.apache.cocoon.generation.Generator &quot; factory-export=&quot;true&quot; />
  • 23. Tunnelling a Prototype <!-- cocoon-core-main-sample --> <cosgi:reference name=&quot; org.apache.cocoon.generation.Generator/file &quot; interface=&quot; org.apache.cocoon.generation.Generator &quot; factory-export=&quot;true&quot; />
  • 24.
  • 25.
  • 26. Cocoon-OSGi Architecture Blocks /editor / Http Service Dispatcher
  • 27. Deployment architecture Cocoon platform Blocks Blocks repository (Maven 2) Blocks discovery (OBR) Deployment service
  • 28.
  • 29.