XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code,...
Transcript of XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code,...
![Page 1: XPages Extensibility API – going deep€¦ · OSGi bundle, enthält Java Code, Konfigurationsdateien ! Controls ! Komponenten die in der Designer-Palette erscheinen ! Renderer !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/1.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/2.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/3.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/4.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/5.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/6.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/7.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/8.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/9.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/10.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/11.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/12.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/13.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/14.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/15.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/16.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/17.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/18.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/19.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/20.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/21.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/22.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/23.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/24.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/25.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/26.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/27.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/28.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/29.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/30.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/31.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/32.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/33.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/34.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/35.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/36.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/37.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/38.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/39.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/40.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/41.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/42.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/43.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/44.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/45.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/46.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/47.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/48.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/49.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/50.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/51.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/52.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/53.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/54.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/55.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/56.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/57.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/58.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/59.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/60.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/61.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/62.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/63.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/64.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/65.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/66.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/67.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/68.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/69.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/70.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/71.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/72.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/73.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/74.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/75.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/76.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/77.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/78.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/79.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/80.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/81.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/82.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/83.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/84.jpg)
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 !](https://reader035.fdocuments.us/reader035/viewer/2022070113/605a998b0e8fca47b41bf454/html5/thumbnails/85.jpg)
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]