Eclipse Tips & Tricks for the IBM Notes 9.x Client
ISBG vårseminar – May 2014
2
Hello!
3
Christoph Adler
Technical Account Manager – panagenda
IBM Lotus Notes / Domino since 2001
Consulting for projects
Administration
Migration / Consolidation
Client Management
Application Management
Since 2012 TAM at panagenda with core competence in
Notes Client Management
Domino Infrastructure Analysis and Optimizations
[...]
Frequent traveler
Projects with many different companies in different
countries
4
5
Agenda
• History of Eclipse
• Eclipse today (in IBM Notes)
• Eclipse preferences
• A very special Eclipse plugin - suprise
• Widgets
• Some useful Eclipse preferences
• Q & A
6
History of Eclipse
7
Eclipse? What is Eclipse?
Eclipse began life as an IBM project to replace the VisualAge® IDE
VisualAge had compilers for C, C++, Smalltalk, Java, Cobol, and several other languages
Eclipse developed as a platform (written in Java) that could
run on multiple operating systems
allow development for many different languages & content types
provide (but not require) a GUI
use plugins for extensibility
“The Eclipse platform itself is a sort of universal tool platform - it is an IDE
for anything and nothing in particular.”http://www.eclipse.org/platform/overview.php
8
A Very Abbreviated Timeline
1999: Development of Eclipse begins at IBM
2001: Eclipse 1.0 released, eclipse.org created
2002: Eclipse 2.0 released WSAD
2004: Eclipse Foundation formed, Eclipse 3.0 released under the new Eclipse
Public License
2004 – 2013: New Eclipse “simultaneous release” every year
3.x through 2011
4.x starting 2012
Current version 4.3.2 (project ‘Kepler‘)
9
Also in 1999 ...
Lotus Notes R5 was released
10
Only 8 years after ...
IBM Lotus Notes 8 Standard (Eclipse) was released
11
IBM Lotus Notes 8.x
“Lotus Notes 8 is a major upgrade to Lotus Notes with a
new user look and feel. The client is now built on an open
standards Eclipse-based architecture that allows for
greater Flexibility”
Andy Higgins, Technical Sales Specialist,
IBM - What's new in IBM Lotus Notes 8.5
12
Do you remember ?
13
IBM (Lotus) Notes with Eclipse
08 / 2007: IBM Lotus Notes 8.0
02 / 2008: IBM Lotus Notes 8.0.1
08 / 2008: IBM Lotus Notes 8.0.2
12 / 2008: IBM Lotus Notes 8.5
10 / 2009: IBM Lotus Notes 8.5.1
08 / 2010: IBM Lotus Notes 8.5.2
11 / 2011: IBM Lotus Notes 8.5.3
03 / 2013: IBM Notes 9.0
12 / 2013: IBM Notes 9.0.1
Almost 7 years IBM Notes
with Eclipse
EOM - Lotus Notes 7 04 / 2011
14
Eclipse today (in IBM Notes)
15
IBM Notes 9.0.1 Social Edition
16
Your Notes Client: Version 9.0.1
> 20.000 41.000 files (Notes 6/7 | 8/9 Basic used to have ~550) = +7.400%
17.000 21.800 files in Notes Program\framework in 1,800 2.150 subdirectories
7.500 8.800 (largely undocumented) .properties files
1.500 1.600 jar files
1.200 1.300 HTML files
3.000 1.182 files in Notes Data\workspace in 2.400 subdiretcories, out of which 1.850 are empty
700 subdirectories
900 180 (largely undocumented) XML files
100+ 80 (largely undocumented) .properties files
Which is:
20.000 41.000 files in 4.600 4.860 subdirectories
8.500+ 9.000+ largely undocumented files
Many (many many) subdirectories are plain empty, especially in Data\workspace
... and around 100 NSFs/NTFs (=0,5 0,2 %)
... And the good old notes.ini file ...
17
Your Notes Client: Version 9.0.1
> Add over 80 preference/dialog boxes
Each dialog has ~about settings at average
> Add over 80 preference/dialog boxes
Address book (very few)
Notes.ini (few)
And XML/.propertie files (lots)
> PLUS
Any plugins, widgets, add-ons, etc. ‘you‘ or the user
may have added to the Notes client install
18
Your Notes Client: Version 9.0.1
19
Eclipse preferences
20
Where you can find/set Eclipse preferences?
Some facts about the plugin
Feature.xml
Data\workspace\applications\eclipse\features\com.panagenda.mc.logviewer.feature_1.0.8\feature.xml
JAR
Data\workspace\applications\eclipse\plugins\com.panagenda.mc.logviewer_1.0.8.jar
Settings / working dir
Data\workspace\.metadata\.plugins\com.panagenda.mc.logviewer
What to do?
File Data\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.ibm.rcp.ui.prefs
Parameter HIDE_PANEL_com.panagenda.mc.logviewer.views.SidebarView=true
Attention
Eclipse preferences could be „case SENSITIVE“
Example: Hide the “MC LogViewer” plugin sidebar
21
Live
22
Where you can find/set Eclipse preferences?
The manual way (UI)
The manual way (files)
NOT possible if the Notes client is started
Trigger ?
Effort !
Other possibilties
Domino Policies Managed Settings
Plugin_customization.ini ?Managed? Settings
Third Party Tool(s)
Example: Hide the “MC LogViewer” plugin sidebar
23
Domino Policies
Policies / Desktop
Managed Settings
24
Plugin_customization.ini
NotesProgramDir\framework\rcp\plugin_customization.ini
com.ibm.rcp.managedsettings.provider.file/URL=file://c:/ibm/notes/data/deploy/managed-settings.xml
?Managed? Settings
25
Third Party Tool(s) ...
...are available
26
Don‘t ever (ever!!!) delete Data\workspace
Eclipse logging
Notes\Data\workspace\logs
Error-log-n.xml
All Java error messages (System.err), stack traces und log messages (Level CONFIG oder higher)
Trace-log-n.xml
All Error-log messages PLUS all active plugin messages
Loglevel Plugin Data\Workspace\.config\rcpinstall.properties
Log_Viewer.xml
Trace_Viewer.xml
Viewer_Translations.js
Shutdown.log
RCPLauncher.log
Default the latest 5 Error-log-n.xml + 10 Trace-log-n.xml are available
com.ibm.rcp.core.internal.logger.boot.RCPTraceHandler.count=10
com.ibm.rcp.core.internal.logger.boot.RCPLogHandler.count=6
27
A very special Eclipse plugin
28
Before we start, here is a good message for you ...
Visit my colleague Dominik at our booth to get the plugin for free :-)
29
panagenda PreferenceTree plugin
How it began …
Chris is telling you a story
30
panagenda PreferenceTree Plugin
! ! ! Thank you Julian Robichaux ! ! !
31
panagenda PreferenceTree Plugin
32
Live
33
What is a Widget?
Widget
My Widgets
Page references
Google Gadgets
Notes views
Live Text
[...]
Plugins
34
Widget deployment
Manual way
ProgramDIR\framework\rcp\plugin_customization.ini
com.ibm.notes.branding/enable.update.ui=true
Not working? Try this ...
Data\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.ibm.notes.branding.prefs
enable.update.ui=true
35
Widget deployment
WidgetCatalog
Managed Settings
36
My favorite Widgets
Preference Tree
MC LogViewer
FileExplorer http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/File%20Explorer
IBM Connections
IBM Sametime
MailMonitor http://www.openntf.org/projects/pmt.nsf/ProjectLookup/MailMonitor
Snippets http://www.openntf.org/projects/pmt.nsf/ProjectLookup/Snippets
Google Translator http://www.google.com/ig/directory?synd=open&q=google+translate
Recon Sidebar http://www.nsftools.com/recon.updatesite/
Wildfire http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/WildFire
[...]
37
Some useful Eclipse preferences
38
Open List / Sidebar
(Un)Dock the Open list
/instance/com.ibm.rcp.ui/DOCKED_LAUNCHER1=docked; 0=undocked
Make Sidebar entries (in)visible – (false = visible, true = invisible)
Sametime Contacts/instance/com.ibm.rcp.ui/HIDE_PANEL_com.ibm.collaboration.realtime.imhub.shelfView
Sametime Primary Contacts/instance/com.ibm.rcp.ui/HIDE_PANEL_com.ibm.collaboration.realtime.filteredbuddies.shelfview
Sametime Meetings/instance/com.ibm.rcp.ui/HIDE_PANEL_com.ibm.rtc.meetings.shelf.ui.MeetingsShelf.shelfview
Day-At-A-Glance/instance/com.ibm.rcp.ui/HIDE_PANEL_com.ibm.workplace.ui.sidecalendar.views.SideCalendarViewPart
Feeds/instance/com.ibm.rcp.ui/HIDE_PANEL_com.ibm.rcp.feedreader.notes.ui.shelf
My Widgets/instance/com.ibm.rcp.ui/HIDE_PANEL_com.ibm.rcp.toolbox.WebFragmentPallete
39
Shortcut Buttons
Make Shortcut Buttons (in)visible – (true = visible, false = invisible)
/instance/com.ibm.rcp.ui/100
Calendar
instance/com.ibm.rcp.ui/101
Contacts
/instance/com.ibm.rcp.ui/102
Home
/instance/com.ibm.rcp.ui/com.ibm.workplace.noteswc.views.NotesHomepage
Workspace
/instance/com.ibm.rcp.ui/com.ibm.notes.client.workspaceshortcut
Discover
/instance/com.ibm.rcp.ui/com.ibm.notes.client.discoverpageshortcut
Thumbnails
/instance/com.ibm.rcp.ui/SHOW_THUMBNAILS_BUTTON
40
Toolbars
Show Toolbars NOT Only When Editing
/instance/com.ibm.notes.client.toolbars/TOGGLE_EDITING_TOOLBAR_ENABLEMENT = false
/instance/com.ibm.rcp.ui/DISABLE_TOOLBAR_CONTEXT_ITEMS = false
/instance/com.ibm.rcp.ui/TOOL_BAR_VISIBLE = true
41
Sametime Meeting Room - Server
Only one Server (example)
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.serverId = stms1354024510799
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.serverName = st1.notes8test.com
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;communityServerName = st1.notes8test.com
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.serverPort = 80
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;useCommunityServer = true
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;useCustomCredentials = false
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;serverConnectionType = 0
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.useSSLforLogin = false
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.http = stms1354024510799
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;useHttpProxy = false
/instance/com.ibm.rtc.meetings.shelf/MeetingServerIds = stms1354024510799
/instance/com.ibm.rtc.meetings.shelf/LastActiveServer = stms1354024510799
Use a unique ID stms1354024510799
42
Sametime Meeting Room – Server
More than one Server (example) /instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.serverId = stms1354024510799
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.serverName = st1.meeting.com
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;communityServerName = st1.meeting.com
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.serverPort = 80
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;useCommunityServer = true
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;useCustomCredentials = false
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;serverConnectionType = 0
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.useSSLforLogin = false
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;meetings.http = stms1354024510799
/instance/com.ibm.rtc.meetings.shelf/stms1354024510799;useHttpProxy = false
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;meetings.serverId = stms1354024543658
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;meetings.serverName = st2.meeting.com
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;communityServerName = st2. meeting.com
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;meetings.serverPort = 80
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;useCommunityServer = true
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;useCustomCredentials = false
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;serverConnectionType = 0
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;meetings.useSSLforLogin = false
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;meetings.http = stms1354024543658
/instance/com.ibm.rtc.meetings.shelf/stms1354024543658;useHttpProxy = false
/instance/com.ibm.rtc.meetings.shelf/MeetingServerIds = stms1354024510799; stms1354024543658
/instance/com.ibm.rtc.meetings.shelf/LastActiveServer = stms1354024510799
43
Feeds
/instance/com.ibm.rcp.feedreader.providers/ui.prefpage.content.update.schedule ONE_MIN
TEN_MIN
THIRTY_MIN
ONE_HOUR
TWO_HOURS
FOUR_HOURS
EIGHT_HOURS
DAILY
WEEKLY
MANUAL
/instance/com.ibm.rcp.feedreader.providers/ui.prefpage.content.age ONE_DAY
ONE_WEEK
TWO_WEEKS
ONE_MONTH
TWO_MONTHS
FOREVER
44
Feeds (2)
/instance/com.ibm.rcp.feedreader.providers/ui.prefpage.display.previewwindowtrue=checked; false=unchecked
„Mark items viewed …“ grays out with show feed disabled!
/instance/com.ibm.rcp.feedreader.providers/ui.prefpage.display.previewwindow.markasreadtrue=checked; false=unchecked
/instance/com.ibm.rcp.feedreader.providers/ui.prefpage.display.previewwindow.heightnumber >= 200 <= 300
/instance/com.ibm.rcp.feedreader.providers/ui.prefpage.display.previewwindow.widthnumber >= 300 <= 500
/instance/com.ibm.rcp.feedreader.providers/display.addpresets.actiontrue=checked; false=unchecked
45
Fonts
Font size
Normal
/instance/com.ibm.notes.client/pref.font.size=null
/instance/com.ibm.rcp.ui/FONT_SIZE=null
Large
/instance/com.ibm.notes.client/pref.font.size=11
/instance/com.ibm.rcp.ui/FONT_SIZE=1
Extra Large
/instance/com.ibm.notes.client/pref.font.size=13
/instance/com.ibm.rcp.ui/FONT_SIZE=2
Mail view font/instance/com.ibm.notes.client/pref.font.size=n<=20>=8
/instance/com.ibm.notes.client/pref.font.size=null=default
/instance/com.ibm.notes.client/pref.font.family=Font Name
/instance/com.ibm.notes.client/pref.unread.mail.font=null (=bold); normal (=not bold)
/instance/com.ibm.notes.client/pref.read.mail.font=null (=not bold); bold (=bold)
46
Fonts (2)
Colors - (we suggest NOT to touch this one unless you really know what you are doing) /instance/com.ibm.notes.client/MAIL_USER_STYLES; from mailtable>row>read{color: rgb(99,101,99);font-style: normal;font-size: 9pt;}##mailtable>row>read{font-family:
Arial,Arial,Sans Serif;}##mailtable>row>unread{color: rgb(0,0,0);font-style: normal;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;} to
mailtable>row>unread{color: rgb(0,0,0);font-weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;}
/instance/com.ibm.rcp.ui/USER_STYLES; from mailtable>row>read{color: rgb(99,101,99);font-style: normal;font-size: 9pt;}##mailtable>row>read{font-family: Arial,Arial,Sans
Serif;}##mailtable>row>unread{color: rgb(0,0,0);font-style: normal;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;} to mailtable>row>unread{color:
rgb(0,0,0);font-weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;}
/instance/com.ibm.notes.client/MAIL_USER_STYLES; from mailtable>row>unread{color: rgb(0,0,0);font-weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family:
Arial,Arial,Sans Serif;} to mailtable>row>read{color: rgb(99,101,99);font-weight: bold;font-size: 9pt;}##mailtable>row>read{font-family: Arial,Arial,Sans
Serif;}##mailtable>row>unread{color: rgb(0,0,0);font-weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;}
/instance/com.ibm.rcp.ui/USER_STYLES; from mailtable>row>unread{color: rgb(0,0,0);font-weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;} to
mailtable>row>read{color: rgb(99,101,99);font-weight: bold;font-size: 9pt;}##mailtable>row>read{font-family: Arial,Arial,Sans Serif;}##mailtable>row>unread{color: rgb(0,0,0);font-
weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;}
/instance/com.ibm.notes.client/MAIL_USER_STYLES; from mailtable>row>read{color: rgb(99,101,99);font-weight: bold;font-size: 9pt;}##mailtable>row>read{font-family:
Arial,Arial,Sans Serif;}##mailtable>row>unread{color: rgb(0,0,0);font-weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;} to
mailtable>row>read{color: rgb(99,101,99);font-style: normal;font-size: 9pt;}##mailtable>row>read{font-family: Arial,Arial,Sans Serif;}##
/instance/com.ibm.rcp.ui/USER_STYLES; from mailtable>row>read{color: rgb(99,101,99);font-weight: bold;font-size: 9pt;}##mailtable>row>read{font-family: Arial,Arial,Sans
Serif;}##mailtable>row>unread{color: rgb(0,0,0);font-weight: bold;font-size: 9pt;}##mailtable>row>unread{font-family: Arial,Arial,Sans Serif;} to mailtable>row>read{color:
rgb(99,101,99);font-style: normal;font-size: 9pt;}##mailtable>row>read{font-family: Arial,Arial,Sans Serif;}##
47
Live Text
/instance/com.ibm.rcp.annotation/ANNOTATIONS_DEFAULT
false=disabled
true=enabled
/instance/com.ibm.rcp.annotation/ANNOTATIONS_COLOR
3=thin, green
2=thick, green
1=thin, blue
0=thick, blue
48
Search
Enable History
/instance/com.ibm.rcp.search.ui/SEARCH_HISTORY_ENABLE_PREFERENCEnull=enable, false=disable
Search defaults; AUTO=
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.auto=true
OTHERWISE
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.auto=false
AND (
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.default=com.ibm.rcp.search.engines.google.GoogleWebLink
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.item=com.ibm.rcp.search.engines.google.GoogleWebLink.item
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.set=com.ibm.rcp.search.engines.google.set
) OR (
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.default=com.ibm.rcp.search.engines.yahoo.YahooWebLink
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.item=com.ibm.rcp.search.engines.yahoo.YahooWebLink.item
/instance/com.ibm.rcp.search.ui/com.ibm.rcp.search.ui.web.set=com.ibm.rcp.search.engines.yahoo.set
)
49
Browser
Homepage /instance/com.ibm.rcp.ui.browser.launcher/USER_DEFINED_HOME_PAGE
• null=not set
• Otherwise: e.g. =www.google.de
When clicking on a hyperlink … /instance/com.ibm.rcp.ui.browser.launcher/USE_EMBEDDED_BROWSER
• Use embedded=true
• Use OS=false
For embedded=true
• Keep history:
/instance/com.ibm.rcp.ui.browser.launcher/ENABLE_HISTORY
null=Keep history
false=do NOT keep history
• /instance/com.ibm.rcp.ui.browser.launcher/PERSISTING_HISTORY_DAYS=30|…number [0-90]
/instance/com.ibm.rcp.ui.browser.launcher/DELETE_HISTORY=true|false
50
Windows and Themes
/instance/com.ibm.rcp.personality.framework/RESTORE_TABS=true|false
/instance/com.ibm.rcp.ui/USE_LARGE_ICONS=true|false
/instance/com.ibm.rcp.ui/doNotShowApplicationHidePanelDialog=prompt|always
(prompt=inform me=checked, always=not checked)
/instance/com.ibm.rcp.ui/doNotShowHidePanelDialog=prompt|always
(prompt=inform me=checked,always=not checked)
/instance/com.ibm.rcp.ui/CURRENT_WINDOW_NAVIGATION_PREFERENCE=
NEW_WINDOW or
NEW_TAB or
GROUPED_TAB
/instance/com.ibm.rcp.ui/WED_THEME_PREFERENCE=
com.ibm.notes.branding.theme.native or
com.ibm.notes.branding.theme.lowvis or
null (remove) for OS theme
51
Other interesting Eclipse preferences could be ...
Sametime
Communities
Notification Messages
Status Messages
Connections
Spellcheck
Widget Catalog
Plugins / Widgets
[...]
52
Q & A – Thank you !
53
Christoph AdlerTechnical Account Manager
panagenda GmbH – Solutions for Infrastructure Analysis and Optimization
● Lahnstraße 17 ● 64646 Heppenheim (Germany)
● Cell: +49 172 494 4141
● Phone: +49 6252 679 39-52 ● Fax: +49 6252 305 2842
● E-Mail: [email protected]
Contact