Community articleXPages Extensibility API Developers Guide
Added by Deanna Drschiwiski | Edited by starrow pan on November 20, 2014
Rate this article 1 starsRate this article 2 starsRate this article 3 starsRate this article 4 starsRate this article 5 stars

Welcome to the XPages Extensibility API Developers Guide; the Official Resource for Development using the XPages Extensibility API.

XPages

Introduction


What is the XPages Extensibility API?


New to IBM Lotus Notes / Domino 8.5.2, the XPages Extensibility API enables users to extend XPages by creating additional functionality specific to their needs. It provides a rich and powerful set of features which present the opportunity to create new and specialized functionality that can be integrated directly into XPages. This heralds the next generation of XPages by giving users the tools and resources necessary to direct their own development of XPages to suit their requirements and help meet their business needs.

Getting Started


The development environment for the XPages Extensibility API is the same IDE used for XPages application development; Lotus Domino Designer. This is freely available for download from developerWorksexternal link. The XPages Extensibility API is a Java-based framework. Thus, to extend XPages using the Extensibility API; the Java programming language must be used. This Developers Guide is the definitive resource for development using the XPages Extensibility API. There are tutorials and resources for all skill sets ranging from beginners through to advanced. The tutorials are complete with screenshots, code samples and demonstrations to support your learning and further your knowledge.

The tutorials are divided into the following sections; Controls, Library and Deployment. The first section contains tutorials about how to create new controls for XPages. Once you have created some XPages extension, the Library section has two different tutorials on how to package your extension in a Library so it can be distributed to be used by multiple applications. Lastly, the Deployment section show you how to deploy a Library across Domino Designer, Lotus Notes, Domino Server and the Widget Catalog.

For beginners, the first tutorial will help you to get started using Domino Designer and walk-through creating your first control using the XPages Extensibility API. Once you become more comfortable and familiar developing using the XPages Extensibility API, you can continue with the next tutorial which discusses in detail how to create a basic user interface control and how to implement control properties.

There are tutorials to help you through the whole process from creating new features, to creating an XPages library to package your new feature and finally to deploying your XPages libraries across your infrastructure.

Over time, new tutorials will be added covering the breadth of possibilities presented by the XPages Extensibility API.

What is the XPages Extension Library?


Based on the XPages Extensibility API, the Extension Library provides a set of new artifacts, including controls, which introduces extended capabilities to supplement XPages. There is extensive documentation accompanying the Extension Library showing how to install the library from either a pre-built version or directly from the Subversion repository and continues with in-depth details of the library's features.

It is available to download from OpenNTF - XPages Extension Libraryexternal link.

This allows for more frequent updates independent of the XPages release cycle. Developers are actively encouraged to contribute to the Extension Library; it presents a strong community resource for XPages.

Tutorials


Extensions


Controls


Creating a Control in an NSF
This article shows you step-by-step how to create a control for XPages in an NSF application.

Creating a Basic UI Control
This article describes how to create a basic user interface control for XPages. In particular, it describes in detail how to implement control properties.

Complex Types


Creating and Implementing Complex Types
This article introduces complex types and describes step-by-step how to create and implement them. Complex types are XPages tags that can be assigned as values to properties.

Simple Actions


Create a Client Side Simple Action
This article shows you how to create a Client Side Simple Action to wrap a piece of reusable JavaScript client business logic that can be easily added to XPages applications.

Library


Creating an XPages Library
This article shows you step-by-step how to create an XPages library to package an existing control to be used by multiple applications.

Blank XPages Library
This article provides an XPages library to be used as a template and shows you step-by-step how to change it to develop your own library.

XPages Library Versioning
This article describes how to implement incremental releases (versioning) of an XPages library.

Deployment


Using an XPages Library in Domino Designer
This article shows you step-by-step how to install an XPages library into Domino Designer and create applications using the new controls.

Deploying XPages Libraries
This article describes how to deploy an XPages library including how an administrator can install a library across an organization or to a specific user.

JUnit Framework


Testing XPages with JUnit Test Framework
This article describes in detail how a developer can set up a JUnit testing project for an XPages library, including configuring the existing tests provided by the framework.

Testing XPages: Quick Start
This article provides a brief quick start guide to setting up a JUnit testing project for an XPages library, based on the sample test project provided.

References


XPages Configuration File Format
This reference article describes the contents of the xsp-config file, used to define XPages control tags to be contributed to Domino Designer.

Documentation


Domino Designer Extensibility APIs Javadoc 9.0.1
This article contains the 9.0.1 documentation for the XPages Extensibility API and the Domino Designer Extensibility API.

Domino Designer Extensibility APIs Javadoc 8.5.3
This article contains the 8.5.3 documentation for the XPages Extensibility API and the Domino Designer Extensibility API.

XPages Extensibility API Documentation for 8.5.2
This article contains the 8.5.2 documentation of the XPages Extensibility API.

External Resources


XPages Blogexternal link
The XPages blog is a resource of information about XPages application development.