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