#engageug
Who We Are
• Julian Robichaux
• panagenda
• nsftools.com
• @jrobichaux
• Kathy Brown
• PSC Group LLC
• runningnotes.net
• @runningkathy
!2
#engageug
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
!3
#engageug
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?
!4
#engageug
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
!5
#engageug !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
#engageug
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
!7
#engageug
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
!9
#engageug
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
!11
#engageug
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
!12
#engageug
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
!14
#engageug
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
!15
*Spin your chair 3 times clockwise while throwing salt over your LEFT shoulder
#engageug
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
!16
#engageug
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"
!17
#engageug
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!
!18
http://www-01.ibm.com/support/docview.wss?uid=swg21617708
#engageug
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
!20
#engageug
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
!23
#engageug
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)
!25
#engageug
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
!26
#engageug
Tips for 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
!28
#engageug
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 (!)
!29
#engageug
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
!30
#engageug
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
!31
#engageug
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
!32
#engageug
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
!33
#engageug
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
!34
#engageug
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
!35
#engageug
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
!36
#engageug
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
!37
#engageug
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
!38
#engageug
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
!41
#engageug
Colors and Fonts
!45
Basic - Text Font is the default editor font,
you can override for Java and JavaScript here,
LotusScript has its own settings under Domino Designer.
#engageug
Hotkeys
• Help - Key Assist
or...
• Control - Shift - L
or...
• File - Preferences - General - Keys
!46
#engageug
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
!54
#engageug
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!))
!58
#engageug
XPages Tips
• Where do all the print statements go for local debugging?
• log.nsf -or- dataIBM_TECHNICAL_SUPPORTconsole.log
• Extra logging info
• config file: 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...
!60
#engageug
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
!61
#engageug
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!
!66
https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/using_code_templates_in_dde?lang=en_us
#engageug
Java Tips
• Adding Domino API Javadocs for hover help
• Domino Javadoc Generator:
http://domino-javadoc.sourceforge.net
!68
https://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/adding_hover_help_to_domino_designer
#engageug
Java Tips
• Code Snippets
• Built-in Eclipse functionality
• Right-click code and choose “Add to snippets”
• Drag and drop to paste into editors
!69
#engageug
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)
!70
#engageug
Java Tips
• Scrapbook Pages
• Evaluate String commands,
regular expressions,
XML parsing, etc.
!71
http://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/java_scrapbook_pages
#engageug
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
#engageug
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
!75
#engageug
Source Control - Setting
• Sometimes DDE hangs (GASP!)
• Turning off On Disk Project syncing can help
• Tip!
• You have to remember to then manually sync
!76
#engageug
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
!77
#engageug
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
• Wiki entry on installing an update site:
• http://bit.ly/UpdateSite
!78
#engageug
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)
!79
#engageug
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
!80
#engageug
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)
!81
#engageug
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)”
!85
#engageug
Thank You!
!86
Kathy Brown
PSC Group LLC
kathy@runningnotes.net
Twitter: @runningkathy
Julian Robichaux
panagenda
jrobichaux@panagenda.com
Twitter: @jrobichaux