Dev10. Eclipse Plug-ins in Notes 101, and then some Teresa Deane

Download Report

Transcript Dev10. Eclipse Plug-ins in Notes 101, and then some Teresa Deane

Dev10. Eclipse Plug-ins in
Notes 101, and then some
Teresa Deane, BCC
#engageug
Date – March 23, 2016
1
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
2
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
3
Goals
•
•
•
•
•
•
#engageug
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
4
What is a Plug-in?
• Manipulates the look and feel of Notes
• Add Toolbars, Menus and Actions
#engageug
5
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
6
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
7
What is a Feature?
•
•
•
•
#engageug
Functionality that alters the look and feel of Notes
Packages plug-ins for deployment
Describes the plug-ins used
Provides for versioning and licensing
8
Example Plug-ins
• Lotus Learn
• IBM Connections
• openntf
#engageug
9
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
10
Perspectives
#engageug
11
How to Run Notes from Eclipse
• Setup the correct JVM
#engageug
12
How to Run Notes from Eclipse
• Version of Notes that you are developing for must be
installed
• Run – Run Configurations…
#engageug
13
Eclipse Setup – Arguments tab
#engageug
14
Arguments – Variables – Edit variables
#engageug
15
Arguments - Configuration
#engageug
16
Plug-ins tab
#engageug
17
MANIFEST.MF
• Contains Dependencies and Services of a plug-in
#engageug
18
Plugin.xml
• Contains Extension Points
#engageug
19
Translating Plug-in Strings
• Source – Externalize Strings…
#engageug
20
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
21
Demo Application
• Live presentation of building and running demo application
#engageug
22
Deployment
#engageug
23
Plug-in Security
• Desktop Setting Policy – Basics – Provisioning – Allow
user initiated updates – Enable to turn off menu items in
Notes
#engageug
24
Plug-in Security (cont’d)
• Security Setting Policy – Signed Plug-ins
#engageug
25
Plug-in Security (cont’d)
• Desktop Setting Policy – Widgets
#engageug
26
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
27
Deployment steps (cont’d)
• Sample extension.xml
• Explains what features are contained and where to find them
#engageug
28
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
29
Deployment
• Update site template (ntf)
• 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
30
Other Deployment Methods
• MSI Installer
• Third party tools (BCC ClientGenie)
#engageug
31
Resource List
•
•
•
•
•
•
#engageug
Eclipse.org
IBM Redbook
Tutorials Specific to Notes
Internationalizing your plug-in
Using JNI(Java Native Interface) to call C++ code
Eclipse Notes Setup
32
Contact
•
•
•
•
#engageug
[email protected]
twitter: @teresa_deane
www.bcchub.com
Come see me at the BCC booth
33