Dev10. Eclipse Plug-ins in Notes 101, and then some Teresa Deane, BCC Dev10. Eclipse Plug-ins in Notes 101, and then some Teresa Deane, BCC Date – March 23, 2016 #engageug
Introduction Veteran of Lotus, Iris, Groove, Microsoft, Teamstudio Currently at BCC Last spoke at LotuSphere 2000 Expertise: Notes C++ API IBM Notes application development (forms and views) #engageug
Introduction to Plug-ins Terminology: Plug-ins, Features, Widgets Functionality: What can you do with Plug-ins? Developer Topics Development Tools: Eclipse Source Code: MANIFEST.MF, plugin.xml, Activator.java, feature.xml, internationalization Administration Topics Deployment: Security (Policies), Widget Catalog, Site Database, Third Party #engageug
Goals Introduce the concept of IBM Notes Plug-ins Demonstrate the Necessary Tools Create a Simple Plug-in Dissect the Files Discuss deployment options Resource List #engageug
What is a Plug-in? Manipulates the look and feel of Notes Add Toolbars, Menus and Actions #engageug
Why a Plug-in? Written in Java Plenty of useful classes Reusable Object oriented Platform independent Call Native (DLL) files using JNI (Java Native Interface) Use the Lotus Notes API #engageug
What is a Widget? Tool that can consist of one or more components Provides functions to provision items to client systems App like component which delivers web like content based on user or application input Can be used for a stand-alone feature by calling a feature update site to initially deploy or later provision updates to a client plug-in. #engageug
What is a Feature? Functionality that alters the look and feel of Notes Packages plug-ins for deployment Describes the plug-ins used Provides for versioning and licensing #engageug
Example Plug-ins Lotus Learn IBM Connections openntf #engageug
What do I need to begin? Eclipse Platform for rapid development of integrated features based on a plug-in model Eclipse for RCP/RAP Developers – Luna version https://eclipse.org/downloads/ #engageug
Perspectives #engageug
How to Run Notes from Eclipse Setup the correct JVM #engageug
How to Run Notes from Eclipse Version of Notes that you are developing for must be installed Run – Run Configurations… #engageug
Eclipse Setup – Arguments tab #engageug
Arguments – Variables – Edit variables #engageug
Arguments - Configuration #engageug
Plug-ins tab #engageug
MANIFEST.MF Contains Dependencies and Services of a plug-in #engageug
Plugin.xml Contains Extension Points #engageug
Translating Plug-in Strings Source – Externalize Strings… #engageug
Translating Plug-in Strings Creates messages.properties file SampleHandler_0=Helloworld Create additional files messages_de.properties with translated strings Adds messages.java file which contains a resource bundle accessor class to initialize and retrieve messages Properties files must have ISO-8859-1 encoding #engageug
Demo Application Live presentation of building and running demo application #engageug
Deployment #engageug
Plug-in Security Desktop Setting Policy – Basics – Provisioning – Allow user initiated updates – Enable to turn off menu items in Notes #engageug
Plug-in Security (cont’d) Security Setting Policy – Signed Plug-ins #engageug
Plug-in Security (cont’d) Desktop Setting Policy – Widgets #engageug
Deployment Steps Place the feature's valid Eclipse update site, containing the signed features and plugins, in a central location Install or upgrade the server and client, create the widgets catalog, and set widgets policy or preferences Create an NSF-based update site and import the Eclipse update site Create the extension.xml that the widget will use to call the feature's update site #engageug
Deployment steps (cont’d) Sample extension.xml Explains what features are contained and where to find them #engageug
Deployment steps (cont’d) Display the Widgets sidebar and verify or set catalog access Create the widget in the widgets catalog and attach its extension.xml file to call the update site Test the widget by dragging it from the catalog view to your My Widgets sidebar Communicate to users how to obtain the widget or inform them that they will be automatically provisioned with the widget and its feature #engageug
Deployment Update site template (ntf) External update site (http) Use this template to create an NSF-based update site to act as an Eclipse update site hosted in a Notes application External update site (http) #engageug
Other Deployment Methods MSI Installer Third party tools (BCC ClientGenie) #engageug
Resource List Eclipse.org IBM Redbook Tutorials Specific to Notes Internationalizing your plug-in Using JNI(Java Native Interface) to call C++ code Eclipse Notes Setup #engageug
Contact Teresa_deane@bcc.biz twitter: @teresa_deane www.bcchub.com Come see me at the BCC booth #engageug