This document provides an overview of the session "BP205: Improving Your IBM® Domino® Designer Experience" which was presented by Julian Robichaux and Kathy Brown. The goals of the session were to understand how Eclipse and IBM Domino Designer work together, avoid breaking things, work more efficiently, and learn both familiar and new information. The document discusses the history and relationship between Eclipse and Domino Designer, installation and configuration tips, preferences and settings, and tips for working with code more efficiently in Domino Designer.
2. Who We Are
▪ Julian Robichaux
• panagenda
• nsftools.com
• @jrobichaux
▪ Kathy Brown
• PSC Group LLC
• runningnotes.net
• @runningkathy
3. The Goals of this Session
▪ Understand how Eclipse™ and IBM® Domino® Designer work together
– especially by using helpful things that “come for free” with Eclipse
▪ Avoid breaking things
– and learn how to fix them when they break
▪ Work more efficiently
▪ Some information will be old hat, some (hopefully)
will be brand new
4. Domino Designer in Eclipse
▪ “DDE” to you and me
▪ Is it in, on, with, or next to Eclipse?
– perhaps we should say “wrapped inside of”
▪ But I thought Eclipse was just an IDE!
How can it do all this “wrapping” stuff?
5. An Informal History of 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
6. “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
7. A Very Abbreviated Timeline
▪ 1999: Development of Eclipse begins at IBM
▪ 2001: Eclipse 1.0 released, eclipse.org created
▪ 2002: Eclipse 2.0 released
▪ 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 in 2012
9. Why Are You Telling Me This?
▪ Things to understand:
– Eclipse has a long, rich history completely outside of Domino
– Many (most?) of the “new” DDE things are actually “old” Eclipse things
– Name overlaps (view, navigator, workspace, etc.)
– Two completely separate JVMs
– When you mix two very different (and established) technologies
like this, things are bound to be confusing or... difficult
11. Considerations: Fresh Install
▪ A well defragged hard drive
▪ Disable virus scan on entire Notes directory if possible,
NSF and JAR files in Notes directory at minimum
▪ Disable the Windows Search/Index service
▪ Don’t use an encrypted portion of your disc
▪ Disable Aero on Windows 7
12. Considerations: VMWare
▪ Fixed size page file, 1.5 to 2 times your RAM
– Defrag first, then restart and fix the page size
▪ Turn off things that poll
– CD auto-play, Bluetooth, shared or mapped drives
▪ Defrag+compact regularly (or use a fixed size VM)
▪ Keep your VMWare Tools (drivers) updated
14. Install Tips
▪ If you’re using VMWare, take a snapshot
▪ Install EVERYTHING (check all the boxes, even if you don’t think you’ll use
Sametime, Connections, etc.)
▪ Don’t get clever with your install paths
▪ Reboot when you’re done, then delete the temp folder
▪ If you’re using VMWare, take another snapshot
15. Upgrade Tips
▪ Install over the old copy, or nuke it and start over?
– Always better to nuke (uninstall first, then reboot and delete -- don’t just
delete) and start fresh *
– If you can’t, at least consider deleting or renaming the framework and the
dataworkspace.config folders first (gets rid of old JAR files)
▪ Resist the urge to do the trick where you rename the old directory so you can have
multiple versions of the client on your workstation
*Spin your chair 3 times clockwise while throwing salt over your LEFT shoulder
16. Upgrade Tips
▪ “Install Interrupted” and other errors
• Often caused by incomplete or
improper uninstall of previous
client version (registry entries
pointing to files that no longer
exist, etc.)
▪ Use the IBM “NICE” tool
• http://www-01.ibm.com/support/docview.wss?uid=swg21459714
17. Reinstalling
▪ Best bet is to uninstall, use the NICE tool, then reinstall
▪ Also reinstall/repair options if
you re-run the installer
▪ Command line option:
• setup.exe /v"REINSTALLMODE=vamus REINSTALL=ALL"
18. JVM Memory Settings
• make sure Xms is smaller than
Xmx, for garbage collection
purposes
• you might have issues with Xmx
larger than 1024
• NOTE: these settings can get
reset after a FixPack install
• http://nsftools.com/blog/
blog-08-2013.htm
• DDE 9.0.1 GETS MORE
MEMORY BY DEFAULT!
http://www-01.ibm.com/support/docview.wss?uid=swg21617708
20. Perspectives and Views
▪ What are they?
▪ Perspectives are layouts of Views
– Think of a painter’s palette
▪ Views are panels or tabs with the tools you need
– Think of the colors on the palette
23. More Perspectives
▪ Each perspective has Views, menu items, and toolbars needed for that focus
• For example: the navigator in the Domino Designer perspective has Frameset and
Pages, the one in the XPages perspective does not
24. Customizing Perspectives
▪ Menu option “Customize Perspective...”
– Add or remove Eclipse views
– Add or remove Menu and Toolbar items
25. Customizing Perspectives
▪ “Manual” customization
– Move view panes all to the left or right for more screen real estate
– Drag up Outline
– Add Package Explorer
• (Window - Show Eclipse Views)
26. Saving Perspectives
▪ Save Perspective As...
– Always a good idea to do this BEFORE customizing
▪ You CAN make changes in a copy, however
if you make them in the default perspective,
then your changes will be there whenever
you open DDE
– i.e. changing IDs opens the default
perspective
▪ Unfortunately, you cannot make DDE
open to your custom perspective
27. My Favorite View: Progress
Window Show Eclipse Views Other... General Progress
28. Tips on Views & Perspectives
▪ Make the tab full screen
– Double-click the tab title, and double-click again to reset it
– Or click the small “maximize” icon on the tab bar
– Or use Ctrl-M
▪ Use Window - Reset Perspective when you’ve totally borked it
29. Working Sets
▪ It’s an Eclipse thing for organizing your projects (Notes DB == Eclipse project)
▪ All applications for a client, or all applications
for a project, or only templates, or only
production applications, etc.
▪ Switching working sets does NOT release
the open applications from memory (!)
30. Working with ... Working Sets
▪ Select one or more working sets, or no working sets (shows all applications ever
opened in the history of time)
▪ Edit Current Working Set
▪ Manage Working Sets
31. More Working Sets
▪ New in Notes 9, select Applications Not in a Working Set
▪ Working Set preferences
– “Ask me” is good if you often (ever) open the wrong app
32. Preferences and Settings
▪ Notes client and DDE shared storage of settings
▪ Eclipse is a cornucopia of plugins
• Every plugin has its own folder in [notesdata]workspace.metadata
• There is also a central Eclipse preference store (a tiny bit like Windows registry, but
much better behaved)
▪ OSGi handles plugin lifecycle and caching
33. The Workspace Folders
▪ Main subfolders under the [notesdata]workspace folder are:
– .config -- OSGi cache, JVM cache, Eclipse startup config
– .metadata -- plugin folders, preference files
– applications -- third-party plugins you’ve installed
– logs -- Eclipse logs, Java core dumps and heap dumps
– UDM -- spellcheck files
– also a folder for each server you access from DDE
(including “Local”), with subfolder for each database
34. Deleting the Workspace
▪ Removes caches, configurations, preferences, settings
• including Notes/DDE UI customizations
▪ Deletes [most] third-party plugins you’ve installed
▪ Deletes extra settings in rcpinstall.properties
▪ Everything will be rebuilt with default settings
35. The -clean Option
▪ -clean is a less nuclear option
▪ Rebuilds the plugin caches and some
of the Eclipse/OSGi config files
• but you don’t lose your preferences
▪ Make a COPY of your Notes shortcut,
change target to:
• notes.exe -RPARAMS –clean
▪ Delete the copy of your shortcut when
you’re done so you don’t accidentally
do this every time you open Notes
36. Cleaning a Broken DDE
▪ Files you could delete (or rename) manually
– Special workspace folders for each server+db you access
– workspace.metadata.plugins
•
•
•
•
org.eclipse.core.resources (additional DDE project cache)
com.ibm.rcp.personality.framework (perspective info)
org.eclipse.ui.workbenchworkingsets.xml
com.ibm.designer.domino.ide.resourceswsInfo.xml
37. Back Up Your Settings
▪ Can’t I just back up my whole workspace folder?
• You could, but not always portable between installations/versions
▪ What about my workspace.metadata folder?
• Still too much
▪ What about this specific list of folders... ?
• There is an easier way if you will just
stop asking questions
38. Back Up Your Settings
▪ Hat tip to Paul Withers
• http://www.intec.co.uk/quick-setup-restore-of-domino-designer
▪ Switch to a non-Domino perspective in DDE (like “Java”)
▪ File - Export - General - Preferences
• Saves as a .epf file (text file, you can look to see what’s there)
▪ To import: File - Import - General - Preferences
39. Back Up Your Settings
Bonus: also backs up your SAVED custom Perspectives
41. File - Preferences
▪ There are so many settings in DDE, you might not have seen them all – here are a
few useful ones
• Please don’t be insulted if you’ve seen some of these before
• Not everyone is as smart as you
• Newer versions of DDE sometimes have new settings
▪ Almost all of the DDE specific preferences (from File - Preferences) map to Eclipse
preferences
45. Colors and Fonts
Basic - Text Font is the default editor font,
you can override for Java and JavaScript here,
LotusScript has its own settings under Domino Designer.
46. Hotkeys
▪ Help - Key Assist
or...
▪ Control - Shift - L
or...
▪ File - Preferences - General - Keys
54. Search Tips
▪ Full design search: Search - File... (or Ctrl + H)
– Search:
•
•
•
•
entire workspace (open databases)
all databases in a working set
all design elements in a database (project)
selected design elements
– File patterns allow you to specify certain design elements (use the “Choose”
button for a list), or use * for all design elements
– Non-code elements (forms, views, etc.) have their DXL searched
– Regular expressions
– Results listed in a Search view (tab) you can leave open
57. LotusScript Tips
▪ Determining the correct error line number
• Navigate - Go to erl line...
• Needed in DDE 8.5.x, seems to be less necessary in 9.0
58. XPages Tips
▪ Changing the local web server port (8.5.3+)
• not just XPages, any DDE local web preview
• great if you’re running a local web server (on purpose or unknowingly (Skype!))
59. XPages Tips
▪ Troubleshooting local web server port conflicts
• TCPView from sysinternals.com (now Microsoft Sysinternals)
60. XPages Tips
▪ Where do all the print statements go for local debugging?
• log.nsf -or- dataIBM_TECHNICAL_SUPPORTconsole.log
▪ Extra logging info
• config file at: datadominoworkspace.configrcpinstall.properties
- see the commented log levels at the bottom of the file
• logs at: datadominoworkspacelogstrace-log-0.xml
- might have to shut down local web preview for logs to flush
- notice the “domino” in that path...
61. XPages Tips
▪ The dreaded “Error 500” on local XPages preview
– Turn on runtime error notification (Application Properties, XPages tab)
– Test a very basic XPage (is it all XPages, or just that one?)
– Add error handling (JavaScript and Java)
– Check the logs (see previous slide)
– Check for duplicate (previous version) JAR files in notesosgi:
- Troubleshooting tips in Julian’s April 2012 Clippings Newsletter
- http://www.socialbizug.org/communities/community/clippings
62. XPages Tips
▪ Problems Tab, “configure contents...”
– Show only errors “On any element in same project”
63. XPages Tips
▪ To Build Automatically or Not To Build Automatically
Working Local?
Yes
Sure, Build Automatically
No
No, Just No
64. Java Tips
▪ Get stack trace line numbers from Java agents and script libraries
• No performance penalty
65. Java Tips
▪ Save the whole agent when you save a class in the agent
66. Java Tips
▪ Code templates
• Java - Editor - Templates
• Ctrl + Space (FTW!)
• Default shortcuts to start with:
- for, while, try, new, final, toarray
• Make your own for fun and profit!
https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/using_code_templates_in_dde?lang=en_us
67. Java Tips
▪ TODO and FIXME
• Eclipse view: Other - General - Tasks
68. Java Tips
▪ Adding Domino API Javadocs for hover help
• Domino Javadoc Generator: http://domino-javadoc.sourceforge.net
https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/adding_hover_help_to_domino_designer
69. Java Tips
▪ Code Snippets
• Built-in Eclipse functionality
• Right-click code and choose “Add to snippets”
• Drag and drop to paste into editors
70. Java Tips
▪ Scrapbook pages
• from Package Explorer:
• Right-Click - New - Other
- Java - Java RunDebug
- Scrapbook Page
▪ Use a Console view for output
• Highlight code, right-click, execute
• System.out.println() goes to console
(Other - General - Console)
71. Java Tips
▪ Scrapbook Pages
• Evaluate String commands,
regular expressions,
XML parsing, etc.
http://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/java_scrapbook_pages
72. Java Tips
▪ Debugging
• you CAN debug Java from DDE
- server or client, although debugging a server is a pretty bad idea
!
• see Julian and Mark Myers’ presentation from Lotusphere 2012:
• http://londondevelopercoop.com/ldc.nsf/pages/goodies
75. Source Control
▪ Even if you aren’t working with a team
– Easily roll back specific changes
– Track changes (what/when/who)
– Simple system for having a backup, while working locally
▪ OpenNTF project for 8.5.2, native in 8.5.3
▪ SVN, CVS, Git, Mercurial
76. Source Control - Setting
▪ Sometimes DDE hangs (GASP!)
– Turning off On Disk Project syncing can help
▪ Tip!
– You have to remember to then manually sync
77. Source Control - Resources
▪ https://www.socialbizug.org/blogs/articles/entry/setting_up_source_control
▪ https://www.socialbizug.org/blogs/articles/entry/using_source_control
▪ https://www.socialbizug.org/blogs/articles/entry/
5_tips_for_source_control_in_domino
▪ http://xpagetips.blogspot.com/2013/04/source-control-good-stuff.html
▪ From Lotusphere 2012: AD102 – Source Control For The IBM Lotus Domino
Developer, by Declan Lynch
78. Extension Library
▪ Depending on version of Domino, no install required
– 8.5.3 UP1 or 9
▪ For latest and greatest, go to OpenNTF.org
▪ Install via an Update Site
– http://bit.ly/UpdateSite Wiki entry on installing an update site
79. Extension Library Install Tips
▪ Do NOT install multiple versions
– If you’ve got 8.5.3 UP1 and you go get the latest from OpenNTF.org, REMOVE
the library that came with 8.5.3 UP1
▪ Install the Extension Library on DDE AND your server
▪ Get the sample database
▪ Don’t mix and match versions (Server/DDE)
80. Third Party Plugins
▪ Finding third-party plugins
• Looks for plugins compatible with
Eclipse 3.2 - 3.4 (they might work)
▪ Before you install
• Completely restart the Notes client
• Take a snapshot if you’re using VMWare
81. Third Party Plugins
▪ File - Application - Install
• You might have to be in a DDE (non-custom) perspective to get the Application Install menu option
• There is a DDE Preference
to allow plugin installs
▪ After you install
• Manually shut down and restart the Notes client again
(don’t use the “Restart now” option)
86. Writing Your Own Plugins
▪ What you need:
• DDE 8.5.1+
• Eclipse 3.4.2 (Ganymede for RCP/Plugin Developers)
- http://www.eclipse.org/downloads/packages/release/ganymede/sr2
- You should use EXACTLY this version (not 3.2, not 3.5, not 4.2...)
• Lotus Expeditor Toolkit 6.2.x
- http://www.ibm.com/developerworks/lotus/downloads/toolkits.html
▪ Hints, tips, and instructions
• http://bit.ly/pluginredwiki
• http://www-10.lotus.com/ldd/lewiki.nsf
• Tim Tripcony and Maureen Leland’s Lotusphere 2011 presentation
- “AD102: Hacking IBM Lotus Designer (Gently)”
87. ▪ Access Connect Online to complete your session surveys using any:
– Web or mobile browser
– Connect Online kiosk onsite
Kathy Brown
PSC Group LLC
kathy@runningnotes.com
Twitter: @runningkathy
!
87
Julian Robichaux
panagenda
jrobichaux@panagenda.com
Twitter: @jrobichaux