SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
AD110 - Unleash the power of XPages
Philippe Riand | XPages Architect
Maire Kehoe | Lead XPages Developer
Financial Disclaimer
The information on the new product is intended to outline our general
product direction and it should not be relied on in making a purchasing
decision. The information on the new product is for informational purposes
only and may not be incorporated into any contract. The information on
the new product is not a commitment, promise, or legal obligation to
deliver any material, code or functionality. The development, release, and
timing of any features or functionality described for our products remains
at our sole discretion
Agenda
●   Introduction

●   XPages architecture

●   Advanced XPages application development

●   Extending the XPages Runtime

     ▬   Controls and other object tags
     ▬   Other Runtime Extensions
     ▬   Packaging a library for the server and client

●   Examples

●   Conclusion

                3
Objectives
●   Show how XPages can be extended to match your needs and increase
    the developer productivity
      ▬ Create new controls and other XPages artifacts
      ▬ Deploy them on your IBM Lotus® Domino® servers
        or IBM Lotus Notes® clients

●   Expose the technical architecture behind XPages
     ▬ Describe the technology being used
     ▬ Give an overview of how XPages is integrated in both the Domino
       server and the Notes client




             4
XPages architecture

XPages Technology
●   XPages is a Java™ runtime built on top of JavaServer™ Faces 1.1 (JSF)
     ▬ JSF has been extended in many ways to make it richer and easier to
       use (ajax behaviors, script languages, extended control set...)
     ▬ JSF APIs and concepts fully apply to XPages.

●   XPages runs within a servlet engine
     ▬ A custom servlet engine is used to run NSF based Web applications
       The NSF is seen as a deployed J2EE® Web Module
     ▬ The Servlet API is available to the running XPages

●   The Dojo Toolkit is used as the runtime JavaScript™ library
     ▬ Used as a core JavaScript library as well as a UI widget framework
     ▬ Tightly integrated within the XPages Runtime


             5
XPages architecture

How can the XPages Runtime be Extended?
●   By creating Custom Controls design elements
     ▬  Easy to develop, just uses XPages and script language
     ▬  Embedded inside an NSF
     ▬  Powerful, but don't have access to the full JSF API

●   By extending the runtime with your existing Java code
     ▬ Adding Java libraries to the runtime (jar files)
     ▬ By calling Java from XPages (JavaScript bridge, EL, managed
       beans...)

●   By providing native JSF/XPages libraries
     ▬ Requires knowledge of Java, JSF and XPages native API
     ▬ Gives the full access to the runtime


             6
XPages architecture

      XPages Development Model

                                                                                          Use the XPages
                                                                                            native API
                                                                      Use managed beans
                                                                        and advanced
                                                                          extensions
                                                Integration of Java
                                                 libraries/classes

                         JavaScript libraries                                              Java developers
                            and custom
                              controls
   Drag & drop
application building
  using XPages                                             Advanced users with
                                                            development skills                We'll focus on this during
                                                                                                     this session
                       Power users




                             7
XPages architecture

OSGi™ bundles
 ●      Native XPages libraries are packaged as OSGi bundles
          ▬ On Notes client 8.5.1
          ▬ On a future 8.5.x Domino server maintenance stream, on top of an
            IBM Lotus Expeditor subset
 ●      Bundles are versioned .jars that list other bundles they depend on.
 ●      Simplifies debugging absent dependencies and handling multiple
        versions of classes.
 ●      OSGi bundles also support services.
        Installed bundles contribute to a service, to provide objects
        implementing the service interface, whenever the service objects are
        requested.


           http://www.osgi.org/Main/HomePage
           https://www.ibm.com/developerworks/lotus/products/expeditor/
The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 8
XPages architecture
XPages Architecture - 8.5/8.5.1
                                                                                   NSF Applications

 NSF Applications

                                                                                                      XPages Extensions
                                                                                                        OSGi bundles

                    XPages Extensions
                    provided as jar files                        Profile                XPages
                                                                 +Web Container         Runtime
     XPages
     Runtime
                                                                          OSGi Runtime

             Domino HTTP Task                                             Notes Client Process


            Domino Server                                                  Notes Client
     ●   You can extend XPages within an NSF Application, or as separate XPages Extensions.
     ●   The Domino runtime is deployed as a set of jar files into well defined directories
         Extensions are provided as jar files copied to <domino>/xsp/nsf/lib
         (warn: this directory is cleaned-up by the installer when upgrading the server)
     ●   The Client runtime is deployed as a set of OSGi bundles (plugins)
         Extensions are also deployed as OSGi bundles

                                                                                                                      9
XPages architecture
XPages Architecture – 8.5.x
                             NSF Applications                                                                                       NSF Applications




                                                           XPages Extensions                                                                                      XPages Extensions
                                                             OSGi bundles                                                                                           OSGi bundles


  XPD Profile                        XPages                                                           XPD Profile                            XPages
                                     Runtime                                                          +Web Container                         Runtime


             OSGi Runtime                                                                                            OSGi Runtime

             Domino HTTP Task                                                                                        Notes Client Process


              Domino Server                                                                                            Notes Client
    ●      Both the Domino server and the Notes client are deployed as OSGi bundles
           The same extension mechanism is used in both platforms; extensions are provided as OSGi bundles.



    The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
    informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
    functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion


                                                                                                                                                                                                        10
Advanced XPages application development

Integrating Java Code Inside XPages
●   Java classes can be either
     ▬ Embedded in an application, using J2EE packaging capability
         ▬ WEB-INF/classes & WEB-INF/lib


     ▬ Shared by all the applications
         ▬ The jar files should be copied into <domino>/xsp/nsf/lib


         ▬ Deployed as plug-ins in Notes client or future Domino 8.5.x




●   Developing the java code inside IBM Lotus Domino Designer

●   Calling Java libraries from an XPage
     ▬  Call Java from JavaScript


     http://www-10.lotus.com/ldd/ddwiki.nsf/dx/09242008095047AMWEBJ9A.htm


              11
Advanced XPages application development

   Working with Managed Beans
    ●   What is a managed bean and why should I use it?
         ▬ It is a Java bean where the lifecycle of the bean is managed by the
           JSF runtime
              ▬ Declared in an XML file (faces-config.xml)

              ▬ Created the first time it is used


              ▬ Automatically stored into a scope

                 application, session, view (new in 8.5.2) or request
         ▬ It can encapsulate data access or business logic
         ▬ Lots of documentation is available on the net

    ●   Binding UI controls to a managed bean
         ▬ Using the EL language
         ▬ Using Managed Beans through JavaScript

http://www.mindoo.com/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&comments
                  12
Extending the XPages Runtime

XPages Native API concepts
 ●      XPages Library
         ▬ OSGi bundle (plug-ins) that contains Java code, configuration files
           and resources
 ●      Controls
         ▬ Reusable components that appear in the Designer palette
 ●      Renderers
         ▬ A renderer defines how a control is rendered at runtime
         ▬ Outputs HTML and client JavaScript to the browser
 ●      Complex types
         ▬ Other XPages objects used by controls to store parameters and
           encapsulate behaviors
         ▬ Some examples
         ▬ Data sources, simple actions, validators, converters...
The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 13
Extending the XPages Runtime
Example #1
New Native Controls in the Palette
●   Tooltip: basic control that generates a Dojo tag
     ▬ Requires 2 Java classes: one for the control, and one for its
       associated renderer
     ▬ The control definition is located in a xsp-config file
     ▬ Read only control: processing the JSF rendering phase only



●   Data bound slider
     ▬ Binding a control to data
     ▬ Processing all the JSF phases




              14
Extending the XPages Runtime
Example #2
Packaging a Custom Control into a plug-in
 ●      A custom control is defined similarly to Native control
         ▬  A configuration file (.xsp-config) is defining the control properties
         ▬  A Java file is used to create the control object at runtime
         ▬  A custom control can be packaged like a native control
 ●      Example: simple Ok-Cancel toolbar
         ▬  Copy the Java file, generated by Designer, to the plug-in
         ▬  The xsp-config file should also be added to the plug-ins
         ▬  Path to resources should be adapted
         ▬  Extension point to publish images, style sheets, other resources.
 ●      Allows reuse of multiple XPage design elements from different sources,
        without using templates.


The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 15
Extending the XPages Runtime
Example #3
Simple Actions
 ●      Simple actions are objects, added to events, that can execute code on
        either the server or client side
         ▬  Each simple action can have it own set of properties
         ▬  Server Side
              ▬ Execute some Java code on the server


              ▬ Example: Modify Selected Documents Field,

                 e.g. if you want to select multiple documents and change status
                 field to "completed".
         ▬  Client Side
              ▬ Generates a piece of client side JavaScript when the page is

                 rendered
              ▬ Example: Select Documents with Column Value

                 e.g. Action to check the check box for each row where the
                 column value is “new”.
The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion


                                 16
Extending the XPages Runtime
Example #4
Json Data Source
 ●      A DataSource provides data access to the page through a set of objects
         ▬ DataSource, complex type tag used in the XPage
         ▬ DataContainer, used to persist data between requests until saved
         ▬ DataModel, used by repeating controls to find individual items

 ●      An example DataSource with underlying data like
         { {name: 'Fred', position: 'QE', phone: '5551234' },
         {name: 'Joe', position: 'Dev', phone: '5551235' } }




The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 17
Extending the XPages Runtime
Example #5
Providing a ContentType Renderer
 ●      A content type renderer is used to format a text
         ▬ Available as a property to computed fields and view columns




           ▬      It gets the text to display from the runtime and can generate any
                  markup
           ▬      Contributed using an extension point

 ●      Examples
         ▬ Lotus Sametime® awareness rendering
         ▬ Lotus Connections VCard

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 18
Extending the XPages Runtime
Example #6
Implementing Custom Request Processing
 ●      Hooking into the page request
         ▬ XPages controls can shortcut a request with a “pathinfo” and render
           any kind of result
             ▬ http://server/db.nsf/page.xsp/pathinfo?...


         ▬ The request is executed in the context of the page
             ▬ Any page/user/application data is available




 ●      Example: REST services
         ▬ Formatting Domino data into a JSON stream
            ▬ Consumed by a Dojo dynamic grid

         ▬ RPC calls between the client and the server



The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 19
Extending the XPages Runtime
XPages Library Content
 ●      Java files
         ▬ A library definition file
         ▬ Java files implementing XPages controls, renderers, complex types

 ●      Configuration files
         ▬ faces-config.xml
           Runtime JSF configuration file, defining for example the renderers
         ▬ .xsp-config
           XPages configuration file defining the controls and complex type.
           Used by Designer editors to fill the palette and the property panels.
           Used to generate the compiled XPages.

 ●      Runtime resources
         ▬ CSS, JavaScript...

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 20
Extending the XPages Runtime

Building and Deploying a Library
 ●      Building Java plug-ins from Domino Designer
         ▬  using the Eclipse™ PDE, included in Designer

 ●      Installing into Designer and the developer's Notes Client
          ▬ Optional design time plugin, to get a better user experience in
            Designer

 ●      Installing the library on the server
          ▬ Libraries do not replicate between servers.

 ●      Publishing the bundle on a server for other Notes Client users
         ▬ Libraries can be pulled from a server to the Notes Client

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 21
Extending the XPages Runtime

Using a Library in an Application
 ●      Pre-installed IBM libraries
         ▬ Are automatically available

 ●      Explicit libraries
         ▬ A link should be added at the Application level
         ▬ The plug-ins can be downloaded and deployed to the client

 ●      Global libraries
         ▬ When installed, available at runtime to every application
         ▬ Explicitly linked by applications that need them to function



The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 22
Extending the XPages Runtime

Enhancing the Design Time Experience
 ●      Providing render time markup
         ▬ XPages markup can be provided to replace the default square tags

 ●      Registering property editors
         ▬ A property editor is used by the “All Properties” panel when the user
           edits a property
         ▬ Designer comes with a large set of predefined editors, but custom
           ones can be provided




The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 23
What We Skipped....
 ●      A lot... we'll provide documentation and samples over time
         ▬  Custom validators/converters
         ▬  Extending language bindings
         ▬  RequestParameters extension to configure themes & other
            properties
         ▬  Active Content Filtering engines for processing markup
         ▬  ...




The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 24
Q&A - Anticipated!
 ●      Can I deploy custom XPages libraries on N/D 8.5, 8.5.1?
         ▬  This is not supported/documented by IBM.
 ●      Can I use OSGi on Domino for purposes other than XPages?
         ▬  This is a future goal but it hasn't been qualified yet to support those
            use cases.
 ●      Will you update to JSF 2.0?
         ▬  Not in plan for now. Might be if we have strong business cases. It is
            not justified as XPages already implements most of the JSF 2.0 new
            features.
 ●      Can I contribute to the OSGi framework from a NSF?
         ▬  This is not supported in the next release of Notes/Domino, but we're
            thinking about it!


The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion



                                 25
Q&A – Your Turn!




       26
Related Sessions
Session ID        Description
AD106             XPages Just Keep Getting Better
AD107             Enhance Your Existing Applications with XPages
AD108             XPages in the IBM Lotus Notes Client - A Deep Dive!
AD109             XPages Performance and Scalability
AD111             Harnessing the Power of Server-Side JavaScript and Other
                  Advanced XPage Techniques
BP207             Make Your XPage Apps "Pop!" with CSS and Themes
SHOW112           How to Build an XPages Application from Start to Finish



             27
Legal Disclaimer
© IBM Corporation 2009. 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, Sametime and Lotusphere are trademarks of International Business Machines Corporation 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.
JavaScript is a trademark of Sun Microsystems, Inc. in the United States, other countries, or both.

OSGi is a trademark of the OSGi Alliance in the United States, other countries, or both.

Eclipse is a trademark of Eclipse Foundation, Inc.




                                         28

Contenu connexe

Tendances

AD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And TomorrowAD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And Tomorrowpjanzen11
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPagesUlrich Krause
 
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10Niklas Heidloff
 
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereAD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereStephan H. Wissel
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsPaul Withers
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentUlrich Krause
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overviewsbobde
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Codecamp Romania
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Shreedhar Ganapathy
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPTSummer Lu
 
AD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoAD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoStephan H. Wissel
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Arun Gupta
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
Netbeans
NetbeansNetbeans
Netbeansacosdt
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
 
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1IBM Connections Developers
 
Soccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPagesSoccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPagesLetsConnect
 

Tendances (20)

AD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And TomorrowAD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And Tomorrow
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
 
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereAD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile Controls
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overview
 
Java 7 workshop
Java 7 workshopJava 7 workshop
Java 7 workshop
 
Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010Java EE6 CodeCamp16 oct 2010
Java EE6 CodeCamp16 oct 2010
 
Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011Java EE 6 workshop at Dallas Tech Fest 2011
Java EE 6 workshop at Dallas Tech Fest 2011
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPT
 
AD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoAD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus Domino
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
Netbeans
NetbeansNetbeans
Netbeans
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
 
Soccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPagesSoccnx III - Using Social Controls in XPages
Soccnx III - Using Social Controls in XPages
 
Domino java
Domino javaDomino java
Domino java
 

Similaire à Ad110 - Unleash the Power of Xpages

X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101pdhannan
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun Gupta
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun Gupta
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...Arun Gupta
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishArun Gupta
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Shreedhar Ganapathy
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi DevelopmentPaul Fiore
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUlrich Krause
 
Domino X Pages
Domino X PagesDomino X Pages
Domino X Pagesddrschiw
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Eric Barroca
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi ServerArtur Alves
 
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011Nuxeo
 
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
 
XPages Extension Library slides
XPages Extension Library   slidesXPages Extension Library   slides
XPages Extension Library slidesNiklas Heidloff
 
Nuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo DistributionsNuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo DistributionsNuxeo
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the BasicsUlrich Krause
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the BasicsUlrich Krause
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
 

Similaire à Ad110 - Unleash the Power of Xpages (20)

X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFish
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi Development
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Domino X Pages
Domino X PagesDomino X Pages
Domino X Pages
 
Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06Nuxeo Roadmap 2008/06
Nuxeo Roadmap 2008/06
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
Nuxeo World Keynote: Roadmap - What to Expect from Nuxeo in 2011
 
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
 
XPages Extension Library slides
XPages Extension Library   slidesXPages Extension Library   slides
XPages Extension Library slides
 
Nuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo DistributionsNuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo Distributions
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 

Plus de ddrschiw

Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guideddrschiw
 
Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guideddrschiw
 
AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...
AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...
AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...ddrschiw
 
Ad109 - XPages Performance and Scalability
Ad109 - XPages Performance and ScalabilityAd109 - XPages Performance and Scalability
Ad109 - XPages Performance and Scalabilityddrschiw
 
Ad107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesAd107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesddrschiw
 
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!ddrschiw
 
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...ddrschiw
 
Webform Server 351 Architecture and Overview
Webform Server 351 Architecture and OverviewWebform Server 351 Architecture and Overview
Webform Server 351 Architecture and Overviewddrschiw
 
Introduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms ViewerIntroduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms Viewerddrschiw
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercisesddrschiw
 
Building A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPagesBuilding A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPagesddrschiw
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
 

Plus de ddrschiw (15)

Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guide
 
Traveler preview guide
Traveler preview guideTraveler preview guide
Traveler preview guide
 
Ad111
Ad111Ad111
Ad111
 
AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...
AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...
AD114 -- Beyond the Mobile Browser? Building Rich Mobile Applications for IBM...
 
Ad109 - XPages Performance and Scalability
Ad109 - XPages Performance and ScalabilityAd109 - XPages Performance and Scalability
Ad109 - XPages Performance and Scalability
 
Ad107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPagesAd107 - Enhance Your Existing Applications with XPages
Ad107 - Enhance Your Existing Applications with XPages
 
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
 
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
LotusSphere 2010 - Leveraging IBM Lotus® Forms™ with IBM WebSphere® Process S...
 
Webform Server 351 Architecture and Overview
Webform Server 351 Architecture and OverviewWebform Server 351 Architecture and Overview
Webform Server 351 Architecture and Overview
 
Introduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms ViewerIntroduction To IBM Lotus Forms Viewer
Introduction To IBM Lotus Forms Viewer
 
XPages Workshop: Concepts And Exercises
XPages Workshop:   Concepts And ExercisesXPages Workshop:   Concepts And Exercises
XPages Workshop: Concepts And Exercises
 
Building A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPagesBuilding A Cool Web 2.0 Application With XPages
Building A Cool Web 2.0 Application With XPages
 
Mlb Demo1
Mlb Demo1Mlb Demo1
Mlb Demo1
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architecture
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architecture
 

Dernier

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
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
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Dernier (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
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
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Ad110 - Unleash the Power of Xpages

  • 1. AD110 - Unleash the power of XPages Philippe Riand | XPages Architect Maire Kehoe | Lead XPages Developer
  • 2. Financial Disclaimer The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
  • 3. Agenda ● Introduction ● XPages architecture ● Advanced XPages application development ● Extending the XPages Runtime ▬ Controls and other object tags ▬ Other Runtime Extensions ▬ Packaging a library for the server and client ● Examples ● Conclusion 3
  • 4. Objectives ● Show how XPages can be extended to match your needs and increase the developer productivity ▬ Create new controls and other XPages artifacts ▬ Deploy them on your IBM Lotus® Domino® servers or IBM Lotus Notes® clients ● Expose the technical architecture behind XPages ▬ Describe the technology being used ▬ Give an overview of how XPages is integrated in both the Domino server and the Notes client 4
  • 5. XPages architecture XPages Technology ● XPages is a Java™ runtime built on top of JavaServer™ Faces 1.1 (JSF) ▬ JSF has been extended in many ways to make it richer and easier to use (ajax behaviors, script languages, extended control set...) ▬ JSF APIs and concepts fully apply to XPages. ● XPages runs within a servlet engine ▬ A custom servlet engine is used to run NSF based Web applications The NSF is seen as a deployed J2EE® Web Module ▬ The Servlet API is available to the running XPages ● The Dojo Toolkit is used as the runtime JavaScript™ library ▬ Used as a core JavaScript library as well as a UI widget framework ▬ Tightly integrated within the XPages Runtime 5
  • 6. XPages architecture How can the XPages Runtime be Extended? ● By creating Custom Controls design elements ▬ Easy to develop, just uses XPages and script language ▬ Embedded inside an NSF ▬ Powerful, but don't have access to the full JSF API ● By extending the runtime with your existing Java code ▬ Adding Java libraries to the runtime (jar files) ▬ By calling Java from XPages (JavaScript bridge, EL, managed beans...) ● By providing native JSF/XPages libraries ▬ Requires knowledge of Java, JSF and XPages native API ▬ Gives the full access to the runtime 6
  • 7. XPages architecture XPages Development Model Use the XPages native API Use managed beans and advanced extensions Integration of Java libraries/classes JavaScript libraries Java developers and custom controls Drag & drop application building using XPages Advanced users with development skills We'll focus on this during this session Power users 7
  • 8. XPages architecture OSGi™ bundles ● Native XPages libraries are packaged as OSGi bundles ▬ On Notes client 8.5.1 ▬ On a future 8.5.x Domino server maintenance stream, on top of an IBM Lotus Expeditor subset ● Bundles are versioned .jars that list other bundles they depend on. ● Simplifies debugging absent dependencies and handling multiple versions of classes. ● OSGi bundles also support services. Installed bundles contribute to a service, to provide objects implementing the service interface, whenever the service objects are requested. http://www.osgi.org/Main/HomePage https://www.ibm.com/developerworks/lotus/products/expeditor/ The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 8
  • 9. XPages architecture XPages Architecture - 8.5/8.5.1 NSF Applications NSF Applications XPages Extensions OSGi bundles XPages Extensions provided as jar files Profile XPages +Web Container Runtime XPages Runtime OSGi Runtime Domino HTTP Task Notes Client Process Domino Server Notes Client ● You can extend XPages within an NSF Application, or as separate XPages Extensions. ● The Domino runtime is deployed as a set of jar files into well defined directories Extensions are provided as jar files copied to <domino>/xsp/nsf/lib (warn: this directory is cleaned-up by the installer when upgrading the server) ● The Client runtime is deployed as a set of OSGi bundles (plugins) Extensions are also deployed as OSGi bundles 9
  • 10. XPages architecture XPages Architecture – 8.5.x NSF Applications NSF Applications XPages Extensions XPages Extensions OSGi bundles OSGi bundles XPD Profile XPages XPD Profile XPages Runtime +Web Container Runtime OSGi Runtime OSGi Runtime Domino HTTP Task Notes Client Process Domino Server Notes Client ● Both the Domino server and the Notes client are deployed as OSGi bundles The same extension mechanism is used in both platforms; extensions are provided as OSGi bundles. The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 10
  • 11. Advanced XPages application development Integrating Java Code Inside XPages ● Java classes can be either ▬ Embedded in an application, using J2EE packaging capability ▬ WEB-INF/classes & WEB-INF/lib ▬ Shared by all the applications ▬ The jar files should be copied into <domino>/xsp/nsf/lib ▬ Deployed as plug-ins in Notes client or future Domino 8.5.x ● Developing the java code inside IBM Lotus Domino Designer ● Calling Java libraries from an XPage ▬ Call Java from JavaScript http://www-10.lotus.com/ldd/ddwiki.nsf/dx/09242008095047AMWEBJ9A.htm 11
  • 12. Advanced XPages application development Working with Managed Beans ● What is a managed bean and why should I use it? ▬ It is a Java bean where the lifecycle of the bean is managed by the JSF runtime ▬ Declared in an XML file (faces-config.xml) ▬ Created the first time it is used ▬ Automatically stored into a scope application, session, view (new in 8.5.2) or request ▬ It can encapsulate data access or business logic ▬ Lots of documentation is available on the net ● Binding UI controls to a managed bean ▬ Using the EL language ▬ Using Managed Beans through JavaScript http://www.mindoo.com/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&comments 12
  • 13. Extending the XPages Runtime XPages Native API concepts ● XPages Library ▬ OSGi bundle (plug-ins) that contains Java code, configuration files and resources ● Controls ▬ Reusable components that appear in the Designer palette ● Renderers ▬ A renderer defines how a control is rendered at runtime ▬ Outputs HTML and client JavaScript to the browser ● Complex types ▬ Other XPages objects used by controls to store parameters and encapsulate behaviors ▬ Some examples ▬ Data sources, simple actions, validators, converters... The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 13
  • 14. Extending the XPages Runtime Example #1 New Native Controls in the Palette ● Tooltip: basic control that generates a Dojo tag ▬ Requires 2 Java classes: one for the control, and one for its associated renderer ▬ The control definition is located in a xsp-config file ▬ Read only control: processing the JSF rendering phase only ● Data bound slider ▬ Binding a control to data ▬ Processing all the JSF phases 14
  • 15. Extending the XPages Runtime Example #2 Packaging a Custom Control into a plug-in ● A custom control is defined similarly to Native control ▬ A configuration file (.xsp-config) is defining the control properties ▬ A Java file is used to create the control object at runtime ▬ A custom control can be packaged like a native control ● Example: simple Ok-Cancel toolbar ▬ Copy the Java file, generated by Designer, to the plug-in ▬ The xsp-config file should also be added to the plug-ins ▬ Path to resources should be adapted ▬ Extension point to publish images, style sheets, other resources. ● Allows reuse of multiple XPage design elements from different sources, without using templates. The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 15
  • 16. Extending the XPages Runtime Example #3 Simple Actions ● Simple actions are objects, added to events, that can execute code on either the server or client side ▬ Each simple action can have it own set of properties ▬ Server Side ▬ Execute some Java code on the server ▬ Example: Modify Selected Documents Field, e.g. if you want to select multiple documents and change status field to "completed". ▬ Client Side ▬ Generates a piece of client side JavaScript when the page is rendered ▬ Example: Select Documents with Column Value e.g. Action to check the check box for each row where the column value is “new”. The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 16
  • 17. Extending the XPages Runtime Example #4 Json Data Source ● A DataSource provides data access to the page through a set of objects ▬ DataSource, complex type tag used in the XPage ▬ DataContainer, used to persist data between requests until saved ▬ DataModel, used by repeating controls to find individual items ● An example DataSource with underlying data like { {name: 'Fred', position: 'QE', phone: '5551234' }, {name: 'Joe', position: 'Dev', phone: '5551235' } } The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 17
  • 18. Extending the XPages Runtime Example #5 Providing a ContentType Renderer ● A content type renderer is used to format a text ▬ Available as a property to computed fields and view columns ▬ It gets the text to display from the runtime and can generate any markup ▬ Contributed using an extension point ● Examples ▬ Lotus Sametime® awareness rendering ▬ Lotus Connections VCard The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 18
  • 19. Extending the XPages Runtime Example #6 Implementing Custom Request Processing ● Hooking into the page request ▬ XPages controls can shortcut a request with a “pathinfo” and render any kind of result ▬ http://server/db.nsf/page.xsp/pathinfo?... ▬ The request is executed in the context of the page ▬ Any page/user/application data is available ● Example: REST services ▬ Formatting Domino data into a JSON stream ▬ Consumed by a Dojo dynamic grid ▬ RPC calls between the client and the server The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 19
  • 20. Extending the XPages Runtime XPages Library Content ● Java files ▬ A library definition file ▬ Java files implementing XPages controls, renderers, complex types ● Configuration files ▬ faces-config.xml Runtime JSF configuration file, defining for example the renderers ▬ .xsp-config XPages configuration file defining the controls and complex type. Used by Designer editors to fill the palette and the property panels. Used to generate the compiled XPages. ● Runtime resources ▬ CSS, JavaScript... The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 20
  • 21. Extending the XPages Runtime Building and Deploying a Library ● Building Java plug-ins from Domino Designer ▬ using the Eclipse™ PDE, included in Designer ● Installing into Designer and the developer's Notes Client ▬ Optional design time plugin, to get a better user experience in Designer ● Installing the library on the server ▬ Libraries do not replicate between servers. ● Publishing the bundle on a server for other Notes Client users ▬ Libraries can be pulled from a server to the Notes Client The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 21
  • 22. Extending the XPages Runtime Using a Library in an Application ● Pre-installed IBM libraries ▬ Are automatically available ● Explicit libraries ▬ A link should be added at the Application level ▬ The plug-ins can be downloaded and deployed to the client ● Global libraries ▬ When installed, available at runtime to every application ▬ Explicitly linked by applications that need them to function The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 22
  • 23. Extending the XPages Runtime Enhancing the Design Time Experience ● Providing render time markup ▬ XPages markup can be provided to replace the default square tags ● Registering property editors ▬ A property editor is used by the “All Properties” panel when the user edits a property ▬ Designer comes with a large set of predefined editors, but custom ones can be provided The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 23
  • 24. What We Skipped.... ● A lot... we'll provide documentation and samples over time ▬ Custom validators/converters ▬ Extending language bindings ▬ RequestParameters extension to configure themes & other properties ▬ Active Content Filtering engines for processing markup ▬ ... The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 24
  • 25. Q&A - Anticipated! ● Can I deploy custom XPages libraries on N/D 8.5, 8.5.1? ▬ This is not supported/documented by IBM. ● Can I use OSGi on Domino for purposes other than XPages? ▬ This is a future goal but it hasn't been qualified yet to support those use cases. ● Will you update to JSF 2.0? ▬ Not in plan for now. Might be if we have strong business cases. It is not justified as XPages already implements most of the JSF 2.0 new features. ● Can I contribute to the OSGi framework from a NSF? ▬ This is not supported in the next release of Notes/Domino, but we're thinking about it! The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion 25
  • 26. Q&A – Your Turn! 26
  • 27. Related Sessions Session ID Description AD106 XPages Just Keep Getting Better AD107 Enhance Your Existing Applications with XPages AD108 XPages in the IBM Lotus Notes Client - A Deep Dive! AD109 XPages Performance and Scalability AD111 Harnessing the Power of Server-Side JavaScript and Other Advanced XPage Techniques BP207 Make Your XPage Apps "Pop!" with CSS and Themes SHOW112 How to Build an XPages Application from Start to Finish 27
  • 28. Legal Disclaimer © IBM Corporation 2009. 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, Sametime and Lotusphere are trademarks of International Business Machines Corporation 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. JavaScript is a trademark of Sun Microsystems, Inc. in the United States, other countries, or both. OSGi is a trademark of the OSGi Alliance in the United States, other countries, or both. Eclipse is a trademark of Eclipse Foundation, Inc. 28