• Save
NLLUG 2012 - XPages Extensibility API - going deep!
Upcoming SlideShare
Loading in...5
×
 

NLLUG 2012 - XPages Extensibility API - going deep!

on

  • 1,778 views

These slides have been shown at NLLUG 2012 in Rotterdam and are an introduction to programming with the XPages Extensiblity API.

These slides have been shown at NLLUG 2012 in Rotterdam and are an introduction to programming with the XPages Extensiblity API.

Statistics

Views

Total Views
1,778
Views on SlideShare
1,778
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

NLLUG 2012 - XPages Extensibility API - going deep! NLLUG 2012 - XPages Extensibility API - going deep! Presentation Transcript

  • XPages Extensibility API – going deep NLLUG 2012, Rotterdam René Winkelmeyer midpoints GmbH
  • About me midpoints GmbH http://www.midpoints.de IBM Advanced Business Partner IBM Design Partner for Domino Next IBM Mobile Design Partner Apple Enterprise Developer & MDM Program Services • Notes / Domino Consulting • E-Mail Management • App Development (IBM Connections, RCP, XPages, mobile) We mobilize Notes René Winkelmeyer • Lotus Traveler planning & deployment Senior Consultant • mobile app development • Apple iOS Device Management • Secure mobile content delivery OpenNTF Contributor and OpenNTF Director => File Navigator: http://filenavigator.openntf.org => XSnippets: http://xsnippets.openntf.org 2
  • • Skype muenzpraeger • Twitter muenzpraeger • LinkedIn muenzpraeger • Facebook muenzpraeger • Slideshare muenzpraeger • G+ www.winkelmeyer.com/+ • WebRené Winkelmeyer http://blog.winkelmeyer.comSenior Consultant http://www.midpoints.de • Mail mail@winkelmeyer.com rene.winkelmeyer@midpoints.de 3
  • Agenda What will be talk about? - Differences XPages, Extension Library and Extensibility API - Starting with Plug-In-Development - Code examples - Deployment 4
  • Agenda What will be talk about? - Differences XPages, Extension Library and Extensibility API - Starting with Plug-In-Development - Code examples - Deployment 5
  • XPages XPages is a great technlogy and expands our possibilities – from the point of administrators, developers and users. Starting with XPages could be really simple. For the very first steps is just drag‘n‘drop, computing stuff and so on. To be honest: Domino web development never was so easy (after you‘ve learned the basics). 6
  • XPages The most powerful component is the editable area. 7
  • XPages / XPages Extension Library There are some things which aren‘t so easy...  You are missing controls in the pallette  OneUI ist too complex  You want some custom rendering  ... Here the XPages Extension Library comes to your help. 8
  • XPages Extension Library 9
  • XPages Extension Library IBM has introduced the XPages Extensibility API with Notes/Domino 8.5.2. This API is a set of Java classes and methods which allow to integrate specialised functionality directly into XPages.  This means XPages in the browser and XPages in the Notes client. IBM has used this API to provide the well-known XPages Extension Library – (first) on OpenNTF and than as part of the core product! 10
  • XPages Extension Library 11
  • XPages Extension Library You‘ll finde it on OpenNTF http://extlib.openntf.org 12
  • XPages Extension Library It‘s part of Notes/Domino 8.5.3 as „Upgrade Pack 1“ – full product support through IBM!  Part number: CI5GIEN Watch out: If you want to use the Upgrade Pack 1 you‘ll have to uninstann previous versions of the OpenNTF Extension Library.  IBM installs the UP1 in the program directory. The OpenNTF components are installed in the data directory.  Currently only available as Installer – not as Updatesite. 13
  • XPages Extensibility API 14
  • XPages Extensibility API It only makes sense to develop your own extensions if you need the same functionality across multiple applications. An extension (aka OSGi Plug-In) needs only to deployed once per server or client – not per application. http://www.osgi.org <= start here 15
  • XPages Extensibility API So called „artefacts“ can be added to the existing API during runtime. JSF is an „open standard“ which APIs are publically available. The XPages APIs are public since Domino 8.5.2. Artefacts can be:  UI Controls  Converters  Validators  Data Sources  Simple Actions  Language Bindings  ... 16
  • XPages Architektur 17
  • XPages API Concepts XPages Library  OSGi bundle, contains Java code, configuration files Controls  Components which are available in the Designer pallette Renderer  Renderer are responsible for displaying the output (HTML, CSS, ...) Complex Types  Those are i. e. used to create encapsulated functions or store data. 18
  • Agenda What will be talk about? - Differences XPages, Extension Library and Extensibility API - Starting with Plug-In-Development - Code examples - Deployment 19
  • Powered By Eclipse 20
  • Eclipse Plug-In-Architektur 21
  • IBM Clients/Server based on Eclipse 22
  • Development setup We are using Eclipse 3.7 (32bit). 23
  • Development setup For keeping it simple: use the OpenNTF project „XPages SDK for Eclipse RCP.  Nathan T. Freeman: http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocum ent&name=XPages%20SDK%20for%20Eclipse%20RCP 24
  • Development setup First create a new workspace 25
  • Development setup Install new software in Eclipse 26
  • Development setup Select the XPages SDK 27
  • Development setup XPages SDK installation (I) De-select this check box 28
  • Development setup XPages SDK installation (II) 29
  • Development setup XPages SDK installation (III) 30
  • Development setup XPages SDK installation (IV)  Unsigned means, that the plug-ins aren‘t digitially signed. That‘s ok. 31
  • Development setup XPages SDK installation (V) 32
  • Development setup Configuration of the XPages SDK (I) 33
  • Development setup Configuration of the XPages SDK (II) 34
  • Development setup Configuration of the XPages SDK (III) 35
  • Development setup Configuration of the XPages SDK (IV) 36
  • Development setup Configuration of the XPages SDK (V) 37
  • Development setup Configuration of the XPages SDK (VI) 38
  • Development setup Configuration of the XPages SDK (VII) 39
  • Development setup You shouldn‘t develop without debugging. So we‘re installing a debugger. We are using the OpenNTF Domino Debug Plug-In.  http://www.openntf.org/internal/home.nsf/release.xsp?documentId=CBF 874E9C4607B4C8625799D00287B8C&action=openDocument 40
  • Development setup Installation of the Debug-Plug-In (I) 41
  • Development setup Installation of the Debug-Plug-In (II) 42
  • Development setup Installation of the Debug-Plug-In (III) 43
  • Development setup Installation of the Debug-Plug-In (IV) 44
  • Development setup Installation of the Debug-Plug-In (V) 45
  • Development setup Installation of the Debug-Plug-In (VI) 46
  • Development setup Installation of the Debug-Plug-In  Currently only local Domino server installations are supported. 47
  • Development setup Creating the debug environment (I) 48
  • Development setup Creating the debug environment (II) 49
  • Development setup Creating the debug environment (II) 50
  • Development setup Creating the debug environment (III) 51
  • Development setup Add the following notes.ini parameters to the locally installed Domino server (they are needed for the remote debugging)  JAVADEBUGOPTIONS=transport=dt_socket,server=y,suspend=n,addr ess=8000  JAVAENABLEDEBUG=1 52
  • Agenda What will be talk about? - Differences XPages, Extension Library and Extensibility API - Starting with Plug-In-Development - Code examples - Deployment 53
  • Code examples A simple UIComponent created with the XPages Extensibility API 54
  • General library structure Java files  Controls  javax.faces.component.UIComponent  Base for all UI components  Renderers  javax.faces.render.Renderer  Writes the output to the browser Configuration files  faces-config.xml  Runtime JSF configuration, defines i. e. the renderer  .xsp-config  Defines the controls, is used to display within Designer and for compiling the XPages  plugin.xml  Adding the extensions 55
  • Project structure 56
  • MessagesDialog (UIComponent for Designer) for identification 57
  • MessagesDialog (UIComponent for Designer) 58
  • MessagesRenderer (XPages output) 59
  • MessagesRenderer (XPages output) helper method 60
  • MessagesRenderer (XPages output) 61
  • MessagesRenderer (XPages output) 62
  • Library 63
  • manifest.mf optional for JS addin 64
  • plugin.xml plug-ins library class 65
  • Configuration files Simple till here...or? Now we have to create the configuration files. Remember the standards! 66
  • messages-faces-config.xml (XPage-Rendering) 67
  • messages.xsp-config 68
  • messages.xsp-config 69
  • messages.xsp-config 70
  • messages.xsp-config 71
  • plugin.xml für your own @Commands 72
  • Global Java definiton for your own @Commands 73
  • Detail class for your own @Commands 74
  • D-E-B-U-G-G-I-N-G Setup a remote application for debugging. 75
  • D-E-B-U-G-G-I-N-G 76
  • Agenda What will be talk about? - Differences XPages, Extension Library and Extensibility API - Starting with Plug-In-Development - Code examples - Deployment 77
  • Deployment Domino-Server Create a new database/application based on the Updatesite template. I highly recommend to use a dedicated database for server-only plug-ins. Import the plug-ins into the database. Replicate the database with all according servers.  Plug-Ins couldn‘t be replicated as the „normally“ reside on the file system. Set the notes.ini parameter OSGI_HTTP_DYNAMIC_BUNDLES=<datenbank.nsf> on the Domino servers. Finished. Restart the http and that‘s all. 78
  • Thank you very much! 79