SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
1.
#engageug
Improving Your
IBM Domino Designer
Experience
Julian Robichaux :: panagenda
Kathy Brown :: PSC Group
!1
2.
#engageug
Who We Are
• Julian Robichaux
• panagenda
• nsftools.com
• @jrobichaux
• Kathy Brown
• PSC Group LLC
• runningnotes.net
• @runningkathy
!2
3.
#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
4.
#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
5.
#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
6.
#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
7.
#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
9.
#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
10.
#engageug
Installing (and reinstalling)
measure twice, cut once
!10
11.
#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
12.
#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
14.
#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
15.
#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
16.
#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
17.
#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
18.
#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
19.
#engageug
Understanding Eclipse
Terminology
and a few configuration details
!19
20.
#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
21.
#engageug
Perspectives and Views
!21
Perspective
View
23.
#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
24.
#engageug
Customizing Perspectives
• Menu option “Customize Perspective...”
• Add or remove Eclipse views
• Add or remove Menu and Toolbar items
!24
25.
#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
26.
#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
27.
#engageug
My Favorite View: Progress
!27
Window -
Show Eclipse Views -
Other... -
General -
Progress
28.
#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
29.
#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
30.
#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
31.
#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
32.
#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
33.
#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
34.
#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
35.
#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
36.
#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
37.
#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
38.
#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
39.
#engageug
Back Up Your Settings
!39
Bonus: also backs up your SAVED custom Perspectives
40.
#engageug
General Settings
aka: boxes you can check
!40
41.
#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
44.
#engageug
Spellcheck (you shud prolly turn this off)
!44
45.
#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.
46.
#engageug
Hotkeys
• Help - Key Assist
or...
• Control - Shift - L
or...
• File - Preferences - General - Keys
!46
54.
#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
56.
#engageug
LotusScript Tips
• Comment and Code Templates
!56
57.
#engageug
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
!57
58.
#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
59.
#engageug
XPages Tips
• Troubleshooting local web server port conflicts
• TCPView from sysinternals.com (now Microsoft Sysinternals)
!59
60.
#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
61.
#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
62.
#engageug
XPages Tips
• Problems Tab, “configure contents...”
• Show only errors “On any element in same project”
!62
63.
#engageug
XPages Tips
• To Build Automatically or Not To Build Automatically
!63
Working Local?
Yes No
Sure, Build Automatically No, Just No
64.
#engageug
Java Tips
• Get stack trace line numbers from Java agents and
script libraries
• No performance penalty
!64
65.
#engageug
Java Tips
• Save the whole agent when you save a class in the
agent
!65
66.
#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
67.
#engageug
Java Tips
• TODO and FIXME
• Eclipse view: Other - General - Tasks
!67
68.
#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
69.
#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
70.
#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
71.
#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
72.
#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
75.
#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
76.
#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
77.
#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
78.
#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
79.
#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
80.
#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
81.
#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
84.
#engageug
FindBugs for Domino Designer
• http://openntf.org/p/FindBugs+for+DominoDesigner
• Christian Güdemann
!84
85.
#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
86.
#engageug
Thank You!
!86
Kathy Brown
PSC Group LLC
kathy@runningnotes.net
Twitter: @runningkathy
Julian Robichaux
panagenda
jrobichaux@panagenda.com
Twitter: @jrobichaux