SlideShare una empresa de Scribd logo
1 de 160
Descargar para leer sin conexión
SHOW112
Domino® OSGi Development
David Taieb | Senior Software Engineer | IBM
Paul Fiore | Advisory Software Engineer | IBM
Elizabeth Sawyer | Development Manager | IBM




© 2012 IBM Corporation
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Environment setup for HTTP (PDE tool)
■   Install the IBM Lotus Domino Debug Plug-in
     ─ Help->Install New Software...




                                                 29 |   © 2012 IBM Corporation
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
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
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
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
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
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
Creating a simple servlet running on Equinox
■   Create a new workspace plug-in
     ─ File->New->Plug-in-Project




                                               36 |   © 2012 IBM Corporation
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
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
Creating a simple servlet running on Equinox
■   Right click on the com.ibm.ls2012 package and click New->Class




                                                                     39 |   © 2012 IBM Corporation
Creating a simple servlet running on Equinox
■   Create a new Java class named SimpleServlet extending
    javax.servlet.http.HttpServlet




                                                            40 |   © 2012 IBM Corporation
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
Creating a simple servlet running on Equinox
■   Go to the Extensions tab and click the Add button...




                                                           42 |   © 2012 IBM Corporation
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
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
Deploying & debugging a simple servlet
■   Click on Run->Debug Configurations...




                                            45 |   © 2012 IBM Corporation
Deploying & debugging a simple servlet
■   Create a new OSGi Framework




                                         46 |   © 2012 IBM Corporation
Deploying & debugging a simple servlet




                              Deselect all plug-ins
                              from the Target Platform




                                                         47 |   © 2012 IBM Corporation
Deploying & debugging a simple servlet
■   Create a new Remote Java Application




                                           48 |   © 2012 IBM Corporation
Deploying & debugging a simple servlet




                                         49 |   © 2012 IBM Corporation
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
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
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
Deploying & debugging a simple servlet
■   Debug as required




                                         53 |   © 2012 IBM Corporation
Deploying & debugging a simple servlet
■   Output




                                         54 |   © 2012 IBM Corporation
Deploying & debugging a simple servlet
■   Browse to http://{server}/{db.nsf}/simpledemo
■   Authentication / Authorization can be done via HttpContext interface




                                                                           55 |   © 2012 IBM Corporation
Deploying & debugging a simple servlet
■   On the server console you can manage this servlet like any other OSGi plug-in




                                                                      56 |   © 2012 IBM Corporation
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
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
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
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
Reminder of what the target platform should be




                                                 |   © 2012 IBM Corporation
Plugin for the Domino XPD Web Container
Use PDE Tool to configure the com.ibm.notes.java.api plugin




                                                              |   © 2012 IBM Corporation
Standard New Plugin Project Wizard




                                     |   © 2012 IBM Corporation
Standard New Plugin Project Wizard (2)




                                         |   © 2012 IBM Corporation
Plugin configuration




                       |   © 2012 IBM Corporation
Fix the manifest




                   |   © 2012 IBM Corporation
Create the extension point




                             |   © 2012 IBM Corporation
Update the dependencies




                          |   © 2012 IBM Corporation
Configure the extension point contextRoot




                                            |   © 2012 IBM Corporation
Configure the extension point contentLocation




                                                |   © 2012 IBM Corporation
Create the “WebContent” folder




                                 |   © 2012 IBM Corporation
Create the “WEB-INF” directory under WebContent




                                                  |   © 2012 IBM Corporation
Create the “web.xml” file J2EE descriptor




                                            |   © 2012 IBM Corporation
Add a reference to the HelloWorld Servlet in web.xml




                  HelloWorld Servlet class to be created in the project




                                                                          |   © 2012 IBM Corporation
Create the HelloWorld Servlet class




                                      |   © 2012 IBM Corporation
Create the HelloWorldServlet class (2)




                                         |   © 2012 IBM Corporation
Edit HelloWorldServlet.java and override doGet method



                                         Type doGet and Ctrl+Space




                                                        |   © 2012 IBM Corporation
Add logic to doGet method




                            |   © 2012 IBM Corporation
Update the build.properties file to add plugin.xml and
WebContent entries




                                                         |   © 2012 IBM Corporation
Create eclipse feature project




                                 |   © 2012 IBM Corporation
Add helloworld plugin to the feature




                                       |   © 2012 IBM Corporation
Create the eclipse site project




                                  |   © 2012 IBM Corporation
Add the helloworld feature to the site




                                         |   © 2012 IBM Corporation
Build the site




                 |   © 2012 IBM Corporation
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
Import local update site




                           |   © 2012 IBM Corporation
Give admin rights to user who imported the site




                                                  |   © 2012 IBM Corporation
Configure the server notes.ini to use the updateSite db




                                                          |   © 2012 IBM Corporation
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
Test the plugin from a browser




                                 |   © 2012 IBM Corporation
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
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
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
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
Download the XPages extlib plugins and add them to
the target platform.
                                     ■   Download from openNTF
                                         project:
                                          ─ http://extlib.openntf.org




                                                                 |   © 2012 IBM Corporation
Standard New Plugin Project Wizard




                                     |   © 2012 IBM Corporation
Standard New Plugin Project Wizard(2)




                                        |   © 2012 IBM Corporation
Plugin configuration




                       |   © 2012 IBM Corporation
Create the extension point




                             |   © 2012 IBM Corporation
Update the manifest dependencies add
com.ibm.xsp.extlib and com.ibm.xsp.core




                                          |   © 2012 IBM Corporation
Configure the “com.ibm.commons.Extension” extension
point                    Type of Extension we're implementing




                                                                |   © 2012 IBM Corporation
Create the extension library config class
                   ■   This class is used to
                       configure the XSP config
                       files




                                                  |   © 2012 IBM Corporation
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
Create the com.ibm.xsp.Library service file
■   Under srcMETA-INFservices directory




                                              |   © 2012 IBM Corporation
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
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
Create the HelloWorldControlRender class




                                           |   © 2012 IBM Corporation
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
Create the HelloWorldControl class




                                     |   © 2012 IBM Corporation
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
Create a feature project for the helloWorldControl plugin
  ■   Same procedure already described in the XPD WebContainer plugin section




                                                                       |   © 2012 IBM Corporation
Configure the feature.xml to add the helloWorld plugin




                                                         |   © 2012 IBM Corporation
Create a update Site for the helloWorldControl plugin
■   Same procedure already described in the XPD WebContainer plugin section




                                                                     |   © 2012 IBM Corporation
Configure the site.xml to add the helloWorldControl feature




                                                              |   © 2012 IBM Corporation
Enable Eclipse plug-in install from Designer preferences




                                                           |   © 2012 IBM Corporation
Install HelloWorldControl plugin in Designer
■   FileApplicationInstall...




                                               |   © 2012 IBM Corporation
Create an XPage and select the Control from the
palette




                                                  |   © 2012 IBM Corporation
Select the helloWorldLib library in Application
Properties page




                                                  |   © 2012 IBM Corporation
Back to Eclipse, create an OSGi Launch configuration




                                                       |   © 2012 IBM Corporation
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
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
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
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
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
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
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
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
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
Environment setup for DOTS (Target Platform recap)
■   Select the new Target definition you just created and click the OK button




                                                                        129 |   © 2012 IBM Corporation
Environment setup for DOTS (Notes.jar recap)
■   Use the “Create Notes Java Api Project” option from the PDE tool




                                                                       130 |   © 2012 IBM Corporation
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
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
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
Creating DOTS tasklets
■   Create a new workspace plug-in
     ─ File->New->Plug-in-Project




                                     134 |   © 2012 IBM Corporation
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
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
Creating DOTS tasklets
■   Go to the Extensions tab and click the Add button...




                                                           137 |   © 2012 IBM Corporation
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
Creating DOTS tasklets
■   Go to the MANIFEST.MF tab and click on the error and fix the singleton




                                                                      139 |   © 2012 IBM Corporation
Creating DOTS tasklets
■   Right click on the com.ibm.ls2012.dots package and click New->Class




                                                                    140 |   © 2012 IBM Corporation
Creating DOTS tasklets
■   Create a new Java class named MyScheduledTask extending
    com.ibm.dots.task.AbstractServerTaskExt




                                                              141 |   © 2012 IBM Corporation
Creating DOTS tasklets
■   In the MyScheduledTask class add unimplemented methods




                                                             142 |   © 2012 IBM Corporation
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
Creating DOTS tasklets
■   Scheduling of the MyScheduledTask tasklet via plugin.xml




                                                               144 |   © 2012 IBM Corporation
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
Creating DOTS tasklets
■   MyManualTask tasklet with the final plugin.xml




                                                     146 |   © 2012 IBM Corporation
Deploying & debugging a DOTS tasklet
■   Click on Run->Debug Configurations...




                                            147 |   © 2012 IBM Corporation
Deploying & debugging a DOTS tasklet
■   Create a new OSGi Framework




                                       148 |   © 2012 IBM Corporation
Deploying & debugging a DOTS tasklet




                                 Deselect all plug-ins
                                 from the Target
                                 Platform




                                                         149 |   © 2012 IBM Corporation
Deploying & debugging a DOTS tasklet
■   Create a new Remote Java Application




                                           150 |   © 2012 IBM Corporation
Deploying & debugging a DOTS tasklet




                                       151 |   © 2012 IBM Corporation
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
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
Deploying & debugging a DOTS tasklet
■   Confirm the switch to the Debug Perspective by clicking the Yes button




                                                                       154 |   © 2012 IBM Corporation
Deploying & debugging a DOTS tasklet
■   Debug as required




                                       155 |   © 2012 IBM Corporation
Deploying & debugging a DOTS tasklet
■   Output examples




                                       156 |   © 2012 IBM Corporation
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
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
Questions or comments?




                         159 |   © 2012 IBM Corporation
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

Más contenido relacionado

La actualidad más candente

Domino Server Health - Monitoring and Managing
 Domino Server Health - Monitoring and Managing Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and ManagingGabriella Davis
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedHoward 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...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)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 BoostRNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance BoostChristoph Adler
 
Important tips on Router and SMTP mail routing
Important tips on Router and SMTP mail routingImportant tips on Router and SMTP mail routing
Important tips on Router and SMTP mail routingjayeshpar2006
 
RNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes ClientRNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes ClientChristoph Adler
 
RESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWorkRESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWorkJohn Dalsgaard
 
IBM Lotus Notes Clients - Differences
IBM Lotus Notes Clients - DifferencesIBM Lotus Notes Clients - Differences
IBM Lotus Notes Clients - DifferencesDvir Reznik
 
Domino policies deep dive
Domino policies deep diveDomino policies deep dive
Domino policies deep diveMartijn 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 notesHow to fix ‘database is corrupt: cannot allocate space’ error in lotus notes
How to fix ‘database is corrupt: cannot allocate space’ error in lotus notesandrewscott01
 
The Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad WebThe Ultimate Administrator’s Guide to HCL Nomad Web
The Ultimate Administrator’s Guide to HCL Nomad Webpanagenda
 
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-ServerBewä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-Serverpanagenda
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practicesBill Buchan
 
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxUlrich Krause
 
Best Practice TLS for IBM Domino
Best Practice TLS for IBM DominoBest Practice TLS for IBM Domino
Best Practice TLS for IBM DominoJared Roberts
 
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationFrom frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationBenedek Menesi
 
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded Christoph Adler
 

La actualidad más candente (20)

Domino Server Health - Monitoring and Managing
 Domino Server Health - Monitoring and Managing Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and Managing
 
Bp101-Can Domino Be Hacked
Bp101-Can Domino Be HackedBp101-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...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)Enable Domino Data Access Services (DAS)
Enable Domino Data Access Services (DAS)
 
RNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance BoostRNUG - 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 routingImportant 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 ClientRNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes Client
 
RESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWorkRESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWork
 
60 Admin Tips
60 Admin Tips60 Admin Tips
60 Admin Tips
 
IBM Lotus Notes Clients - Differences
IBM Lotus Notes Clients - DifferencesIBM Lotus Notes Clients - Differences
IBM Lotus Notes Clients - Differences
 
Domino policies deep dive
Domino policies deep diveDomino 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 notesHow 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 WebThe 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-ServerBewä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 practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
 
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
 
Best Practice TLS for IBM Domino
Best Practice TLS for IBM DominoBest Practice TLS for IBM Domino
Best Practice TLS for IBM Domino
 
From frustration to fascination: dissecting Replication
From frustration to fascination: dissecting ReplicationFrom 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 Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
 
Spnego configuration
Spnego configurationSpnego configuration
Spnego configuration
 

Destacado

BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 
BP204 - Take a REST and put your data to work with APIs!
BP204 - Take a REST and put your data to work with APIs!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 DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyTeamstudio
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsTeamstudio
 
IBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino ApplicationsIBM Connect 2017: Refresh and Extend IBM Domino Applications
IBM Connect 2017: Refresh and Extend IBM Domino ApplicationsEd Brill
 
Connect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer ExperienceConnect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer Experiencepanagenda
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoFrank van der Linden
 
jmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services Jumpstartjmp206 - Lotus Domino Web Services Jumpstart
jmp206 - Lotus Domino Web Services JumpstartBill Buchan
 
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014REST services and IBM Domino/XWork - DanNotes 19-20. november 2014
REST services and IBM Domino/XWork - DanNotes 19-20. november 2014John Dalsgaard
 
IBM Connect2014 JMP106
IBM Connect2014 JMP106IBM Connect2014 JMP106
IBM Connect2014 JMP106Thomas Evans
 
SpeedGeeking! Mobile Application development with IBM XPages
SpeedGeeking! Mobile Application development with IBM XPagesSpeedGeeking! Mobile Application development with IBM XPages
SpeedGeeking! Mobile Application development with IBM XPagesBruce 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 -...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 - OpenNTFIBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFNiklas Heidloff
 
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile FirstBP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile FirstJohn Head
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinarMark Leusink
 
Java for XPages Development
Java for XPages DevelopmentJava for XPages Development
Java for XPages DevelopmentTeamstudio
 
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...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 ...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: DOTSLet 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 DominoBP207 - 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 dotsThe 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!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 DimensionallyMarty, 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 ControlsAccess 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 ApplicationsIBM 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 ExperienceConnect2014 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 DominoAn 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 Jumpstartjmp206 - 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 2014REST 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 JMP106IBM Connect2014 JMP106
IBM Connect2014 JMP106
 
SpeedGeeking! Mobile Application development with IBM XPages
SpeedGeeking! Mobile Application development with IBM XPagesSpeedGeeking! 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 -...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 - OpenNTFIBM 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 FirstBP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
BP110: The Mobile Distruption - Why XPages Development is targeting Mobile First
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
 
Java for XPages Development
Java for XPages DevelopmentJava 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...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 ...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 nutshellWe4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT Group
 
Ad106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting BetterAd106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Betterddrschiw
 
What is Google App Engine?
What is Google App Engine?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!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 20090930Tech Talk Comp Apps851 20090930
Tech Talk Comp Apps851 20090930Michael Masterson
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi Shlomo Vanunu
 
Domino X Pages 8.5
Domino X Pages 8.5Domino X Pages 8.5
Domino X Pages 8.5John Head
 
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT Group
 
Ad110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpagesddrschiw
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
 
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...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 ConsoleLotus Sametime 8.5: Using the new Sametime System Console
Lotus Sametime 8.5: Using the new Sametime System Consolejackdowning
 
GlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixGlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixLudovic Champenois
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logo20100907 fuse-community-evening-adrian-trenaman-no-logo
20100907 fuse-community-evening-adrian-trenaman-no-logoAdrian Trenaman
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFrançois Le Droff
 
2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical Update2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical UpdateWSO2
 

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 nutshellWe4IT 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 BetterAd106 - XPages Just Keep Getting Better
Ad106 - XPages Just Keep Getting Better
 
What is Google App Engine?
What is Google App Engine?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!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 20090930Tech Talk Comp Apps851 20090930
Tech Talk Comp Apps851 20090930
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
 
Domino X Pages 8.5
Domino X Pages 8.5Domino 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 developmentWe4IT 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 XpagesAd110 - Unleash the Power of Xpages
Ad110 - Unleash the Power of Xpages
 
Samba management Console
Samba management ConsoleSamba management Console
Samba management Console
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject 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...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 ConsoleLotus 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 TalkDon Schwarz App Engine Talk
Don Schwarz App Engine Talk
 
GlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox FelixGlassFish v3, OSGi Equinox Felix
GlassFish v3, OSGi Equinox Felix
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee 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-logo20100907 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 CcFlex 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 Update2009 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 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)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 Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...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 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria 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 2024The 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.pptxThe 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 ServiceCNv6 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 organizationScaling 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 SlidesSlack 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.pptxEIS-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 PresentationGenCyber 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 ProcessorsExploring 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)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 Men08448380779 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 SolutionsIAC 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 StreamsTop 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 MountBreaking 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.pptx04-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 WorkerHow 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...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 2024Finology 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 FramesUnblocking 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 2024A 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 textsHandwritten 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