SlideShare a Scribd company logo
How I Learned To Stop Worrying And Love Plugin Development 
Ulrich Krause, London, UK, September 12, 2014
ICON UK 2014 – Plugin Development 
About: Ulrich Krause Administrator /Developer since 1993 Senior Software Architect at BCC Blog http://www.eknori.de IBM Champion 2011/2012/2013/2014
ICON UK 2014 – Plugin Development 
Agenda Types of Plugins What‘s All The Parts Needed ? Setup The Development Environment Run / Debug Configuration Build a simple Menue extension Build a Sidebar Plug-In Working with existing code Extension Points Deploy Plug-Ins Plug-In Security
ICON UK 2014 – Plugin Development 
It‘s only one way of doing it … 
And I know there's a few to demonstrate the theory
ICON UK 2014 – Plugin Development 
No animals were harmed * during the making of this presentation ! 
* That part comes, when you download the slides from http://slideshare.net
ICON UK 2014 – Plugin Development 
Types of Plug-Ins Adding new items to a menue bar or a context menue Display data in the Sidebar 
•Ralf Petter: Document Spy: Admins little helper http://www.everythingaboutit.eu/2014/08/document-spy-admins-little- helper.html Execute code when the client starts, after the user has logged in or when the client has shut down. 
•Karsten Lehmann: Mindoo Xulrunner Prefs.js Management Plugin http://www.openntf.org/main.nsf/project.xsp?r=project/Mindoo%20Xulrunner%20Prefs.js%20Management%20Plugin/summary
ICON UK 2014 – Plugin Development 
Download, Install, Configure
ICON UK 2014 – Plugin Development 
Download Eclipse SDK 
https://www.eclipse.org/downloads/packages/release/ganymede/sr2
ICON UK 2014 – Plugin Development 
Download Expeditor Toolkit 
IBM Lotus Expeditor Toolkit provides a complete, integrated set of tools that allows you to develop, debug, test, package, and deploy client applications to IBM Lotus Expeditor V6.2, IBM Lotus Symphony V1.2, and IBM Lotus Notes V8.5+ 
http://www14.software.ibm.com/webapp/download/nochargesearch.jsp?q=Lotus+Expeditor+Toolkit+6.2
ICON UK 2014 – Plugin Development 
Unpack Eclipse and Expeditor
ICON UK 2014 – Plugin Development 
Install Eclipse Decompress into the directory of your choice It is strongly recommended to configure Eclipse with the specific JVM that you want Set the workspace 
http://wiki.eclipse.org/Eclipse/Installation#Configure_Eclipse_to_use_the_JVM
ICON UK 2014 – Plugin Development 
Install Lotus Expeditor Toolkit in Eclipse
ICON UK 2014 – Plugin Development 
Configure Expeditor Toolkit Configure Test Environment
ICON UK 2014 – Plugin Development 
Configure Expeditor Toolkit Set Target Location 
•<ClientInstall>  framework  rcp  eclipse
ICON UK 2014 – Plugin Development 
Configure Expeditor Toolkit VM Name & Compiler Compliance Level is set automatically. Leave as is …
ICON UK 2014 – Plugin Development 
Configure Eclipse SDK Open „Plug-in Development“ perspective
ICON UK 2014 – Plugin Development 
Configure Eclipse SDK Create Run Configuration(s)
ICON UK 2014 – Plugin Development 
Create RunConfiguration / Main
ICON UK 2014 – Plugin Development 
Create RunConfiguration / Select Plugins
ICON UK 2014 – Plugin Development 
Build Your First Plugin
ICON UK 2014 – Plugin Development 
Create A Simple Menue Plugin Add a new menue Add a new menue entry Display a message
ICON UK 2014 – Plugin Development 
Create A New Plug-In Project Alt + Shift + n
ICON UK 2014 – Plugin Development 
Plug-In Basic Configuration Give your Plug-In a name Set the Provider Check „Generate an activator …“
ICON UK 2014 – Plugin Development 
Create From Template Select a template
ICON UK 2014 – Plugin Development 
Your Workspace Should Look Like This
ICON UK 2014 – Plugin Development 
Anatomy of a plugin The plugin.xml contains meta- information for Eclipse, and contains the extension points declared/used by this plug-in The MANIFEST.MF is a standard Jar manifest, but contains meta- information used by Equinox, which is Eclipse's internal OSGi engine. Although there are specific entries in here for Eclipse (such as Eclipse- LazyStart ) the majority of entries here are standard OSGi
ICON UK 2014 – Plugin Development 
Anatomy of a plugin The Activator is run when your plug- in starts, and before any other code that's defined in your bundle is used. You can use this to initialise data structures, start listening to network sockets etc. It's also got a call when Eclipse shuts down Last (but not least), the SampleHandler , which just prints out "Hello, ConnectSCOTT" when you click on the little blue Eclipse icon in the toolbar.
ICON UK 2014 – Plugin Development 
Source Code (SampleHandler.java)
ICON UK 2014 – Plugin Development 
Create A New Run Configuration
ICON UK 2014 – Plugin Development 
Create A New Run Configuration
ICON UK 2014 – Plugin Development 
Assign Plug-ins to Launch Configuration
ICON UK 2014 – Plugin Development 
Run / Launch Plug-In
ICON UK 2014 – Plugin Development 
Debug Plug-In Code
ICON UK 2014 – Plugin Development 
Create A Sidebar Plug-In
ICON UK 2014 – Plugin Development 
Create a SideBar Plugin Simple Sidebar Plug-In for text snippets Content can be 
•loaded from file 
•saved to file Content is persistent between sessions
ICON UK 2014 – Plugin Development 
Create A Sidebar Plugin (cont) Create a new Plug-In Project 
•File  New  Plug-In Project 
•Type in Project Name
ICON UK 2014 – Plugin Development 
Create A Sidebar Plugin (cont) Check „Generate An Activator“ Leave Defaults or set it to a name of your choice. Depaends on how you organize your code Click NEXT to use a wizard, or FINISH to go do the heavy lifting on your own
ICON UK 2014 – Plugin Development 
Create A Sidebar Plugin (cont) Your project will look similar to the screenshot; Extension section is empty
ICON UK 2014 – Plugin Development 
Create A Sidebar Plugin (cont) Add Extension Points
ICON UK 2014 – Plugin Development 
Create A Sidebar Plugin (cont) Add category and view to the „org.eclipse.ui.views“ extension Repeat steps for all other extensions 
•com.ibm.rcp.ui.shelfViews 
•org.eclipse.ui.viewActions
ICON UK 2014 – Plugin Development 
Create A Sidebar Plugin (cont) Set the properties
ICON UK 2014 – Plugin Development 
Create A Sidebar Plugin (cont) Write Java code
ICON UK 2014 – Plugin Development 
Working With Existing Projects
ICON UK 2014 – Plugin Development 
Working with existing projects
ICON UK 2014 – Plugin Development 
Import into Eclipse Workspace
ICON UK 2014 – Plugin Development 
Plugin imported, but … ERRORS  
1.Go to the Build Path settings in the project properties. 
2.Remove the JRE System Library 
3.Add it back; Select "Add Library" and select the JRE System Library.
ICON UK 2014 – Plugin Development 
Extension Points
ICON UK 2014 – Plugin Development 
Understanding Extension Points http://www.eclipsezone.com/eclipse/forums/t93753.html?start=0
ICON UK 2014 – Plugin Development 
Extension Point Description Select the extension point in the Extensions section of the manifest and click „Show extension point description“ . This will open a new tab with all the information about the extension point
ICON UK 2014 – Plugin Development 
Plug-In Provisioning
ICON UK 2014 – Plugin Development 
Plug-In Provisioning Prerequisites Before we can install / deploy our plugin, we have to do some additional work 
•Create Feature Project 
•Create Update Site Project 
•Build Update Site content
ICON UK 2014 – Plugin Development 
Create a new feature project An Eclipse feature project contains features. A feature describes a list of plug-ins and other features which can be understood as a logical unit. It also has a name, version number and license information assigned to it. A feature is described via a feature.xml file 
File  New  Feature Project
ICON UK 2014 – Plugin Development 
Create a new feature project Give your project a name Change other values to your needs
ICON UK 2014 – Plugin Development 
Create a new feature project Select the plug-in(s) from the list. You can type in the name to easily navigate to the plug-in. Click Finish and Eclipse will create the feature project.
ICON UK 2014 – Plugin Development 
Create a new feature project If you are using Working Sets, you will not see the feature project Edit the current Working Set and add the feature project
ICON UK 2014 – Plugin Development 
Your Workspace Should Look Like This
ICON UK 2014 – Plugin Development 
Create Update Site Project The Update Site contains feature and plug-in versions for Eclipse project releases.
ICON UK 2014 – Plugin Development 
Create Update Site Project Give your project a name
ICON UK 2014 – Plugin Development 
Create Update Site Project Add feature(s)
ICON UK 2014 – Plugin Development 
Create Update Site Project Build the content
ICON UK 2014 – Plugin Development 
Deploying Plugins Let the user deploy the plugin Deploy during client installation Deploy plugin via Widget Catalog and Desktop Policy
ICON UK 2014 – Plugin Development 
Option 1: Let the user install the plugin
ICON UK 2014 – Plugin Development 
Option 1: Let the user install the plugin „Install“ not enabled by default. 
•customize plugin-customization.ini on client 
•add com.ibm.notes.branding/enable.update.ui=true Disabled by Desktop Policy
ICON UK 2014 – Plugin Development 
Option 1: Let the user install the plugin
ICON UK 2014 – Plugin Development 
Option 2: Deploy during client installation Customizing Notes install for features and plug-ins on Windows and Mac * 
*
ICON UK 2014 – Plugin Development 
Option 2: Deploy during client installation
ICON UK 2014 – Plugin Development 
Option 3: Widget Catalog and Desktop Policy
ICON UK 2014 – Plugin Development 
Create Update Site Database If you do not already have an „Update Site“ Create a new Update Site 
•File  Application  new 
•Check „Show advanced templates 
•Select „Eclipse Update Site“
ICON UK 2014 – Plugin Development 
Import Local UpdateSite into Database
ICON UK 2014 – Plugin Development 
Install In Sidebar Get URL of the plug-in
ICON UK 2014 – Plugin Development 
Install In Sidebar Tools  Widgets  Getting Started with Widgets  Features and Plugins Paste the URL Click „Load“ Check Feature to install Optionally provide an image url
ICON UK 2014 – Plugin Development 
Confirm Installation Select „Install plug-in“; Click „OK“ The plug-in will be installed; Then restart the client
ICON UK 2014 – Plugin Development 
Publish To Catalog 
http://www- 01.ibm.com/support/knowledgecenter/SSKTMJ_8.0.1/com.ibm.help.domino.admin.doc/ DOC/H_CREATE_EXTENSION_XML_STEPS.html?cp=SSKTMJ_8.0.1%2F1-3-9-2-3
ICON UK 2014 – Plugin Development 
Create Desktop Policy
ICON UK 2014 – Plugin Development 
Configure Client Preferences Select the catagory of widgets that should be installed on the client
ICON UK 2014 – Plugin Development 
Option 3: Widget Catalog and Desktop Policy
ICON UK 2014 – Plugin Development 
Sign Plugins End-to-End HOWTO guide for silently and transparently provisioning and installing Java extensions to Notes 8.5.1+ clients using policies (Mikkel Heisterberg) 
•http://lekkimworld.com/files/nllug/2009/demoscript_english_031120091142.pdf EntwicklerCamp 2011 - Signierung & Verteilung von Plugins für den Notes Client (René Winkelmeyer) 
•Link
Feedback ulrich_krause@bcc.biz 
Questions ?
ICON UK 2014 – Plugin Development 
OpenNTF Phonebook sidebar plugin 
http://www.openntf.org/main.nsf/project.xsp?r=project/Phonebook%20sidebar%20plugin/summary

More Related Content

What's hot

BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
Serdar Basegmez
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
Frank van der Linden
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile Controls
Paul Withers
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino Development
Paul Withers
 
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Mark Leusink
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPages
Jesse Gallagher
 
Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPages
Teamstudio
 
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
ddrschiw
 
Netbeans IDE & Platform
Netbeans IDE & PlatformNetbeans IDE & Platform
Netbeans IDE & Platform
Aatul Palandurkar
 
The power of dots
The power of dotsThe power of dots
The power of dots
Frank van der Linden
 
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
pjanzen11
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
Geertjan Wielenga
 
DNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostDNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance Boost
Christoph Adler
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates Everywhere
Kevin Pettitt
 
Introduction To NetBeans IDE
Introduction To NetBeans IDEIntroduction To NetBeans IDE
Introduction To NetBeans IDE
Muhammad Ghazali
 
BP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
BP204 It's Not Infernal: Dante's Nine Circles of XPages HeavenBP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
BP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
Michael McGarel
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
ddrschiw
 
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...Ryan Baxter
 

What's hot (20)

BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile Controls
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino Development
 
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPages
 
Bootstrap4XPages
Bootstrap4XPagesBootstrap4XPages
Bootstrap4XPages
 
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
Ad108 - XPages in the IBM Lotus Notes Client - A Deep Dive!
 
Netbeans IDE & Platform
Netbeans IDE & PlatformNetbeans IDE & Platform
Netbeans IDE & Platform
 
The power of dots
The power of dotsThe power of dots
The power of dots
 
Bootstrap4 x pages
Bootstrap4 x pagesBootstrap4 x pages
Bootstrap4 x pages
 
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
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
DNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostDNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance Boost
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates Everywhere
 
Introduction To NetBeans IDE
Introduction To NetBeans IDEIntroduction To NetBeans IDE
Introduction To NetBeans IDE
 
BP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
BP204 It's Not Infernal: Dante's Nine Circles of XPages HeavenBP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
BP204 It's Not Infernal: Dante's Nine Circles of XPages Heaven
 
Eclipse Vs Netbeans
Eclipse Vs NetbeansEclipse Vs Netbeans
Eclipse Vs Netbeans
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
 
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
Lotusphere 2012 - AD115 - Extending IBM Lotus Notes & IBM Lotus iNotes With O...
 

Viewers also liked

Ec13 xpages-basic
Ec13 xpages-basicEc13 xpages-basic
Ec13 xpages-basic
Ulrich Krause
 
La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
Ulrich Krause
 
XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
Ulrich Krause
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
Ulrich Krause
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPages
Ulrich Krause
 
Dnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicDnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basic
Ulrich Krause
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
Ulrich Krause
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
Ulrich Krause
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesUlrich Krause
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)
Ulrich Krause
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
Ulrich Krause
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
Ulrich Krause
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
Ulrich Krause
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
Ulrich Krause
 

Viewers also liked (14)

Ec13 xpages-basic
Ec13 xpages-basicEc13 xpages-basic
Ec13 xpages-basic
 
La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!La vita nella corsia di sorpasso; A tutta velocità, XPages!
La vita nella corsia di sorpasso; A tutta velocità, XPages!
 
XPages - The Basics
XPages - The BasicsXPages - The Basics
XPages - The Basics
 
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware PlatformIBM Lotus Notes - From PLATO to the Leading Groupware Platform
IBM Lotus Notes - From PLATO to the Leading Groupware Platform
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPages
 
Dnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basicDnug35 ak-dev.071111-basic
Dnug35 ak-dev.071111-basic
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
 
Life in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPagesLife in the fast lane. Full speed XPages
Life in the fast lane. Full speed XPages
 
Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)Compact, Compress, De-Duplicate (DAOS)
Compact, Compress, De-Duplicate (DAOS)
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011DNUG ak-anwendungsentwicklung.18042011
DNUG ak-anwendungsentwicklung.18042011
 

Similar to Dr. Strangelove, or how I learned to love plugin development

Eclipse IDE
Eclipse IDEEclipse IDE
Eclipse IDE
Anirban Majumdar
 
What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
Pascal Rapicault
 
Bluemix and DevOps workshop lab
Bluemix and DevOps workshop labBluemix and DevOps workshop lab
Bluemix and DevOps workshop lab
benm4nn
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development
Pei-Hsuan Hsieh
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
Paul Withers
 
Simplifying RCP Update and Install
Simplifying RCP Update and InstallSimplifying RCP Update and Install
Simplifying RCP Update and Install
susanfmccourt
 
Lecture 1 dev_environment
Lecture 1 dev_environmentLecture 1 dev_environment
Lecture 1 dev_environment
moduledesign
 
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...Ryan Baxter
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
Thomas Daly
 
Eclipse
EclipseEclipse
Eclipse
Nicola Pedot
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Kalkey
 
iPhone application development training day 1
iPhone application development training day 1iPhone application development training day 1
iPhone application development training day 1Shyamala Prayaga
 
Lecture 1 dev_environment
Lecture 1 dev_environmentLecture 1 dev_environment
Lecture 1 dev_environment
moduledesign
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And Tricks
Chris Aniszczyk
 
Extend The Power Platform with Custom Connectors - CollabDays NL 2022
Extend The Power Platform with Custom Connectors - CollabDays NL 2022Extend The Power Platform with Custom Connectors - CollabDays NL 2022
Extend The Power Platform with Custom Connectors - CollabDays NL 2022
Daniel Laskewitz
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
Lars Vogel
 
NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!
René Winkelmeyer
 
Spring hibernate tutorial
Spring hibernate tutorialSpring hibernate tutorial
Spring hibernate tutorial
Rohit Jagtap
 
Microservices in Java
Microservices in JavaMicroservices in Java
Microservices in Java
Anatole Tresch
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019
Thomas Daly
 

Similar to Dr. Strangelove, or how I learned to love plugin development (20)

Eclipse IDE
Eclipse IDEEclipse IDE
Eclipse IDE
 
What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
 
Bluemix and DevOps workshop lab
Bluemix and DevOps workshop labBluemix and DevOps workshop lab
Bluemix and DevOps workshop lab
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
Simplifying RCP Update and Install
Simplifying RCP Update and InstallSimplifying RCP Update and Install
Simplifying RCP Update and Install
 
Lecture 1 dev_environment
Lecture 1 dev_environmentLecture 1 dev_environment
Lecture 1 dev_environment
 
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
Eclipse
EclipseEclipse
Eclipse
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
iPhone application development training day 1
iPhone application development training day 1iPhone application development training day 1
iPhone application development training day 1
 
Lecture 1 dev_environment
Lecture 1 dev_environmentLecture 1 dev_environment
Lecture 1 dev_environment
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And Tricks
 
Extend The Power Platform with Custom Connectors - CollabDays NL 2022
Extend The Power Platform with Custom Connectors - CollabDays NL 2022Extend The Power Platform with Custom Connectors - CollabDays NL 2022
Extend The Power Platform with Custom Connectors - CollabDays NL 2022
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!
 
Spring hibernate tutorial
Spring hibernate tutorialSpring hibernate tutorial
Spring hibernate tutorial
 
Microservices in Java
Microservices in JavaMicroservices in Java
Microservices in Java
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019
 

More from Ulrich Krause

What is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.xWhat is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.x
Ulrich Krause
 
When Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus NotesWhen Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus Notes
Ulrich Krause
 
EntwicklerCamp CGS
EntwicklerCamp CGSEntwicklerCamp CGS
EntwicklerCamp CGS
Ulrich Krause
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
Ulrich Krause
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code Cookbook
Ulrich Krause
 
AdminCamp2010, Closing General Session
AdminCamp2010, Closing General SessionAdminCamp2010, Closing General Session
AdminCamp2010, Closing General Session
Ulrich Krause
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1
Ulrich Krause
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
Ulrich Krause
 
Daos
DaosDaos
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
 

More from Ulrich Krause (11)

What is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.xWhat is new in Notes & Domino Deleopment V10.x
What is new in Notes & Domino Deleopment V10.x
 
When Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus NotesWhen Plato Left The Cave - A brief history of Lotus Notes
When Plato Left The Cave - A brief history of Lotus Notes
 
EntwicklerCamp CGS
EntwicklerCamp CGSEntwicklerCamp CGS
EntwicklerCamp CGS
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code Cookbook
 
Ccd
CcdCcd
Ccd
 
AdminCamp2010, Closing General Session
AdminCamp2010, Closing General SessionAdminCamp2010, Closing General Session
AdminCamp2010, Closing General Session
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1
 
Compact, Compress, De-DUplicate
Compact, Compress, De-DUplicateCompact, Compress, De-DUplicate
Compact, Compress, De-DUplicate
 
Daos
DaosDaos
Daos
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 

Dr. Strangelove, or how I learned to love plugin development

  • 1. How I Learned To Stop Worrying And Love Plugin Development Ulrich Krause, London, UK, September 12, 2014
  • 2. ICON UK 2014 – Plugin Development About: Ulrich Krause Administrator /Developer since 1993 Senior Software Architect at BCC Blog http://www.eknori.de IBM Champion 2011/2012/2013/2014
  • 3. ICON UK 2014 – Plugin Development Agenda Types of Plugins What‘s All The Parts Needed ? Setup The Development Environment Run / Debug Configuration Build a simple Menue extension Build a Sidebar Plug-In Working with existing code Extension Points Deploy Plug-Ins Plug-In Security
  • 4. ICON UK 2014 – Plugin Development It‘s only one way of doing it … And I know there's a few to demonstrate the theory
  • 5. ICON UK 2014 – Plugin Development No animals were harmed * during the making of this presentation ! * That part comes, when you download the slides from http://slideshare.net
  • 6. ICON UK 2014 – Plugin Development Types of Plug-Ins Adding new items to a menue bar or a context menue Display data in the Sidebar •Ralf Petter: Document Spy: Admins little helper http://www.everythingaboutit.eu/2014/08/document-spy-admins-little- helper.html Execute code when the client starts, after the user has logged in or when the client has shut down. •Karsten Lehmann: Mindoo Xulrunner Prefs.js Management Plugin http://www.openntf.org/main.nsf/project.xsp?r=project/Mindoo%20Xulrunner%20Prefs.js%20Management%20Plugin/summary
  • 7. ICON UK 2014 – Plugin Development Download, Install, Configure
  • 8. ICON UK 2014 – Plugin Development Download Eclipse SDK https://www.eclipse.org/downloads/packages/release/ganymede/sr2
  • 9. ICON UK 2014 – Plugin Development Download Expeditor Toolkit IBM Lotus Expeditor Toolkit provides a complete, integrated set of tools that allows you to develop, debug, test, package, and deploy client applications to IBM Lotus Expeditor V6.2, IBM Lotus Symphony V1.2, and IBM Lotus Notes V8.5+ http://www14.software.ibm.com/webapp/download/nochargesearch.jsp?q=Lotus+Expeditor+Toolkit+6.2
  • 10. ICON UK 2014 – Plugin Development Unpack Eclipse and Expeditor
  • 11. ICON UK 2014 – Plugin Development Install Eclipse Decompress into the directory of your choice It is strongly recommended to configure Eclipse with the specific JVM that you want Set the workspace http://wiki.eclipse.org/Eclipse/Installation#Configure_Eclipse_to_use_the_JVM
  • 12. ICON UK 2014 – Plugin Development Install Lotus Expeditor Toolkit in Eclipse
  • 13. ICON UK 2014 – Plugin Development Configure Expeditor Toolkit Configure Test Environment
  • 14. ICON UK 2014 – Plugin Development Configure Expeditor Toolkit Set Target Location •<ClientInstall>  framework  rcp  eclipse
  • 15. ICON UK 2014 – Plugin Development Configure Expeditor Toolkit VM Name & Compiler Compliance Level is set automatically. Leave as is …
  • 16. ICON UK 2014 – Plugin Development Configure Eclipse SDK Open „Plug-in Development“ perspective
  • 17. ICON UK 2014 – Plugin Development Configure Eclipse SDK Create Run Configuration(s)
  • 18. ICON UK 2014 – Plugin Development Create RunConfiguration / Main
  • 19. ICON UK 2014 – Plugin Development Create RunConfiguration / Select Plugins
  • 20. ICON UK 2014 – Plugin Development Build Your First Plugin
  • 21. ICON UK 2014 – Plugin Development Create A Simple Menue Plugin Add a new menue Add a new menue entry Display a message
  • 22. ICON UK 2014 – Plugin Development Create A New Plug-In Project Alt + Shift + n
  • 23. ICON UK 2014 – Plugin Development Plug-In Basic Configuration Give your Plug-In a name Set the Provider Check „Generate an activator …“
  • 24. ICON UK 2014 – Plugin Development Create From Template Select a template
  • 25. ICON UK 2014 – Plugin Development Your Workspace Should Look Like This
  • 26. ICON UK 2014 – Plugin Development Anatomy of a plugin The plugin.xml contains meta- information for Eclipse, and contains the extension points declared/used by this plug-in The MANIFEST.MF is a standard Jar manifest, but contains meta- information used by Equinox, which is Eclipse's internal OSGi engine. Although there are specific entries in here for Eclipse (such as Eclipse- LazyStart ) the majority of entries here are standard OSGi
  • 27. ICON UK 2014 – Plugin Development Anatomy of a plugin The Activator is run when your plug- in starts, and before any other code that's defined in your bundle is used. You can use this to initialise data structures, start listening to network sockets etc. It's also got a call when Eclipse shuts down Last (but not least), the SampleHandler , which just prints out "Hello, ConnectSCOTT" when you click on the little blue Eclipse icon in the toolbar.
  • 28. ICON UK 2014 – Plugin Development Source Code (SampleHandler.java)
  • 29. ICON UK 2014 – Plugin Development Create A New Run Configuration
  • 30. ICON UK 2014 – Plugin Development Create A New Run Configuration
  • 31. ICON UK 2014 – Plugin Development Assign Plug-ins to Launch Configuration
  • 32. ICON UK 2014 – Plugin Development Run / Launch Plug-In
  • 33. ICON UK 2014 – Plugin Development Debug Plug-In Code
  • 34. ICON UK 2014 – Plugin Development Create A Sidebar Plug-In
  • 35. ICON UK 2014 – Plugin Development Create a SideBar Plugin Simple Sidebar Plug-In for text snippets Content can be •loaded from file •saved to file Content is persistent between sessions
  • 36. ICON UK 2014 – Plugin Development Create A Sidebar Plugin (cont) Create a new Plug-In Project •File  New  Plug-In Project •Type in Project Name
  • 37. ICON UK 2014 – Plugin Development Create A Sidebar Plugin (cont) Check „Generate An Activator“ Leave Defaults or set it to a name of your choice. Depaends on how you organize your code Click NEXT to use a wizard, or FINISH to go do the heavy lifting on your own
  • 38. ICON UK 2014 – Plugin Development Create A Sidebar Plugin (cont) Your project will look similar to the screenshot; Extension section is empty
  • 39. ICON UK 2014 – Plugin Development Create A Sidebar Plugin (cont) Add Extension Points
  • 40. ICON UK 2014 – Plugin Development Create A Sidebar Plugin (cont) Add category and view to the „org.eclipse.ui.views“ extension Repeat steps for all other extensions •com.ibm.rcp.ui.shelfViews •org.eclipse.ui.viewActions
  • 41. ICON UK 2014 – Plugin Development Create A Sidebar Plugin (cont) Set the properties
  • 42. ICON UK 2014 – Plugin Development Create A Sidebar Plugin (cont) Write Java code
  • 43. ICON UK 2014 – Plugin Development Working With Existing Projects
  • 44. ICON UK 2014 – Plugin Development Working with existing projects
  • 45. ICON UK 2014 – Plugin Development Import into Eclipse Workspace
  • 46. ICON UK 2014 – Plugin Development Plugin imported, but … ERRORS  1.Go to the Build Path settings in the project properties. 2.Remove the JRE System Library 3.Add it back; Select "Add Library" and select the JRE System Library.
  • 47. ICON UK 2014 – Plugin Development Extension Points
  • 48. ICON UK 2014 – Plugin Development Understanding Extension Points http://www.eclipsezone.com/eclipse/forums/t93753.html?start=0
  • 49. ICON UK 2014 – Plugin Development Extension Point Description Select the extension point in the Extensions section of the manifest and click „Show extension point description“ . This will open a new tab with all the information about the extension point
  • 50. ICON UK 2014 – Plugin Development Plug-In Provisioning
  • 51. ICON UK 2014 – Plugin Development Plug-In Provisioning Prerequisites Before we can install / deploy our plugin, we have to do some additional work •Create Feature Project •Create Update Site Project •Build Update Site content
  • 52. ICON UK 2014 – Plugin Development Create a new feature project An Eclipse feature project contains features. A feature describes a list of plug-ins and other features which can be understood as a logical unit. It also has a name, version number and license information assigned to it. A feature is described via a feature.xml file File  New  Feature Project
  • 53. ICON UK 2014 – Plugin Development Create a new feature project Give your project a name Change other values to your needs
  • 54. ICON UK 2014 – Plugin Development Create a new feature project Select the plug-in(s) from the list. You can type in the name to easily navigate to the plug-in. Click Finish and Eclipse will create the feature project.
  • 55. ICON UK 2014 – Plugin Development Create a new feature project If you are using Working Sets, you will not see the feature project Edit the current Working Set and add the feature project
  • 56. ICON UK 2014 – Plugin Development Your Workspace Should Look Like This
  • 57. ICON UK 2014 – Plugin Development Create Update Site Project The Update Site contains feature and plug-in versions for Eclipse project releases.
  • 58. ICON UK 2014 – Plugin Development Create Update Site Project Give your project a name
  • 59. ICON UK 2014 – Plugin Development Create Update Site Project Add feature(s)
  • 60. ICON UK 2014 – Plugin Development Create Update Site Project Build the content
  • 61. ICON UK 2014 – Plugin Development Deploying Plugins Let the user deploy the plugin Deploy during client installation Deploy plugin via Widget Catalog and Desktop Policy
  • 62. ICON UK 2014 – Plugin Development Option 1: Let the user install the plugin
  • 63. ICON UK 2014 – Plugin Development Option 1: Let the user install the plugin „Install“ not enabled by default. •customize plugin-customization.ini on client •add com.ibm.notes.branding/enable.update.ui=true Disabled by Desktop Policy
  • 64. ICON UK 2014 – Plugin Development Option 1: Let the user install the plugin
  • 65. ICON UK 2014 – Plugin Development Option 2: Deploy during client installation Customizing Notes install for features and plug-ins on Windows and Mac * *
  • 66. ICON UK 2014 – Plugin Development Option 2: Deploy during client installation
  • 67. ICON UK 2014 – Plugin Development Option 3: Widget Catalog and Desktop Policy
  • 68. ICON UK 2014 – Plugin Development Create Update Site Database If you do not already have an „Update Site“ Create a new Update Site •File  Application  new •Check „Show advanced templates •Select „Eclipse Update Site“
  • 69. ICON UK 2014 – Plugin Development Import Local UpdateSite into Database
  • 70. ICON UK 2014 – Plugin Development Install In Sidebar Get URL of the plug-in
  • 71. ICON UK 2014 – Plugin Development Install In Sidebar Tools  Widgets  Getting Started with Widgets  Features and Plugins Paste the URL Click „Load“ Check Feature to install Optionally provide an image url
  • 72. ICON UK 2014 – Plugin Development Confirm Installation Select „Install plug-in“; Click „OK“ The plug-in will be installed; Then restart the client
  • 73. ICON UK 2014 – Plugin Development Publish To Catalog http://www- 01.ibm.com/support/knowledgecenter/SSKTMJ_8.0.1/com.ibm.help.domino.admin.doc/ DOC/H_CREATE_EXTENSION_XML_STEPS.html?cp=SSKTMJ_8.0.1%2F1-3-9-2-3
  • 74. ICON UK 2014 – Plugin Development Create Desktop Policy
  • 75. ICON UK 2014 – Plugin Development Configure Client Preferences Select the catagory of widgets that should be installed on the client
  • 76. ICON UK 2014 – Plugin Development Option 3: Widget Catalog and Desktop Policy
  • 77. ICON UK 2014 – Plugin Development Sign Plugins End-to-End HOWTO guide for silently and transparently provisioning and installing Java extensions to Notes 8.5.1+ clients using policies (Mikkel Heisterberg) •http://lekkimworld.com/files/nllug/2009/demoscript_english_031120091142.pdf EntwicklerCamp 2011 - Signierung & Verteilung von Plugins für den Notes Client (René Winkelmeyer) •Link
  • 79.
  • 80. ICON UK 2014 – Plugin Development OpenNTF Phonebook sidebar plugin http://www.openntf.org/main.nsf/project.xsp?r=project/Phonebook%20sidebar%20plugin/summary