xpages extensibility api – going deep€¦ · osgi bundle, enthält java code,...

85
XPages Extensibility API – going deep René Winkelmeyer midpoints GmbH

Upload: others

Post on 18-Oct-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

XPages Extensibility API – going deep

René Winkelmeyer midpoints GmbH

Page 2: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

2

René Winkelmeyer Senior Consultant

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 •  Lotus Traveler planning & deployment •  mobile app development •  Apple iOS Device Management

OpenNTF Contributor und OpenNTF Director => File Navigator: http://filenavigator.openntf.org => XSnippets: http://xsnippets.openntf.org

Page 3: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

3

Agenda

Worüber wir heute sprechen werden -  Unterschiede XPages, Extension Library und Extensibility API

-  Vorgehensweise Plug-In-Development -  Codebeispiele

-  Deployment

Page 4: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

4

Agenda

Worüber wir heute sprechen werden -  Unterschiede XPages, Extension Library und Extensibility API

-  Vorgehensweise Plug-In-Development -  Codebeispiele

-  Deployment

Page 5: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

5

XPages

§  XPages ist eine großartige Technologie und erweitert – aus Entwicklungs, aus Administrations- und vor allem aus Benutzersicht die Möglichkeiten erheblich.

§  Mit XPages zu beginnen ist einfach. RAD in einer sehr guten Umsetzung. Einfaches Drag‘n‘Drop und (fast) alles kann berechnet werden.

§  Um ehrlich zu sein: man konnte noch nie einfacher Web-Entwicklung mit Domino machen.

Page 6: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

6

XPages

§  Das mächtigste Werkzeug ist dabei die editable area.

Page 7: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

7

XPages / XPages Extension Library

§  Es gibt jedoch gewisse Dinge, die entweder schwierig umzusetzen sind – oder einfach nur fehlen... §  In der Palette sind nicht die erforderlichen Controls vorhanden §  OneUI ist zu komplex §  Custom rendering wird benötigt §  ...

§  Viele Dinge können hier schon mit der XPages Extension Library gelöst werden.

Page 8: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

8

XPages Extension Library

Page 9: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

9

XPages Extension Library

§  IBM hat mit Notes/Domino 8.5.2 die XPages Extensibility API eingeführt.

§  Diese API ist ein Set von Java-Klassen und –Methoden mit denen man spezialisierte Funktionen direkt in XPages integrieren kann. §  Dies gilt sowohl für XPages im Browser als auch im Notes-Client

(XPinC).

§  Mit dieser API hat IBM die viel bekannte XPages Extension Library bereitgestellt – (zuerst) auf OpenNTF und dann als Bestandteil des core product!

Page 10: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

10

XPages Extension Library

Page 11: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

11

XPages Extension Library

§  Auf OpenNTF zu finden unter http://extlib.openntf.org

Page 12: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

12

XPages Extension Library

§  Verfügbar als Notes/Domino 8.5.3 Upgrade Pack 1 – voller Produktsupport durch IBM! §  Part number: CI5GIEN

§  Achtung: Bei Einsatz des Upgrade Pack 1 sind vorherige Installation der OpenNTF Extension Library vollständig zu entfernen. §  IBM installiert die Inhalte des UP1 in das Programmverzeichnis,

während die OpenNTF Extension Library in das Data-Verzeichnis eingeführt wird.

§  Aktuell nur verfügbar als Installer – nicht per Updatesite o. ä.

Page 13: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

13

XPages Extensibility API

Page 14: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

14

XPages Extensibility API

§  Es macht nur dann Sinn eigene XPages Extensions zu erstellen, wenn man in mehrere Applikationen häufig die selbe Funktionalität benötigt.

§  Eine Extension (OSGi Plug-In) muss dabei nur einmal auf den Domino-Server/den Notes-Client deployed werden – im Gegensatz zu custom controls.

http://www.osgi.org <= unbedingt anschauen

Page 15: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

15

XPages Extensibility API

§  So genannte „Artefakte“ könne über die vorhandene API zur Runtime hinzugefügt werden.

§  JSF ist ein „offener Standard“ dessen APIs öffentlich verfügbar sind.

§  Seit Domino 8.5.2 sind die XPages APIs veröffentlicht worden.

§  Artefakte können sein: §  UI Controls §  Converters §  Validators §  Data Sources §  Simple Actions §  Language Bindings §  ...

Page 16: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

16

XPages Architektur

Page 17: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

17

XPages API Konzepte

§  XPages Library §  OSGi bundle, enthält Java Code, Konfigurationsdateien

§  Controls §  Komponenten die in der Designer-Palette erscheinen

§  Renderer §  Renderer geben HTML oder CSJS aus

§  Complex Types §  Hiermit können z. B. Parameter gespeichert werden. Sie werden auch

verwendet um gekapselte Funktionen zu realisieren.

Page 18: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

18

Agenda

Worüber wir heute sprechen werden -  Unterschiede XPages, Extension Library und Extensibility API

-  Vorgehensweise Plug-In-Development -  Codebeispiele

-  Deployment

Page 19: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

19

Powered By Eclipse

Page 20: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

20

Eclipse Plug-In-Architektur

Page 21: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

21

IBM Clients/Server auf Basis von Eclipse

Page 22: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

22

Setup der Entwicklungsumgebung

§  Die Entwicklung erfolgt mittels Eclipse. Für diese Präsentation wird Eclipse 3.7 (32bit) eingesetzt.

Page 23: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

23

Setup der Entwicklungsumgebung

§  Zur Vereinfachung setzen wir das „XPages SDK for Eclipse RCP“ ein. §  Bereitgestellt auf OpenNTF durch Nathan T. Freeman:

http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPages%20SDK%20for%20Eclipse%20RCP

Page 24: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

24

Setup der Entwicklungsumgebung

§  Zuerst erstellen wir nach dem Start von Eclipse einen neuen Workspace.

Page 25: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

25

Setup der Entwicklungsumgebung

§  Installation neuer Software innerhalb von Eclipse

Page 26: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

26

Setup der Entwicklungsumgebung

§  Auswahl des XPages SDK

Page 27: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

27

Setup der Entwicklungsumgebung

§  Installation des XPages SDK (I)

De-SelektierenDe-Selektieren

Page 28: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

28

Setup der Entwicklungsumgebung

§  Installation des XPages SDK (II)

Page 29: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

29

Setup der Entwicklungsumgebung

§  Installation des XPages SDK (III)

Page 30: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

30

Setup der Entwicklungsumgebung

§  Installation des XPages SDK (IV) §  Unsigniert ist ok – es bedeutet, dass die Plug-Ins nicht digital signiert

wurden

Page 31: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

31

Setup der Entwicklungsumgebung

§  Installation des XPages SDK (V)

Page 32: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

32

Setup der Entwicklungsumgebung

§  Konfiguration des XPages SDK (I)

Page 33: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

33

Setup der Entwicklungsumgebung

§  Konfiguration des XPages SDK (II)

Page 34: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

34

Setup der Entwicklungsumgebung

§  Konfiguration des XPages SDK (III)

Page 35: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

35

Setup der Entwicklungsumgebung

§  Konfiguration des XPages SDK (IV)

Page 36: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

36

Setup der Entwicklungsumgebung

§  Konfiguration des XPages SDK (V)

Page 37: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

37

Setup der Entwicklungsumgebung

§  Konfiguration des XPages SDK (VI)

Page 38: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

38

Setup der Entwicklungsumgebung

§  Konfiguration des XPages SDK (VII)

Page 39: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

39

Setup der Entwicklungsumgebung

§  Ohne Debugging sollte man nicht entwickeln – also ist noch ein Debugger zu installieren.

§  Wir setzen hier das Domino Debug Plug-In von OpenNTF ein. §  http://www.openntf.org/internal/home.nsf/release.xsp?

documentId=CBF874E9C4607B4C8625799D00287B8C&action=openDocument

Page 40: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

40

Setup der Entwicklungsumgebung

§  Installation des Debug-Plug-In (I)

Page 41: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

41

Setup der Entwicklungsumgebung

§  Installation des Debug-Plug-In (II)

Page 42: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

42

Setup der Entwicklungsumgebung

§  Installation des Debug-Plug-In (III)

Page 43: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

43

Setup der Entwicklungsumgebung

§  Installation des Debug-Plug-In (IV)

Page 44: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

44

Setup der Entwicklungsumgebung

§  Installation des Debug-Plug-In (V)

Page 45: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

45

Setup der Entwicklungsumgebung

§  Installation des Debug-Plug-In (VI)

Page 46: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

46

Setup der Entwicklungsumgebung

§  Konfiguration des Debug-Plug-In §  NUR lokale Domino-Server werden (aktuell) unterstützt

Page 47: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

47

Setup der Entwicklungsumgebung

§  Erstellung der Debug-Umgebung (I)

Page 48: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

48

Setup der Entwicklungsumgebung

§  Erstellung der Debug-Umgebung (II)

Page 49: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

49

Setup der Entwicklungsumgebung

§  Erstellung der Debug-Umgebung (II)

Page 50: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

50

Setup der Entwicklungsumgebung

§  Erstellung der Debug-Umgebung (III)

Page 51: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

51

Setup der Entwicklungsumgebung

§  Damit der Domino Remote-Debug akzeptiert, sind noch zwei notes.ini-Parameter zu setzen. §  JAVADEBUGOPTIONS=transport=dt_socket,server=y,suspend=n,addr

ess=8000 §  JAVAENABLEDEBUG=1

§  Und wir sind noch nicht ganz fertig – später dazu mehr...

Page 52: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

52

Vollständiges IDE-Setup

Demo

Page 53: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

53

Agenda

Worüber wir heute sprechen werden -  Unterschiede XPages, Extension Library und Extensibility API

-  Vorgehensweise Plug-In-Development -  Codebeispiele

-  Deployment

Page 54: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

54

Codebeispiele

§  XPages Extensibility API am Beispiel einer einfach UIComponent.

requestScope setzenrequestScope setzen

Rendering mittels Plug-InRendering mittels Plug-In

Page 55: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

55

Codebeispiele

Demo

Page 56: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

56

Generelle Struktur einer Library

§  Java-Dateien §  Controls

§  javax.faces.component.UIComponent §  Basis für alle UI Komponenten

§  Renderers §  javax.faces.render.Renderer §  Schreibt den Output zum Browser

§  Konfigurationsdateien §  faces-config.xml

§  Runtime JSF Konfiguration, definiert z. B. den Renderer §  .xsp-config

§  Definiert die Controls, wird benötigt zur Anzeige im Designer und zum Kompilieren der XPages

§  plugin.xml §  Andocken an die Erweiterungspunkte (extensions)

Page 57: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

57

Projektstruktur

Page 58: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

58

MessagesDialog (UIComponent für den Designer)

Dient der Identifkation.Dient der Identifkation.

Page 59: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

59

MessagesDialog (UIComponent für den Designer)

Page 60: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

60

MessagesRenderer (Output in der XPage)

Page 61: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

61

MessagesRenderer (Output in der XPage)

Helfer-MethodeHelfer-Methode

Page 62: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

62

MessagesRenderer (Output in der XPage)

Page 63: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

63

MessagesRenderer (Output in der XPage)

Page 64: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

64

Library

Case-sensitiveCase-sensitive

Designer(UIComponent)Designer(UIComponent)

XPages(Renderer)XPages(Renderer)

Page 65: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

65

manifest.mf

(optional, für JSAddin)(optional, für JSAddin)

Page 66: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

66

plugin.xml

Library-Klasse des Plug-InsLibrary-Klasse des Plug-Ins

Page 67: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

67

Konfigurationsdateien

§  Bis hierhin ist es noch relativ einfach gewesen...oder?

§  Nun müssen die Konfigurationsdateien erstellt und bearbeitet werden. Die verwendeten Bezeichnungen sollten sich am vorhandenen Standard orientieren.

Page 68: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

68

messages-faces-config.xml (XPage-Rendering)

Component-Info!!Component-Info!!

von Renderer abgeleitete Klassevon Renderer abgeleitete Klasse

Page 69: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

69

messages.xsp-config

Page 70: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

70

messages.xsp-config

Page 71: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

71

messages.xsp-config

Page 72: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

72

messages.xsp-config

Page 73: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

73

Codebeispiele

Demo

Page 74: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

74

plugin.xml für eigene @Commands

Page 75: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

75

Globale Java-Definition für eigene @Commands

Page 76: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

76

Detail-Klasse für eigene @Commands

Page 77: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

77

Codebeispiele

Demo

Page 78: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

78

D - E - B - U - G - G - I - N - G

§  Einrichtung einer Remote Java Application zum Debugging.

Page 79: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

79

D - E - B - U - G - G - I - N - G

Page 80: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

80

Codebeispiele

Demo

Page 81: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

81

Agenda

Worüber wir heute sprechen werden -  Unterschiede XPages, Extension Library und Extensibility API

-  Vorgehensweise Plug-In-Development -  Codebeispiele

-  Deployment

Page 82: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

82

Deployment Notes-Client

§  Für das Deployment von Plug-Ins in den Notes-Client möchte ich auf die EC2012-Slides meines Kollegen Detlev Pöttgen verweisen.

Page 83: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

83

Deployment Domino-Server

§  Auf Basis des Updatesite-Templates ist eine neue Datenbank zu erstellen bzw. kann eine vorhandene mitgenutzt werden. Für reine Server-Plug-Ins empfehle ich eine separate Datenbank!

§  Die Plug-Ins sind die Updatesite-Datenbank zu importieren.

§  Die Datenbank ist auf alle erforderlichen Server zu replizieren. §  Plug-Ins an sich kann man nicht replizieren, da es sich um „normales“

File-System handelt.

§  Der notes.ini-Parameter OSGI_HTTP_DYNAMIC_BUNDLES=<datenbank.nsf> ist auf allen Domino-Server zu setzen.

§  Fertig. Die Plug-Ins werden bei HTTP-Start automatisch installiert.

Page 84: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

84

Codebeispiele

Demo

Page 85: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !

85

Vielen Dank für Ihre Aufmerksamkeit!

René Winkelmeyer Skype/Twitter/LinkedIn/Facebook: muenzpraeger http://blog.winkelmeyer.com http://www.xing.de/Rene_Winkelmeyer [email protected] / [email protected]

midpoints | purify it http://www.midpoints.de [email protected]