Enviar búsqueda
Cargar
Domino OSGi Development
•
17 recomendaciones
•
15,400 vistas
P
Paul Fiore
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 160
Descargar ahora
Descargar para leer sin conexión
Recomendados
IBM Notes Traveler Best Practices
IBM Notes Traveler Best Practices
jayeshpar2006
HCL Domino V12 Key Security Features Overview
HCL Domino V12 Key Security Features Overview
hemantnaik
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
Howard Greenberg
How to use the new Domino Query Language
How to use the new Domino Query Language
Tim Davis
Domino Tech School - Upgrading to Notes/Domino V10: Best Practices
Domino Tech School - Upgrading to Notes/Domino V10: Best Practices
Christoph Adler
IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning
Vladislav Tatarincev
Daos
Daos
Ulrich Krause
HTTP - The Other Face Of Domino
HTTP - The Other Face Of Domino
Gabriella Davis
Recomendados
IBM Notes Traveler Best Practices
IBM Notes Traveler Best Practices
jayeshpar2006
HCL Domino V12 Key Security Features Overview
HCL Domino V12 Key Security Features Overview
hemantnaik
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
Howard Greenberg
How to use the new Domino Query Language
How to use the new Domino Query Language
Tim Davis
Domino Tech School - Upgrading to Notes/Domino V10: Best Practices
Domino Tech School - Upgrading to Notes/Domino V10: Best Practices
Christoph Adler
IBM Domino / IBM Notes Performance Tuning
IBM Domino / IBM Notes Performance Tuning
Vladislav Tatarincev
Daos
Daos
Ulrich Krause
HTTP - The Other Face Of Domino
HTTP - The Other Face Of Domino
Gabriella Davis
Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and Managing
Gabriella Davis
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
Howard Greenberg
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Howard Greenberg
Enable Domino Data Access Services (DAS)
Enable Domino Data Access Services (DAS)
Slobodan Lohja
RNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance Boost
Christoph Adler
Important tips on Router and SMTP mail routing
Important tips on Router and SMTP mail routing
jayeshpar2006
RNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes Client
Christoph Adler
RESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWork
John Dalsgaard
60 Admin Tips
60 Admin Tips
Gabriella Davis
IBM Lotus Notes Clients - Differences
IBM Lotus Notes Clients - Differences
Dvir Reznik
Domino policies deep dive
Domino policies deep dive
Martijn de Jong
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
andrewscott01
The Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad Web
panagenda
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
panagenda
The View - Lotusscript coding best practices
The View - Lotusscript coding best practices
Bill Buchan
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
Ulrich Krause
Best Practice TLS for IBM Domino
Best Practice TLS for IBM Domino
Jared Roberts
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting Replication
Benedek Menesi
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Christoph Adler
Spnego configuration
Spnego configuration
Gabriella Davis
Let me introduce you: DOTS
Let me introduce you: DOTS
Frank van der Linden
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
Serdar Basegmez
Más contenido relacionado
La actualidad más candente
Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and Managing
Gabriella Davis
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
Howard Greenberg
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Howard Greenberg
Enable Domino Data Access Services (DAS)
Enable Domino Data Access Services (DAS)
Slobodan Lohja
RNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance Boost
Christoph Adler
Important tips on Router and SMTP mail routing
Important tips on Router and SMTP mail routing
jayeshpar2006
RNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes Client
Christoph Adler
RESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWork
John Dalsgaard
60 Admin Tips
60 Admin Tips
Gabriella Davis
IBM Lotus Notes Clients - Differences
IBM Lotus Notes Clients - Differences
Dvir Reznik
Domino policies deep dive
Domino policies deep dive
Martijn de Jong
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
andrewscott01
The Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad Web
panagenda
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
panagenda
The View - Lotusscript coding best practices
The View - Lotusscript coding best practices
Bill Buchan
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
Ulrich Krause
Best Practice TLS for IBM Domino
Best Practice TLS for IBM Domino
Jared Roberts
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting Replication
Benedek Menesi
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Christoph Adler
Spnego configuration
Spnego configuration
Gabriella Davis
La actualidad más candente
(20)
Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and Managing
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be Hacked
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
Enable Domino Data Access Services (DAS)
Enable Domino Data Access Services (DAS)
RNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance Boost
Important tips on Router and SMTP mail routing
Important tips on Router and SMTP mail routing
RNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes Client
RESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWork
60 Admin Tips
60 Admin Tips
IBM Lotus Notes Clients - Differences
IBM Lotus Notes Clients - Differences
Domino policies deep dive
Domino policies deep dive
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
The Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad Web
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
Bewährte Praktiken für HCL Notes/Domino-Sicherheit. Teil 2: Der Domino-Server
The View - Lotusscript coding best practices
The View - Lotusscript coding best practices
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
Best Practice TLS for IBM Domino
Best Practice TLS for IBM Domino
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting Replication
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Spnego configuration
Spnego configuration
Destacado
Let me introduce you: DOTS
Let me introduce you: DOTS
Frank van der Linden
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
Serdar Basegmez
The power of dots
The power of dots
Frank van der Linden
BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!
Craig Schumann
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
Teamstudio
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
Teamstudio
IBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino Applications
Ed Brill
Connect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer Experience
panagenda
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
Frank van der Linden
jmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services Jumpstart
Bill Buchan
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
John Dalsgaard
IBM Connect2014 JMP106
IBM Connect2014 JMP106
Thomas Evans
SpeedGeeking! Mobile Application development with IBM XPages
SpeedGeeking! Mobile Application development with IBM XPages
Bruce Elgort
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Bruce Elgort
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
Niklas Heidloff
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
John Head
Bootstrap4XPages webinar
Bootstrap4XPages webinar
Mark Leusink
Java for XPages Development
Java for XPages Development
Teamstudio
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
Stephan H. Wissel
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
panagenda
Destacado
(20)
Let me introduce you: DOTS
Let me introduce you: DOTS
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
The power of dots
The power of dots
BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
IBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino Applications
Connect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer Experience
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
jmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services Jumpstart
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
IBM Connect2014 JMP106
IBM Connect2014 JMP106
SpeedGeeking! Mobile Application development with IBM XPages
SpeedGeeking! Mobile Application development with IBM XPages
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
Bootstrap4XPages webinar
Bootstrap4XPages webinar
Java for XPages Development
Java for XPages Development
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
BP107: Ten Lines Or Less: Interesting Things You Can Do In Java With Minimal ...
Similar a Domino OSGi Development
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT Group
Ad106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Better
ddrschiw
What is Google App Engine?
What is Google App Engine?
weschwee
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
ddrschiw
Tech Talk Comp Apps851 20090930
Tech Talk Comp Apps851 20090930
Michael Masterson
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
Shlomo Vanunu
Domino X Pages 8.5
Domino X Pages 8.5
John Head
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT Group
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpages
ddrschiw
Samba management Console
Samba management Console
Manfred Furuholmen
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
Arun Gupta
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
Alexis Moussine-Pouchkine
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
mfrancis
Lotus Sametime 8.5: Using the new Sametime System Console
Lotus Sametime 8.5: Using the new Sametime System Console
jackdowning
Don Schwarz App Engine Talk
Don Schwarz App Engine Talk
Tech in the Middle
GlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox Felix
Ludovic Champenois
WebBee rapid web app development teck stack
WebBee rapid web app development teck stack
ALDAN3
20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logo
Adrian Trenaman
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
François Le Droff
2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical Update
WSO2
Similar a Domino OSGi Development
(20)
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
Ad106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Better
What is Google App Engine?
What is Google App Engine?
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Tech Talk Comp Apps851 20090930
Tech Talk Comp Apps851 20090930
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
Domino X Pages 8.5
Domino X Pages 8.5
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpages
Samba management Console
Samba management Console
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Lotus Sametime 8.5: Using the new Sametime System Console
Lotus Sametime 8.5: Using the new Sametime System Console
Don Schwarz App Engine Talk
Don Schwarz App Engine Talk
GlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox Felix
WebBee rapid web app development teck stack
WebBee rapid web app development teck stack
20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logo
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical Update
Último
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Roshan Dwivedi
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Último
(20)
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Slack Application Development 101 Slides
Slack Application Development 101 Slides
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Domino OSGi Development
1.
SHOW112 Domino® OSGi Development David
Taieb | Senior Software Engineer | IBM Paul Fiore | Advisory Software Engineer | IBM Elizabeth Sawyer | Development Manager | IBM © 2012 IBM Corporation
2.
IBM’s statements regarding
its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. 2 | © 2012 IBM Corporation
3.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 3 | © 2012 IBM Corporation
4.
Opening comments
A Social Business is... This dynamic, open framework enables you ● Engaged to be nimble and ● Transparent develop applications ● Nimble faster and easier. What is Domino OSGi? 4 | © 2012 IBM Corporation
5.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 5 | © 2012 IBM Corporation
6.
Introduction to OSGi™ ■
OSGi used to stand for Open Service Gateway Initiative but is now just a trademark used to define the specifications for a module system and service platform ■ Component model: OSGi bundle ─ Private classpath: each bundle has its own classloader ─ Static resources ─ Fine grained dependencies control via package import/export ■ Many other capabilities available ─ Easy deployment ─ Hot installation and dynamic configuration ─ Provisioning ─ Lifecycle via Bundle activator ■ Multiple open source implementations ─ Eclipse equinox ─ Apache felix, Knopflerfish, Karaf, Concierge… | © 2012 IBM Corporation
7.
Where is it
used in IBM Lotus® Notes®/Domino®? OSGi integration within the HTTP task Xpages runtime enhanced to run as OSGi plugins Domino Server 8.5.3+ Security, OSGi console, … Expand OSGi support to other Extension points Domino services ●Rest APIs Notes Designer UI rewrite ●Open Social Container as plugins running within ●XPages Extension Library same process as Notes Client ●Domino OSGi Tasklet Service New Eclipse editor for Xpages Java, CSS, LotusScript Domino Server 8.5.2 ●Domino Servlet Container Notes Client UI rewrite using Expeditor/RCP platform Tight Mail integration Extension points Preferences, ISA Domino Designer 8.5 Notes Client 8.0 | © 2012 IBM Corporation
8.
IBM Lotus Domino
OSGi in HTTP architecture Bridge Services XPages Extension Ajax Library Rest Proxy Policy Custom APIs Servlet plugins Servlet ● OSGi start/stop ● XPages Classloading Domino ● OSGi Console XPages Plugins Web Application Services ● Common logging Runtime Web ● Request Equinox HTTP Expeditor Web Engine JNI dispatching Service Container ● Domino Context (HTTP Task) Domino OSGi Core Services Logging, Security, HTTP request Context OSGi™ / RCP Framework Java™ Runtime Environment | © 2012 IBM Corporation
9.
IBM Lotus Domino
OSGi Tasklet Service architecture Bridge Services ● OSGi start/stop Tasklet Tasklet Tasklet Tasklet Plugin Plugin Plugin Plugin ● Message Queue ● OSGi Console Domino ● Common logging Service Thread OSGi ● Profile support Manual Tasklet JNI Service Thread Service DOTS Core Service Scheduled Logging, Profile, Security Service Thread Triggered (DOTS) OSGi™ / RCP Framework Java™ Runtime Environment | © 2012 IBM Corporation
10.
Multiple deployments ■
File based ─ Bundles are packaged as jars or directories and dropped into the server file system ─ Recommended location is {DominoData}/domino/workspace/applications ─ Bundles execute with maximum security privileges ■ NSF Based ─ Bundles are imported into a database using the UpdateSite.ntf template ─ Server is configured to use the updateSite database (notes.ini variable for HTTP, Profile for DOTS) ─ Documents containing the bundles must be signed with privileged user id to load, after which bundles execute with maximum security privileges ■ PDE tool: Developer configuration ─ Server is instrumented to run bundles directly from eclipse workspace: deployment-less ─ No need to export bundles every time a change is made ─ Bundle are not physically installed making it easy to switch between configurations | © 2012 IBM Corporation
11.
Why does it
matter to you? ■ OSGi is now a very important part of the Notes/Domino programming model ─ Notes Client ─ Domino Designer ─ Domino Server: XPages, DOTS, Domino Web Container, Open Social Container, etc... ■ OSGi skills are required for writing any next generation Notes/Domino application. ■ In this session, we'll show you how: ─ To set up your development environment for Domino OSGi programming ─ Create a plugin for the HTTP Equinox Service, the XPD Web Container, XPages Extension Library and DOTS ─ How to run and debug these plugins using all 3 deployment methods: File Based, NSF Based and PDE Tool | © 2012 IBM Corporation
12.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 12 | © 2012 IBM Corporation
13.
Prerequisites ■
IBM Lotus Domino Server, 8.5.2+ ─ http://www.ibm.com/developerworks/downloads/ls/lsds ■ Eclipse, 3.6.2+ ─ http://www.eclipse.org/downloads ■ IBM Lotus Domino Debug Plugin (PDE tool) ─ http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=IBM%20Lotus %20Domino%20Debug%20Plugin ■ OSGi Tasklet Service for IBM Lotus Domino, 2.0.3+ ─ http://www.openntf.org/internal/home.nsf/release.xsp? databaseName=CN=NotesOSS2/O=NotesOSS!! Projects/pmt.nsf&documentId=84018B5D35E44E2F8625795E00140D3A&action=openDocument ■ XPages Extension Library ─ Domino 8.5.3 Upgrade Pack 1 ─ or http://www.openntf.org/internal/home.nsf/release.xsp? databaseName=CN=NotesOSS2/O=NotesOSS!!Projects/ pmt.nsf&documentId=2E25B5DA1BDFB9B48625794D005B0821&action=openDocument 13 | © 2012 IBM Corporation
14.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 14 | © 2012 IBM Corporation
15.
Domino OSGi for
HTTP ■ In the next few sections, we'll demonstrate capabilities related to Domino OSGi for the HTTP task ─ Create, deploy & debug an OSGi plugin that contributes a simple Hello World J2EE servlet using the Equinox HTTP Service ─ Create & deploy an OSGi plugin that contributes a complete J2EE web app using to the IBM Lotus eXpeditor™ Web Container. ─ Create & deploy an OSGi plugin that contributes an XPage custom control to the XPages Extension Library ■ As a prerequisite, the next few slides will show you how to set up your Eclipse development environment for creating OSGi plugins for the Domino OSGi framework ■ As part of this preparation, we'll also show you how to install the IBM Lotus Domino Debug Plugin (a.k.a. PDE tool). This tool helps you deploy and run your plugins directly from your eclipse workspace, thus tremendously improving your productivity. 15 | © 2012 IBM Corporation
16.
Environment setup for
HTTP (Perspective) ■ Switch into the Plug-in Perspective ─ Window->Open Perspective->Other... ─ Select Plug-In Development and Click OK 16 | © 2012 IBM Corporation
17.
Environment setup for
HTTP (Target Platform) ■ Set up the Target Platform ─ Window->Preferences ─ Select Plug-in Development->Target Platform ─ Click on the Add... button 17 | © 2012 IBM Corporation
18.
Environment setup for
HTTP (Target Platform) ■ On the Target Definition screen ─ Select: “Nothing: Start with an empty target definition” ─ Click on the Next button ■ On the Target Content screen click the Add button 18 | © 2012 IBM Corporation
19.
Environment setup for
HTTP (Target Platform) ■ On the Add Content screen, select Directory and click the Next button ■ Add the {DominoBin}osgircpeclipse directory and click the Finish button ■ Repeat the process to add the {DominoBin}osgisharedeclipse directory 19 | © 2012 IBM Corporation
20.
Environment setup for
HTTP (Target Platform) ■ Give your target platform a Name, this can be whatever you want ─ Click on the Finish button ■ Select the new Target definition you just created and click the OK button 20 | © 2012 IBM Corporation
21.
Environment setup for
HTTP (Notes.jar) ■ Create a workspace plug-in to expose Notes.jar during development ─ File->New->Plug-in-Project 21 | © 2012 IBM Corporation
22.
Environment setup for
HTTP (Notes.jar) ■ Project Name: com.ibm.notes.java.api ─ Select “an OSGi framework” radio button under the Target Platform section ─ Click on the Next button ■ On the Content screen click on the Finish button 22 | © 2012 IBM Corporation
23.
Environment setup for
HTTP (Notes.jar) ■ From the Package Explorer view, right click on the com.ibm.notes.java.api project and select Import... from the context menu 23 | © 2012 IBM Corporation
24.
Environment setup for
HTTP (Notes.jar) ■ Select General->File System and click the Next button ■ Browse to the {DominoBin}jvmlibext directory ─ Select Notes.jar from the file list ─ Click on the Finish button 24 | © 2012 IBM Corporation
25.
Environment setup for
HTTP (Notes.jar) ■ Edit the META-INFMANIFEST.MF file and go to the Runtime tab ■ Click on the Add... button under the Classpath section 25 | © 2012 IBM Corporation
26.
Environment setup for
HTTP (Notes.jar) ■ Select the Notes.jar file and click on the OK button ■ Make sure the check box “Update the build path” is selected ■ Click on the OK button 26 | © 2012 IBM Corporation
27.
Environment setup for
HTTP (Notes.jar) ■ Back on the Runtime tab click on the Add... button under the Exported section ■ Select all the packages from the Exported Packages screen and click on the OK button 27 | © 2012 IBM Corporation
28.
Environment setup for
HTTP (Notes.jar) ■ Save the MANIFEST.MF file (File->Save or Ctrl-S) and close the editor window 28 | © 2012 IBM Corporation
29.
Environment setup for
HTTP (PDE tool) ■ Install the IBM Lotus Domino Debug Plug-in ─ Help->Install New Software... 29 | © 2012 IBM Corporation
30.
Environment setup for
HTTP (PDE tool) ■ On the Install screen click on the Add... button ■ Give the Plugin any name you want ─ Click on the Archive... button and select the zip file you downloaded for the PDE Tool from OpenNTF ─ Click on the OK button 30 | © 2012 IBM Corporation
31.
Environment setup for
HTTP (PDE tool) ■ Select the Domino Debug Plugin and the Domino Debug Feature ■ Click on the Next button Make sure the only software sites enabled are ones you currently want to update. 31 | © 2012 IBM Corporation
32.
Environment setup for
HTTP (PDE tool) ■ On the Install screen click on the Next button ■ On the License screen, select the “I accept the terms of the license agreement” and click on the Finish button ─ Click the OK button on any Security Warning dialogs ■ When prompted click on the Restart Now button on the Software Updates dialog 32 | © 2012 IBM Corporation
33.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 33 | © 2012 IBM Corporation
34.
Creating a simple
servlet running on Equinox Bridge Services XPages Extension Ajax Library Rest Proxy Policy Custom APIs Servlet plugins Servlet ● OSGi start/stop ● XPages Classloading Domino ● OSGi Console XPages Plugins Web Application Services ● Common logging Runtime Web ● Request Equinox HTTP Expeditor Web Engine JNI dispatching Service Container ● Domino Context (Http Task) Domino OSGi Core Services Logging, Security, HTTP request Context OSGi™ / RCP Framework Java™ Runtime Environment | © 2012 IBM Corporation
35.
Section goals ■
Create an OSGi plugin that contributes a simple servlet using the Equinox HTTP Service ■ The Equinox HTTP Service provides a way to create lightweight servlets via Eclipse Equinox extension points without the need to produce a full J2EE web app (as specified by the J2EE standard specification) ■ It is recommended to use this method when you need to create stand-alone servlets that do not require the use of more sophisticated J2EE APIs like filters. ■ As an example, the Domino Rest APIs are implemented using this framework. ■ In this section, we'll also show you how to deploy and debug your plugin using the PDE tool | © 2012 IBM Corporation
36.
Creating a simple
servlet running on Equinox ■ Create a new workspace plug-in ─ File->New->Plug-in-Project 36 | © 2012 IBM Corporation
37.
Creating a simple
servlet running on Equinox ■ Project Name: com.ibm.ls2012 ─ Select “an OSGi framework” radio button under the Target Platform section ─ Click on the Next button ■ On the Content screen change the name to SimpleServlet ─ Click on the Finish button 37 | © 2012 IBM Corporation
38.
Creating a simple
servlet running on Equinox ■ Edit the META-INFMANIFEST.MF file and go to the Dependencies tab ■ Click on the Add... button under Imported Packages add the plug-ins listed below 38 | © 2012 IBM Corporation
39.
Creating a simple
servlet running on Equinox ■ Right click on the com.ibm.ls2012 package and click New->Class 39 | © 2012 IBM Corporation
40.
Creating a simple
servlet running on Equinox ■ Create a new Java class named SimpleServlet extending javax.servlet.http.HttpServlet 40 | © 2012 IBM Corporation
41.
Creating a simple
servlet running on Equinox ■ Go to the Overview tab, under Extension / Extension Point Content and click on Extensions ■ Click Yes on the Extensions pages hidden screen 41 | © 2012 IBM Corporation
42.
Creating a simple
servlet running on Equinox ■ Go to the Extensions tab and click the Add button... 42 | © 2012 IBM Corporation
43.
Creating a simple
servlet running on Equinox ■ Deselect the “Show only extension points from the required plug-ins” ─ Select the org.eclipse.equinox.http.registry.servlets Extension Point ─ Click on the Finish button ■ On the New plug-in dependency screen, click the Yes button 43 | © 2012 IBM Corporation
44.
Creating a simple
servlet running on Equinox ■ Go to the plugin.xml tab and add the following content Matching urls: ●http://{server}/simpledemo ●http://{server}/{db.nsf}/simpledemo 44 | © 2012 IBM Corporation
45.
Deploying & debugging
a simple servlet ■ Click on Run->Debug Configurations... 45 | © 2012 IBM Corporation
46.
Deploying & debugging
a simple servlet ■ Create a new OSGi Framework 46 | © 2012 IBM Corporation
47.
Deploying & debugging
a simple servlet Deselect all plug-ins from the Target Platform 47 | © 2012 IBM Corporation
48.
Deploying & debugging
a simple servlet ■ Create a new Remote Java Application 48 | © 2012 IBM Corporation
49.
Deploying & debugging
a simple servlet 49 | © 2012 IBM Corporation
50.
Deploying & debugging
a simple servlet ■ Click on the HTTP OSGi Framework and then click the Debug button ─ This launches the PDE Tool ─ Select the Domino Binary Directory, Data will pre-populate to default ─ Click on the OK Button ■ If everything worked OK then you'll see a Success dialog ─ Click on the OK button 50 | © 2012 IBM Corporation
51.
Deploying & debugging
a simple servlet ■ Set a break point in the code ■ Enable debugging via notes.ini ─ JavaEnableDebug=1 ─ JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000 ■ Restart HTTP on the server ■ Go back to Run->Debug Configurations... ─ Select SimpleServlet under Remote Java Applications ─ Click on the Debug button 51 | © 2012 IBM Corporation
52.
Deploying & debugging
a simple servlet ■ Browse to http://{server}/simpledemo ■ Confirm the switch to the Debug Perspective by clicking the Yes button 52 | © 2012 IBM Corporation
53.
Deploying & debugging
a simple servlet ■ Debug as required 53 | © 2012 IBM Corporation
54.
Deploying & debugging
a simple servlet ■ Output 54 | © 2012 IBM Corporation
55.
Deploying & debugging
a simple servlet ■ Browse to http://{server}/{db.nsf}/simpledemo ■ Authentication / Authorization can be done via HttpContext interface 55 | © 2012 IBM Corporation
56.
Deploying & debugging
a simple servlet ■ On the server console you can manage this servlet like any other OSGi plug-in 56 | © 2012 IBM Corporation
57.
Summary of what
we accomplished in this section ■ We learned how to create an OSGi plugin that contribute a simple servlet using the Equinox HTTP Service ■ We deployed the plugin using the PDE Tool ■ We configured the HTTP Task to run in debug mode and attached a debugging session from Eclipse. ■ We learned how to debug through the servlet code. ■ We also showed a few OSGi console commands to verify the status of our plugins. 57 | © 2012 IBM Corporation
58.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 58 | © 2012 IBM Corporation
59.
Creating a plugin
for the Domino XPD Web Container Bridge Services XPages Extension Ajax Library Rest Proxy Policy Custom APIs Servlet plugins Servlet ● OSGi start/stop ● XPages Classloading Domino ● OSGi Console XPages Plugins Web Application Services ● Common logging Runtime Web ● Request Equinox HTTP Expeditor Web Engine JNI dispatching Service Container ● Domino Context (Http Task) Domino OSGi Core Services Logging, Security, HTTP request Context OSGi™ / RCP Framework Java™ Runtime Environment | © 2012 IBM Corporation
60.
Section goals ■
Create an OSGi plugin that contributes a J2EE web app to the eXpeditor™ Web Container ─ The J2EE web app contains a fully functional web.xml descriptor with simple Hello World Servlet that output a static message ─ Feel free to augment the sample web app by using other APIs of the J2EE specs like Filter, security-constraints, etc... ■ Deploy the plugin to the Domino Server using an NSF-based repository ─ This method of deployment is interesting because it leverages the replication capabilities of NSF allowing allowing you to automatically deploy the plugin to all the Domino servers in your cluster. ■ Verify that the plugin is correctly installed using OSGi console commands ■ Invoke the web app from a browser | © 2012 IBM Corporation
61.
Reminder of what
the target platform should be | © 2012 IBM Corporation
62.
Plugin for the
Domino XPD Web Container Use PDE Tool to configure the com.ibm.notes.java.api plugin | © 2012 IBM Corporation
63.
Standard New Plugin
Project Wizard | © 2012 IBM Corporation
64.
Standard New Plugin
Project Wizard (2) | © 2012 IBM Corporation
65.
Plugin configuration
| © 2012 IBM Corporation
66.
Fix the manifest
| © 2012 IBM Corporation
67.
Create the extension
point | © 2012 IBM Corporation
68.
Update the dependencies
| © 2012 IBM Corporation
69.
Configure the extension
point contextRoot | © 2012 IBM Corporation
70.
Configure the extension
point contentLocation | © 2012 IBM Corporation
71.
Create the “WebContent”
folder | © 2012 IBM Corporation
72.
Create the “WEB-INF”
directory under WebContent | © 2012 IBM Corporation
73.
Create the “web.xml”
file J2EE descriptor | © 2012 IBM Corporation
74.
Add a reference
to the HelloWorld Servlet in web.xml HelloWorld Servlet class to be created in the project | © 2012 IBM Corporation
75.
Create the HelloWorld
Servlet class | © 2012 IBM Corporation
76.
Create the HelloWorldServlet
class (2) | © 2012 IBM Corporation
77.
Edit HelloWorldServlet.java and
override doGet method Type doGet and Ctrl+Space | © 2012 IBM Corporation
78.
Add logic to
doGet method | © 2012 IBM Corporation
79.
Update the build.properties
file to add plugin.xml and WebContent entries | © 2012 IBM Corporation
80.
Create eclipse feature
project | © 2012 IBM Corporation
81.
Add helloworld plugin
to the feature | © 2012 IBM Corporation
82.
Create the eclipse
site project | © 2012 IBM Corporation
83.
Add the helloworld
feature to the site | © 2012 IBM Corporation
84.
Build the site
| © 2012 IBM Corporation
85.
Create an updateSite
database from Notes client ■ Use FileNew Application to create a database on the server that is based on the Eclipse Update Site template | © 2012 IBM Corporation
86.
Import local update
site | © 2012 IBM Corporation
87.
Give admin rights
to user who imported the site | © 2012 IBM Corporation
88.
Configure the server
notes.ini to use the updateSite db | © 2012 IBM Corporation
89.
Verify that the
plugin is correctly loaded in the server Verify that the helloworld plugin is correctly loaded Get diagnostic information about the helloworld plugin Many OSGi console commands ●Use tell http osgi help ●Or go to http://www.eclipse.org | © 2012 IBM Corporation
90.
Test the plugin
from a browser | © 2012 IBM Corporation
91.
Summary of what
we accomplished in this section ■ We created a new OSGi plugin that contributes a J2EE web app to the eXpeditor Web Container ■ We deployed the plugin using an NSF Based repository ■ We tested the plugin in a browser | © 2012 IBM Corporation
92.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 92 | © 2012 IBM Corporation
93.
Creating a plugin
for the XPages Extension Library Bridge Services XPages Extension Ajax Library Rest Proxy Policy Custom APIs Servlet plugins Servlet ● OSGi start/stop ● XPages Classloading Domino ● OSGi Console XPages Plugins Web Application Services ● Common logging Runtime Web ● Request Equinox HTTP Expeditor Web Engine JNI dispatching Service Container ● Domino Context (Http Task) Domino OSGi Core Services Logging, Security, HTTP request Context OSGi™ / RCP Framework Java™ Runtime Environment | © 2012 IBM Corporation
94.
Section Goals ■
Set up your development environment to work with the XPages Extension Library. ■ Create an OSGi plugin that contributes a Hello World custom control to the XPages Extension Library (the Hello World Control simply output a static html DIV tag with a hello World sentence) ■ Deploy the plugin to the server using the PDE tool ■ Create a feature and update site to be installed in Domino Designer ■ Create a sample XPage from Designer using the XPages editor graphic capabilities to use the HelloWorld custom control ■ Run the XPage from a browser. | © 2012 IBM Corporation
95.
Download the XPages
extlib plugins and add them to the target platform. ■ Download from openNTF project: ─ http://extlib.openntf.org | © 2012 IBM Corporation
96.
Standard New Plugin
Project Wizard | © 2012 IBM Corporation
97.
Standard New Plugin
Project Wizard(2) | © 2012 IBM Corporation
98.
Plugin configuration
| © 2012 IBM Corporation
99.
Create the extension
point | © 2012 IBM Corporation
100.
Update the manifest
dependencies add com.ibm.xsp.extlib and com.ibm.xsp.core | © 2012 IBM Corporation
101.
Configure the “com.ibm.commons.Extension”
extension point Type of Extension we're implementing | © 2012 IBM Corporation
102.
Create the extension
library config class ■ This class is used to configure the XSP config files | © 2012 IBM Corporation
103.
Wire the xsp
xml files to the HelloWorldLibrary class public class HelloWorldLibrary extends AbstractXspLibrary { /** * */ public HelloWorldLibrary() { } /* (non-Javadoc) * @see com.ibm.xsp.library.XspLibrary#getLibraryId() */ @Override public String getLibraryId() { return "com.ibm.ls2012.extlib.helloWorldLib"; } Unique id for the library @Override public String getPluginId() { return "com.ibm.ls2012.extlib.helloWorldControl"; } Current Plugin id @Override public String[] getXspConfigFiles() { return new String[]{ "META-INF/extlib-helloWorld.xsp-config" // $NON-NLS-1$ }; List of Xsp configs files for this control } @Override public String[] getFacesConfigFiles() { return new String[]{ "META-INF/extlib-helloWorld-faces-config.xml" // $NON-NLS-1$ }; List of Faces configs files for this control } } | © 2012 IBM Corporation
104.
Create the com.ibm.xsp.Library
service file ■ Under srcMETA-INFservices directory | © 2012 IBM Corporation
105.
Create the META-INF/extlib-helloWorld.xsp-config <?xml
version="1.0" encoding="UTF-8"?> <faces-config> <faces-config-extension> <namespace-uri>http://www.ibm.com/xsp/coreex</namespace-uri> <default-prefix>xe</default-prefix> </faces-config-extension> <component> <description>A HelloWorld control for LS2012</description> <display-name>HelloWorldLS2012</display-name> <component-type>com.ibm.ls2012.extlib.helloworldcontrol.HelloWorldControl</component-type> <component-class>com.ibm.ls2012.extlib.helloworldcontrol.HelloWorldControl</component-class> <property> <description>Sample Property Description</description> <display-name>Sample Property</display-name> <property-name>sampleProperty</property-name> Component class we'll create next <property-class>java.lang.String</property-class> <property-extension> <designer-extension> <category>basics</category> </designer-extension> </property-extension> </property> <component-extension> <component-family>com.ibm.ls2012.extlib.hellowworldcontrol</component-family> <tag-name>helloWorld</tag-name> <designer-extension> <in-palette>true</in-palette> <category>Extension Library</category> </designer-extension> </component-extension> </component> </faces-config> | © 2012 IBM Corporation
106.
Create the META-INF/extlib-helloWorld-faces-config.xml <?xml
version="1.0" encoding="UTF-8"?> <faces-config> <render-kit> <renderer> <component-family>com.ibm.ls2012.extlib.hellowworldcontrol</component-family> <renderer-type>com.ibm.ls2012.extlib.helloworldcontrol.html_basic.gadget</renderer-type> <renderer-class>com.ibm.ls2012.extlib.helloworldcontrol.HelloWorldControlRenderer</renderer-class> </renderer> </render-kit> </faces-config> Render class. We'll create one for html | © 2012 IBM Corporation
107.
Create the HelloWorldControlRender
class | © 2012 IBM Corporation
108.
Create the HelloWorldControlRender
class (2) public class HelloWorldControlRenderer extends Renderer { /** * */ public HelloWorldControlRenderer() { } @Override public void encodeBegin(FacesContext context, UIComponent component)throws IOException { super.encodeBegin(context, component); ResponseWriter w = context.getResponseWriter(); if( AjaxUtil.isAjaxNullResponseWriter(w) ) { return; } w.startElement("div", component); w.writeAttribute("style", "border:black solid thick", null); w.writeText("HelloWorld Control from LS2012 Show and tell", null); } @Override public void encodeEnd(FacesContext context, UIComponent component)throws IOException { super.encodeEnd(context, component); ResponseWriter w = context.getResponseWriter(); if( AjaxUtil.isAjaxNullResponseWriter(w) ) { return; } w.endElement( "div" ); } } | © 2012 IBM Corporation
109.
Create the HelloWorldControl
class | © 2012 IBM Corporation
110.
Create the HelloWorldControl
class (2) public class HelloWorldControl extends UIComponentBase { /** * */ public HelloWorldControl() { } Matches the Render type in extlib-helloWorld-faces-config.xml @Override public String getRendererType() { return "com.ibm.ls2012.extlib.helloworldcontrol.html_basic.gadget"; } /* (non-Javadoc) * @see javax.faces.component.UIComponent#getFamily() */ @Override public String getFamily() { return "com.ibm.ls2012.extlib.hellowworldcontrol"; } } Matches the Component Family in extlib-helloWorld.xsp-configconfig.xml | © 2012 IBM Corporation
111.
Create a feature
project for the helloWorldControl plugin ■ Same procedure already described in the XPD WebContainer plugin section | © 2012 IBM Corporation
112.
Configure the feature.xml
to add the helloWorld plugin | © 2012 IBM Corporation
113.
Create a update
Site for the helloWorldControl plugin ■ Same procedure already described in the XPD WebContainer plugin section | © 2012 IBM Corporation
114.
Configure the site.xml
to add the helloWorldControl feature | © 2012 IBM Corporation
115.
Enable Eclipse plug-in
install from Designer preferences | © 2012 IBM Corporation
116.
Install HelloWorldControl plugin
in Designer ■ FileApplicationInstall... | © 2012 IBM Corporation
117.
Create an XPage
and select the Control from the palette | © 2012 IBM Corporation
118.
Select the helloWorldLib
library in Application Properties page | © 2012 IBM Corporation
119.
Back to Eclipse,
create an OSGi Launch configuration | © 2012 IBM Corporation
120.
Load HTTP task
and access the control in browser > l http 12/18/2011 12:24:02 AM HTTP Server: Using Web Configuration View 12/18/2011 12:24:06 AM JVM: Java Virtual Machine initialized. 12/18/2011 12:24:06 AM HTTP Server: Java Virtual Machine loaded 12/18/2011 12:24:06 AM HTTP Server: DSAPI Domino Off-Line Services HTTP extension Loaded successfully 12/18/2011 12:24:07 AM HTTP JVM: WARNING: Using pde configuration Http OSGi configuration located in C:Program Files (x86)IBMLotusDominodatadominoworkspacepde.launch.ini 12/18/2011 12:24:09 AM XSP Command Manager initialized 12/18/2011 12:24:09 AM HTTP Server: Started > > > tell http osgi ss ls2012 12/18/2011 12:24:15 AM Framework is launched. 12/18/2011 12:24:15 AM id State Bundle 12/18/2011 12:24:15 AM 110 <<LAZY>> com.ibm.ls2012.extlib.helloWorldControl_1.0.0.qualifier 12/18/2011 12:24:15 AM 146 <<LAZY>> com.ibm.ls2012.webcontainer.helloworld_1.0.0.201112111542 > Browser | © 2012 IBM Corporation
121.
Summary of what
we accomplished in this section ■ We created a simple new XPages Custom Control that output a static html DIV tag. ■ We learned how to deploy it in the Domino Server using the PDE Tool ■ We also created an update site to host the plugin and installed it in Domino Designer ■ We learned how to use this new control in a sample XPage from Designer using the XPages editor graphic capabilities ■ We successfully ran the XPage from a browser. | © 2012 IBM Corporation
122.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 122 | © 2012 IBM Corporation
123.
Environment setup for
DOTS ■ In the next section, we'll demonstrate Domino OSGi capabilities for running Server Addin Tasks using the Domino OSGi Tasklet Service (a.k.a. DOTS) ─ We will show how to schedule tasklets to run periodically and how to run them manually on demand. ■ This aspect of Domino OSGi is using a different instance from the HTTP OSGi instance we've seen in the previous sections and is also using a different process ■ In the next slide, we'll show you how to configure your eclipse development environment to work with the DOTS OSGi instance and also how to configure the PDE tool accordingly 123 | © 2012 IBM Corporation
124.
Environment setup for
DOTS ■ Installing DOTS ─ Required Eclipse plug-ins and DOTS core files ■ PDE Tool ─ The version installed during the HTTP environment setup will persist across workspaces so there is no action needed. On a clean setup you would follow the steps previous demonstrated in the HTTP environment setup. ■ Target Platform ─ DOTS is just another OSGi setup so it's almost the same as the HTTP setup with a few minor differences. ■ Notes.jar ─ This plug-in is just used for development and will be exactly the same as the version in the HTTP environment. Simply import from the other workspace. On a clean setup you would follow the steps previous demonstrated in the HTTP environment setup. 124 | © 2012 IBM Corporation
125.
Installing DOTS (Required
Eclipse plug-ins) ■ The OSGi framework is located in {DominoBin}/osgi-dots/rcp/eclipse ■ The minimum required set of plug-ins is comprised of the following list: ─ org.eclipse.core.contenttype ─ org.eclipse.core.jobs ─ org.eclipse.core.runtime.compatibility.auth ─ org.eclipse.core.runtime ─ org.eclipse.equinox.app ─ org.eclipse.equinox.common ─ org.eclipse.equinox.preferences ─ org.eclipse.equinox.registry ─ org.eclipse.osgi ─ org.eclipse.update.configurator ■ You should be able to simply copy these 10 plug-ins into the {DominoBin}/osgi- dots/rcp/eclipse/plugins directory from any installed version of the Eclipse SDK. 125 | © 2012 IBM Corporation
126.
Installing DOTS (DOTS
core files) ■ Download the OSGI Tasklet Service for IBM Lotus Domino from OpenNTF ■ The following files must be installed in the {DominoBin} directory ─ ndots.exe (Windows) ─ dots, dots.res (UNIX) ■ The following files must be installed in the {DominoBin}/osgi-dots directory ─ launcher.jar ─ dotssec.jar ■ The following files must be installed in the {DominoBin}/osgi- dots/shared/eclipse/plugins directory ─ com.ibm.dots_2.0.3.XXXX.jar ─ com.ibm.dots.samples_2.0.3.XXXX.jar (optional) 126 | © 2012 IBM Corporation
127.
Environment setup for
DOTS (PDE tool recap) ■ An easy verification that the PDE Tool is installed is to check the OSGi Frameworks available to Eclipse ■ You should see 3 frameworks ─ Domino OSGi Framework ─ Domino tasklet Framework (dots) ─ Equinox 127 | © 2012 IBM Corporation
128.
Environment setup for
DOTS (Target Platform recap) ■ Add the {DominoBin}osgi-dotsrcpeclipse directory and click the Finish button ■ Repeat the process to add the {DominoBin}osgi-dotssharedeclipse directory 128 | © 2012 IBM Corporation
129.
Environment setup for
DOTS (Target Platform recap) ■ Select the new Target definition you just created and click the OK button 129 | © 2012 IBM Corporation
130.
Environment setup for
DOTS (Notes.jar recap) ■ Use the “Create Notes Java Api Project” option from the PDE tool 130 | © 2012 IBM Corporation
131.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 131 | © 2012 IBM Corporation
132.
Creating DOTS tasklets
Bridge Services ● OSGi start/stop Tasklet Tasklet Tasklet Tasklet Plugin Plugin Plugin Plugin ● Message Queue ● OSGi Console Domino ● Common logging Service Thread OSGi ● Profile support Manual Tasklet JNI Service Thread Service DOTS Core Service Scheduled Logging, Profile, Security Service Thread Triggered (DOTS) OSGi™ / RCP Framework Java™ Runtime Environment | © 2012 IBM Corporation
133.
Section goals ■
Create an OSGi plugin that contributes tasklets to the DOTS process ─ Schedule the tasklet using extension point and java annotation ─ Run the tasklet manually on demand using the “run” OSGi console command ■ Show how to run the DOTS process in debug mode ■ Deploy and debug the tasklet using the PDE Tool configured for DOTS | © 2012 IBM Corporation
134.
Creating DOTS tasklets ■
Create a new workspace plug-in ─ File->New->Plug-in-Project 134 | © 2012 IBM Corporation
135.
Creating DOTS tasklets ■
Project Name: com.ibm.ls2012.dots ─ Select “an OSGi framework” radio button under the Target Platform section ─ Click on the Next button ■ On the Content screen change the name to DOTSDemo ─ Click on the Finish button 135 | © 2012 IBM Corporation
136.
Creating DOTS tasklets ■
Go to the Overview tab, under Extension / Extension Point Content and click on Extensions ■ Click Yes on the Extensions pages hidden screen 136 | © 2012 IBM Corporation
137.
Creating DOTS tasklets ■
Go to the Extensions tab and click the Add button... 137 | © 2012 IBM Corporation
138.
Creating DOTS tasklets ■
Deselect the “Show only extension points from the required plug-ins” ─ Select the com.ibm.dots.task Extension Point ─ Click on the Finish button ■ On the New plug-in dependency screen, click the Yes button 138 | © 2012 IBM Corporation
139.
Creating DOTS tasklets ■
Go to the MANIFEST.MF tab and click on the error and fix the singleton 139 | © 2012 IBM Corporation
140.
Creating DOTS tasklets ■
Right click on the com.ibm.ls2012.dots package and click New->Class 140 | © 2012 IBM Corporation
141.
Creating DOTS tasklets ■
Create a new Java class named MyScheduledTask extending com.ibm.dots.task.AbstractServerTaskExt 141 | © 2012 IBM Corporation
142.
Creating DOTS tasklets ■
In the MyScheduledTask class add unimplemented methods 142 | © 2012 IBM Corporation
143.
Creating DOTS tasklets ■
Resolving some of the warnings and errors displayed ─ On the Dependencies tab of MANIFEST.MF add lotus.domino to the list of Imported Packages 143 | © 2012 IBM Corporation
144.
Creating DOTS tasklets ■
Scheduling of the MyScheduledTask tasklet via plugin.xml 144 | © 2012 IBM Corporation
145.
Creating DOTS tasklets ■
Scheduling of the MyScheduledTaskAnnotated tasklet via annotations ─ Custom method using annotations ─ Tasklet still needs to be registered in plugin.xml 145 | © 2012 IBM Corporation
146.
Creating DOTS tasklets ■
MyManualTask tasklet with the final plugin.xml 146 | © 2012 IBM Corporation
147.
Deploying & debugging
a DOTS tasklet ■ Click on Run->Debug Configurations... 147 | © 2012 IBM Corporation
148.
Deploying & debugging
a DOTS tasklet ■ Create a new OSGi Framework 148 | © 2012 IBM Corporation
149.
Deploying & debugging
a DOTS tasklet Deselect all plug-ins from the Target Platform 149 | © 2012 IBM Corporation
150.
Deploying & debugging
a DOTS tasklet ■ Create a new Remote Java Application 150 | © 2012 IBM Corporation
151.
Deploying & debugging
a DOTS tasklet 151 | © 2012 IBM Corporation
152.
Deploying & debugging
a DOTS tasklet ■ Click on the DOTS OSGi Configuration and then click the Debug button ─ This launches the PDE Tool ─ Select the appropriate Domino Binary & Data directories ─ Keep the default Profile of DOTS ─ Click on the OK Button ■ If everything worked OK then you'll see a Success dialog ─ Click on the OK button 152 | © 2012 IBM Corporation
153.
Deploying & debugging
a DOTS tasklet ■ Finally, time to run the tasklets and break into the debugger ■ Enable debugging via notes.ini ─ DOTS_DEBUGADDRESS=8001 ─ DOTS_DEBUGSUSPEND=y ■ load dots on the server console ■ Set a break point in your code ■ Go back to Run->Debug Configurations... ─ Select DOTS Remote Debugging under Remote Java Applications ─ Click on the Debug button 153 | © 2012 IBM Corporation
154.
Deploying & debugging
a DOTS tasklet ■ Confirm the switch to the Debug Perspective by clicking the Yes button 154 | © 2012 IBM Corporation
155.
Deploying & debugging
a DOTS tasklet ■ Debug as required 155 | © 2012 IBM Corporation
156.
Deploying & debugging
a DOTS tasklet ■ Output examples 156 | © 2012 IBM Corporation
157.
Summary of what
we accomplished in this section ■ We learned how to create an OSGi plugin that contributes tasklets to the DOTS process ■ We showed the different types of tasklets: scheduled and on-demand ■ We deployed and debugged the tasklets using the PDE Tool ■ You can find more comprehensive documentation about DOTS by downloading it from the OpenNTF project 157 | © 2012 IBM Corporation
158.
Agenda ■
Opening comments ■ Introduction and technology overview ■ Prerequisites ■ Environment setup for HTTP ■ Creating, deploying & debugging a simple servlet ■ Creating & deploying a J2EE web app ■ Creating & deploying an XPages Extension Library ■ Environment setup for DOTS ■ Creating, deploying & debugging DOTS tasklets ■ Q&A 158 | © 2012 IBM Corporation
159.
Questions or comments?
159 | © 2012 IBM Corporation
160.
Legal disclaimer © IBM
Corporation 2012. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. 160 | © 2012 IBM Corporation
Descargar ahora