SlideShare a Scribd company logo
UKLUG 2012 – Cardiff, Wales
Stop (de)bugging me!
UKLUG 2012 – Cardiff, Wales
Disclaimer
This session is only for people that
make errors. All others can leave.
Suggestions:
• Re-inventing your ideas (room 3)
• The DevAdmin Chimera (room 2)
UKLUG 2012 – Cardiff, Wales
Agenda
• Debuggers in Designer
• Java debugger
• SSJS debugger
• XPage Debug Toolbar
™
UKLUG 2012 – Cardiff, Wales
Who’s that guy anyway?
• Freelance consultant/ developer
• IBM Notes/ Domino
• XPages, web, client, mobile, Unplugged
• OpenNTF Contributor
• Auto Logins
• XPage Multiple File Uploader
• XPage Debug Toolbar
• IBM Champion
• XPages4Bootstrap.com
UKLUG 2012 – Cardiff, Wales
Debugging in Designer
• For Java & SSJS (as of Designer 9)
• Based on standards
• Java Platform Debugger Architecture (JPDA)
• ‘Remote’ debugging
• Enable on server
• IDE (Designer/ Eclipse) connects to Server on
specified port
UKLUG 2012 – Cardiff, Wales
Debugging in Designer
• Not recommended for productions servers
• Impacts performance & security
• Only 1 developer can connect at a time
• … but that’s not a problem
• … since we don’t debug applications on
production servers
Right?
UKLUG 2012 – Cardiff, Wales
Java debugger
• In Designer since 8.5
• Debug:
• Java classes
• Managed beans
• OSGi plugins
• Compiled XPages Java (Local/xsp folder)
UKLUG 2012 – Cardiff, Wales
Server Side JavaScript debugger
• New in Domino 9
• Configured and works (almost) the same as
the Java debugger
• Debug SSJS in
• XPages
• Custom controls
• SSJS libraries
UKLUG 2012 – Cardiff, Wales
Activating the debuggers - server
• Add configuration to notes.ini:
JavaEnableDebug=1
JavascriptEnableDebug=1
JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
• Tip: if you click on the “Debug” icon in the
toolbar, you can copy-paste these settings
from there
Add this row only if you want to
debug SSJS (too)
UKLUG 2012 – Cardiff, Wales
Activating the debuggers - server
• Restart the server
• Watch for this:
• Port needs to be open(ed) in the firewall
• Works with local HTTP preview too
• Tip: If the local preview won’t start, try starting
the local HTTP task from a command prompt
• Run “nhttp preview” from your Notes folder
UKLUG 2012 – Cardiff, Wales
Activating the debugger - code
• Set breakpoints
• Right-click in gutter
• Add ‘debugger’ statement (SSJS)
• Don’t use this in Designer < 9 !
• Stop at first line of JavaScript
code
UKLUG 2012 – Cardiff, Wales
Starting a debug session
• Click the triangle next to the “bug” icon
(this is Designer 9, icon looks slightly different in 8.5)
• Select an existing configuration or click
“Manage…”
UKLUG 2012 – Cardiff, Wales
Starting a debug session - Java
IP Address of your server
Port that the Debugger listens on
Name for this configuration (can be any)
UKLUG 2012 – Cardiff, Wales
Starting a debug session - SSJS
UKLUG 2012 – Cardiff, Wales
• Demo
UKLUG 2012 – Cardiff, Wales
Debug perspective
• Designer automatically asks to open Debug perspective when it
suspends
• Breakpoint or ‘debugger’ statement in SSJS
• Change behaviour in Preferences > Run/Debug > Perspectives
• Tip: switch perspectives using Ctrl-F8 in Designer
UKLUG 2012 – Cardiff, Wales
Source not found?
UKLUG 2012 – Cardiff, Wales
Keyboard shortcuts
• F5 Step into
• F6 Step over
• F7 Step exit
• F8 Continue
• Strange issue with the F6 key
• With the default Designer/ Eclipse binding it doesn’t work
• If you create your own binding to F6 it does
• Do this in File > Preferences > Type “keys” in filter
F5 F6 F7F8
UKLUG 2012 – Cardiff, Wales
Conditional breakpoints
• Set breakpoint
• Right-click on breakpoint
• Click “Breakpoint properties”
UKLUG 2012 – Cardiff, Wales
Display view
• Window > Show Eclipse View > Display
• Run an expression in the context of a
breakpoint and view the result
• Only works with Java debugger
• With code completion
UKLUG 2012 – Cardiff, Wales
Expressions view
• Window > Show Eclipse View > Expressions
• Inspect the current state of objects
• 2 ways to add:
• Right-click on expression in ‘Display’ view
• Type in manually
UKLUG 2012 – Cardiff, Wales
From SSJS to Java
• You can debug Java code when you’re
debugging SSJS code
• But NOT using “Step into” (F5):
• It will only stop on breakpoints in the Java class
UKLUG 2012 – Cardiff, Wales
Disconnect
• When you’re done: disconnect your debugging
session
• Java debugger
• SSJS debugger
UKLUG 2012 – Cardiff, Wales
XPage Debug Toolbar
UKLUG 2012 – Cardiff, Wales
Background/ features
• Tool for XPage developers
• Free download from OpenNTF
• Or directly from GitHub
• Features:
• Log debug messages
• View contents of scopes
• Log file reader
• API Inspector
UKLUG 2012 – Cardiff, Wales
Installation
• 2 ways to install:
• Download from OpenNTF and copy to your
application
• Use the OpenNTF Import/ export tool
UKLUG 2012 – Cardiff, Wales
Installation
• Add the ccDebugToolbar custom control to
your XPage
• Add the (dBar) managed bean
• (optionally) Change the default settings using
custom control properties
• collapseTo
• defaultCollapsed
• color
UKLUG 2012 – Cardiff, Wales
Components
ccDebugToolbar Custom control
xpDebugToolbar SSJS library
eu.linqed.debugtoolbar.DebugToolbar Java class
eu.linqed.debugtoolbar.Message Java class
debugToolbarConsole XPage optional
debugToolbarErrorPage XPage optional
dBar Managed bean
Events View OpenLog integration
Event Form OpenLog integration
UKLUG 2012 – Cardiff, Wales
Scope contents
• Shows contents of
• applicationScope
• sessionScope
• viewScope
• requestScope
• Remove a variable
• Or clean an entire scope
• Modify values through the Inspector
UKLUG 2012 – Cardiff, Wales
Environment variables
• Information about the current:
• User
• Browser
• Server
• Database
• Request
• Java heap size
• Maximum heap size
• Allocated
• Used
• Free
UKLUG 2012 – Cardiff, Wales
Inspector
• View classes for controls on the current page
• And change them
• View any variable:
• Scoped variables
• Managed beans
• Any XPage runtime object
• Drill-down to see what value/ object is
returned
UKLUG 2012 – Cardiff, Wales
Messages
• Alternative to print() or _dump() functions
• No server console access needed
• Your messages only
• Makes your admin happy 
• Add messages using:
dBar.debug( “message” );
dBar.info( “message”);
dBar.warn( “message” );
dBar.error( “message” );
dBar.dump( <object> );
UKLUG 2012 – Cardiff, Wales
Messages
• Specify a context: dBar.info( “message”, “context” );
• dBar.error() function accepts ‘error’ objects:
try {
var doc:NotesDocument = null;
var id = doc.getUniversalID();
} catch (e) {
dBar.error(e);
}
• Add a divider to the messages list: dBar.addDivider();
UKLUG 2012 – Cardiff, Wales
Messages
• Add debug messages from Java:
DebugToolbar.get().info( “message” );
DebugToolbar.get().warn( “message” );
• Or catch an Exception
• DebugToolbar.get().error( e );
UKLUG 2012 – Cardiff, Wales
Log messages to documents
• Create documents for all dBar calls
• All required code already built-in
• Uses the OpenLog (form/fields) format
• Use the OpenLog database to view them
• Log level can be set: log only messages with a
certain log level (or ‘higher’)
• warn = warn + error
• debug = debug + info + warn + error
UKLUG 2012 – Cardiff, Wales
Log messages to documents
• Configure using managed properties
• logDbPath current, logdb.nsf
• logEnabled true, false
• logLevel debug, info, warn, error
• Logging will continue even if the toolbar isn’t
displayed
UKLUG 2012 – Cardiff, Wales
Best practices
• Add [debug] role to the ACL
• Set loaded property of the ccDebugToolbar only for
[debug] role:
loaded=“#,javascript:context.getUser().getRoles().contains(‘*debug’+-”
• Enable logging to documents (errors/ warnings only)
logLevel = “warn”
• No design changes needed when moving to production
UKLUG 2012 – Cardiff, Wales
Resources
• XPage Debug Toolbar on OpenNTF & GitHub
http://www.openntf.org/internal/home.nsf/project.xsp?action=ope
nDocument&name=XPage%20Debug%20Toolbar
https://github.com/markleusink/XpageDebugToolbar
• OpenNTF Import/ export tool
http://www.openntf.org/internal/home.nsf/project.xsp?action=ope
nDocument&name=Import%20and%20Export%20for%20Designer
• Xpages OpenLog Logger
http://www.openntf.org/internal/home.nsf/project.xsp?action=ope
nDocument&name=XPages%20OpenLog%20Logger
• OpenLog
http://www.openntf.org/internal/home.nsf/project.xsp?action=ope
nDocument&name=OpenLog
UKLUG 2012 – Cardiff, Wales
Thank you !
• Twitter: markleusink
• Skype: mark_leusink
• Blog: http://linqed.eu
• Email: m.leusink@linqed.eu
• http://www.bootstrap4xpages.com

More Related Content

What's hot

JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016
Hendrik Ebbers
 
JavaFX Pitfalls
JavaFX PitfallsJavaFX Pitfalls
JavaFX Pitfalls
Alexander Casall
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
Seb Rose
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
Andres Almiray
 
Java script Examples by Som
Java script Examples by Som  Java script Examples by Som
Java script Examples by Som
Som Prakash Rai
 
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
Ortus Solutions, Corp
 
Java Intro: Unit1. Hello World
Java Intro: Unit1. Hello WorldJava Intro: Unit1. Hello World
Java Intro: Unit1. Hello World
Yakov Fain
 
Code quality par Simone Civetta
Code quality par Simone CivettaCode quality par Simone Civetta
Code quality par Simone Civetta
CocoaHeads France
 
Stop (de)bugging me!
Stop (de)bugging me!Stop (de)bugging me!
Stop (de)bugging me!
Mark Leusink
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
Eugenio Lentini
 
JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and Ecosystem
Alexander Casall
 
KraQA #29 - Component level testing of react app, using enzyme
KraQA #29 - Component level testing of react app, using enzymeKraQA #29 - Component level testing of react app, using enzyme
KraQA #29 - Component level testing of react app, using enzyme
kraqa
 
DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)
Hendrik Ebbers
 
JavaFX in Action (devoxx'16)
JavaFX in Action (devoxx'16)JavaFX in Action (devoxx'16)
JavaFX in Action (devoxx'16)
Alexander Casall
 
Apache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolboxApache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolbox
Antoine Sabot-Durand
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New Features
Haim Michael
 
ServiceNow Knowledge11 Advanced Scripting & Debugging Lab
ServiceNow Knowledge11 Advanced Scripting & Debugging LabServiceNow Knowledge11 Advanced Scripting & Debugging Lab
ServiceNow Knowledge11 Advanced Scripting & Debugging Lab
John Roberts
 
Dynamic Groovy Edges
Dynamic Groovy EdgesDynamic Groovy Edges
Dynamic Groovy Edges
Jimmy Ray
 
A Taste of Pharo 7.0
A Taste of Pharo 7.0A Taste of Pharo 7.0
A Taste of Pharo 7.0
ESUG
 
EJB Part-1
EJB Part-1EJB Part-1
EJB Part-1
Som Prakash Rai
 

What's hot (20)

JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016JavaFX JumpStart @JavaOne 2016
JavaFX JumpStart @JavaOne 2016
 
JavaFX Pitfalls
JavaFX PitfallsJavaFX Pitfalls
JavaFX Pitfalls
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
 
Java script Examples by Som
Java script Examples by Som  Java script Examples by Som
Java script Examples by Som
 
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
3 Ways to test your ColdFusion API - 2017 Adobe CF Summit
 
Java Intro: Unit1. Hello World
Java Intro: Unit1. Hello WorldJava Intro: Unit1. Hello World
Java Intro: Unit1. Hello World
 
Code quality par Simone Civetta
Code quality par Simone CivettaCode quality par Simone Civetta
Code quality par Simone Civetta
 
Stop (de)bugging me!
Stop (de)bugging me!Stop (de)bugging me!
Stop (de)bugging me!
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and Ecosystem
 
KraQA #29 - Component level testing of react app, using enzyme
KraQA #29 - Component level testing of react app, using enzymeKraQA #29 - Component level testing of react app, using enzyme
KraQA #29 - Component level testing of react app, using enzyme
 
DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)
 
JavaFX in Action (devoxx'16)
JavaFX in Action (devoxx'16)JavaFX in Action (devoxx'16)
JavaFX in Action (devoxx'16)
 
Apache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolboxApache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolbox
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New Features
 
ServiceNow Knowledge11 Advanced Scripting & Debugging Lab
ServiceNow Knowledge11 Advanced Scripting & Debugging LabServiceNow Knowledge11 Advanced Scripting & Debugging Lab
ServiceNow Knowledge11 Advanced Scripting & Debugging Lab
 
Dynamic Groovy Edges
Dynamic Groovy EdgesDynamic Groovy Edges
Dynamic Groovy Edges
 
A Taste of Pharo 7.0
A Taste of Pharo 7.0A Taste of Pharo 7.0
A Taste of Pharo 7.0
 
EJB Part-1
EJB Part-1EJB Part-1
EJB Part-1
 

Similar to Stop (de)bugging me - ICON UK 2013

Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want
Mark Myers
 
How to generate code coverage reports in xcode with slather
How to generate code coverage reports in xcode with slatherHow to generate code coverage reports in xcode with slather
How to generate code coverage reports in xcode with slather
allanh0526
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Acquia
 
Golang @ Tokopedia
Golang @ TokopediaGolang @ Tokopedia
Golang @ Tokopedia
Qasim Zaidi
 
2.3 (Architecture) Moving to Managed Code
2.3   (Architecture) Moving to Managed Code2.3   (Architecture) Moving to Managed Code
2.3 (Architecture) Moving to Managed CodeMicro Focus
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
Frank van der Linden
 
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
Serdar Basegmez
 
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
Michael Vorburger
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScript
Troy Miles
 
Next Step, Android Studio!
Next Step, Android Studio!Next Step, Android Studio!
Next Step, Android Studio!
Édipo Souza
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
zhang ghui
 
JavaFX - Sketch Board to Production
JavaFX - Sketch Board to ProductionJavaFX - Sketch Board to Production
JavaFX - Sketch Board to Production
Yoav Aharoni
 
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...Preeya Selvarajah
 
Magento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama Studios
Magento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama StudiosMagento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama Studios
Magento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama StudiosErik Hansen
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
Jesse Warden
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
Michael Vorburger
 
NA Developer Day - Taking your COBOL apps to Net & JVM
NA Developer Day - Taking your COBOL apps to Net & JVM NA Developer Day - Taking your COBOL apps to Net & JVM
NA Developer Day - Taking your COBOL apps to Net & JVM Micro Focus
 

Similar to Stop (de)bugging me - ICON UK 2013 (20)

Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want
 
How to generate code coverage reports in xcode with slather
How to generate code coverage reports in xcode with slatherHow to generate code coverage reports in xcode with slather
How to generate code coverage reports in xcode with slather
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
Golang @ Tokopedia
Golang @ TokopediaGolang @ Tokopedia
Golang @ Tokopedia
 
2.3 (Architecture) Moving to Managed Code
2.3   (Architecture) Moving to Managed Code2.3   (Architecture) Moving to Managed Code
2.3 (Architecture) Moving to Managed Code
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
 
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
ICONUK 2013 - An XPager's Guide to Process Server-Side Jobs on IBM® Domino®
 
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScript
 
Next Step, Android Studio!
Next Step, Android Studio!Next Step, Android Studio!
Next Step, Android Studio!
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
 
JavaFX - Sketch Board to Production
JavaFX - Sketch Board to ProductionJavaFX - Sketch Board to Production
JavaFX - Sketch Board to Production
 
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
Schneider Electric Scada Global Support Provides Troubleshooting and Technica...
 
Magento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama Studios
Magento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama StudiosMagento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama Studios
Magento Imagine 2011 - Magento Debugging - Erik Hansen, Classy Llama Studios
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
OpenDaylight Developer Experience 2.0
 OpenDaylight Developer Experience 2.0 OpenDaylight Developer Experience 2.0
OpenDaylight Developer Experience 2.0
 
Plantilla oracle
Plantilla oraclePlantilla oracle
Plantilla oracle
 
NA Developer Day - Taking your COBOL apps to Net & JVM
NA Developer Day - Taking your COBOL apps to Net & JVM NA Developer Day - Taking your COBOL apps to Net & JVM
NA Developer Day - Taking your COBOL apps to Net & JVM
 

More from Mark Leusink

Now what can you really build with DQL and web components?
Now what can you really build with DQL and web components?Now what can you really build with DQL and web components?
Now what can you really build with DQL and web components?
Mark Leusink
 
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJSICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
Mark Leusink
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
Mark Leusink
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
Mark Leusink
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Mark Leusink
 
A 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developersA 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developers
Mark Leusink
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
Mark Leusink
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Mark Leusink
 
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Mark Leusink
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
Mark Leusink
 
Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)
Mark Leusink
 

More from Mark Leusink (11)

Now what can you really build with DQL and web components?
Now what can you really build with DQL and web components?Now what can you really build with DQL and web components?
Now what can you really build with DQL and web components?
 
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJSICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
A 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developersA 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developers
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinar
 
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
 
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)
 
Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 

Stop (de)bugging me - ICON UK 2013

  • 1. UKLUG 2012 – Cardiff, Wales Stop (de)bugging me!
  • 2. UKLUG 2012 – Cardiff, Wales Disclaimer This session is only for people that make errors. All others can leave. Suggestions: • Re-inventing your ideas (room 3) • The DevAdmin Chimera (room 2)
  • 3. UKLUG 2012 – Cardiff, Wales Agenda • Debuggers in Designer • Java debugger • SSJS debugger • XPage Debug Toolbar ™
  • 4. UKLUG 2012 – Cardiff, Wales Who’s that guy anyway? • Freelance consultant/ developer • IBM Notes/ Domino • XPages, web, client, mobile, Unplugged • OpenNTF Contributor • Auto Logins • XPage Multiple File Uploader • XPage Debug Toolbar • IBM Champion • XPages4Bootstrap.com
  • 5. UKLUG 2012 – Cardiff, Wales Debugging in Designer • For Java & SSJS (as of Designer 9) • Based on standards • Java Platform Debugger Architecture (JPDA) • ‘Remote’ debugging • Enable on server • IDE (Designer/ Eclipse) connects to Server on specified port
  • 6. UKLUG 2012 – Cardiff, Wales Debugging in Designer • Not recommended for productions servers • Impacts performance & security • Only 1 developer can connect at a time • … but that’s not a problem • … since we don’t debug applications on production servers Right?
  • 7. UKLUG 2012 – Cardiff, Wales Java debugger • In Designer since 8.5 • Debug: • Java classes • Managed beans • OSGi plugins • Compiled XPages Java (Local/xsp folder)
  • 8. UKLUG 2012 – Cardiff, Wales Server Side JavaScript debugger • New in Domino 9 • Configured and works (almost) the same as the Java debugger • Debug SSJS in • XPages • Custom controls • SSJS libraries
  • 9. UKLUG 2012 – Cardiff, Wales Activating the debuggers - server • Add configuration to notes.ini: JavaEnableDebug=1 JavascriptEnableDebug=1 JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000 • Tip: if you click on the “Debug” icon in the toolbar, you can copy-paste these settings from there Add this row only if you want to debug SSJS (too)
  • 10. UKLUG 2012 – Cardiff, Wales Activating the debuggers - server • Restart the server • Watch for this: • Port needs to be open(ed) in the firewall • Works with local HTTP preview too • Tip: If the local preview won’t start, try starting the local HTTP task from a command prompt • Run “nhttp preview” from your Notes folder
  • 11. UKLUG 2012 – Cardiff, Wales Activating the debugger - code • Set breakpoints • Right-click in gutter • Add ‘debugger’ statement (SSJS) • Don’t use this in Designer < 9 ! • Stop at first line of JavaScript code
  • 12. UKLUG 2012 – Cardiff, Wales Starting a debug session • Click the triangle next to the “bug” icon (this is Designer 9, icon looks slightly different in 8.5) • Select an existing configuration or click “Manage…”
  • 13. UKLUG 2012 – Cardiff, Wales Starting a debug session - Java IP Address of your server Port that the Debugger listens on Name for this configuration (can be any)
  • 14. UKLUG 2012 – Cardiff, Wales Starting a debug session - SSJS
  • 15. UKLUG 2012 – Cardiff, Wales • Demo
  • 16. UKLUG 2012 – Cardiff, Wales Debug perspective • Designer automatically asks to open Debug perspective when it suspends • Breakpoint or ‘debugger’ statement in SSJS • Change behaviour in Preferences > Run/Debug > Perspectives • Tip: switch perspectives using Ctrl-F8 in Designer
  • 17. UKLUG 2012 – Cardiff, Wales Source not found?
  • 18. UKLUG 2012 – Cardiff, Wales Keyboard shortcuts • F5 Step into • F6 Step over • F7 Step exit • F8 Continue • Strange issue with the F6 key • With the default Designer/ Eclipse binding it doesn’t work • If you create your own binding to F6 it does • Do this in File > Preferences > Type “keys” in filter F5 F6 F7F8
  • 19. UKLUG 2012 – Cardiff, Wales Conditional breakpoints • Set breakpoint • Right-click on breakpoint • Click “Breakpoint properties”
  • 20. UKLUG 2012 – Cardiff, Wales Display view • Window > Show Eclipse View > Display • Run an expression in the context of a breakpoint and view the result • Only works with Java debugger • With code completion
  • 21. UKLUG 2012 – Cardiff, Wales Expressions view • Window > Show Eclipse View > Expressions • Inspect the current state of objects • 2 ways to add: • Right-click on expression in ‘Display’ view • Type in manually
  • 22. UKLUG 2012 – Cardiff, Wales From SSJS to Java • You can debug Java code when you’re debugging SSJS code • But NOT using “Step into” (F5): • It will only stop on breakpoints in the Java class
  • 23. UKLUG 2012 – Cardiff, Wales Disconnect • When you’re done: disconnect your debugging session • Java debugger • SSJS debugger
  • 24. UKLUG 2012 – Cardiff, Wales XPage Debug Toolbar
  • 25. UKLUG 2012 – Cardiff, Wales Background/ features • Tool for XPage developers • Free download from OpenNTF • Or directly from GitHub • Features: • Log debug messages • View contents of scopes • Log file reader • API Inspector
  • 26. UKLUG 2012 – Cardiff, Wales Installation • 2 ways to install: • Download from OpenNTF and copy to your application • Use the OpenNTF Import/ export tool
  • 27. UKLUG 2012 – Cardiff, Wales Installation • Add the ccDebugToolbar custom control to your XPage • Add the (dBar) managed bean • (optionally) Change the default settings using custom control properties • collapseTo • defaultCollapsed • color
  • 28. UKLUG 2012 – Cardiff, Wales Components ccDebugToolbar Custom control xpDebugToolbar SSJS library eu.linqed.debugtoolbar.DebugToolbar Java class eu.linqed.debugtoolbar.Message Java class debugToolbarConsole XPage optional debugToolbarErrorPage XPage optional dBar Managed bean Events View OpenLog integration Event Form OpenLog integration
  • 29. UKLUG 2012 – Cardiff, Wales Scope contents • Shows contents of • applicationScope • sessionScope • viewScope • requestScope • Remove a variable • Or clean an entire scope • Modify values through the Inspector
  • 30. UKLUG 2012 – Cardiff, Wales Environment variables • Information about the current: • User • Browser • Server • Database • Request • Java heap size • Maximum heap size • Allocated • Used • Free
  • 31. UKLUG 2012 – Cardiff, Wales Inspector • View classes for controls on the current page • And change them • View any variable: • Scoped variables • Managed beans • Any XPage runtime object • Drill-down to see what value/ object is returned
  • 32. UKLUG 2012 – Cardiff, Wales Messages • Alternative to print() or _dump() functions • No server console access needed • Your messages only • Makes your admin happy  • Add messages using: dBar.debug( “message” ); dBar.info( “message”); dBar.warn( “message” ); dBar.error( “message” ); dBar.dump( <object> );
  • 33. UKLUG 2012 – Cardiff, Wales Messages • Specify a context: dBar.info( “message”, “context” ); • dBar.error() function accepts ‘error’ objects: try { var doc:NotesDocument = null; var id = doc.getUniversalID(); } catch (e) { dBar.error(e); } • Add a divider to the messages list: dBar.addDivider();
  • 34. UKLUG 2012 – Cardiff, Wales Messages • Add debug messages from Java: DebugToolbar.get().info( “message” ); DebugToolbar.get().warn( “message” ); • Or catch an Exception • DebugToolbar.get().error( e );
  • 35. UKLUG 2012 – Cardiff, Wales Log messages to documents • Create documents for all dBar calls • All required code already built-in • Uses the OpenLog (form/fields) format • Use the OpenLog database to view them • Log level can be set: log only messages with a certain log level (or ‘higher’) • warn = warn + error • debug = debug + info + warn + error
  • 36. UKLUG 2012 – Cardiff, Wales Log messages to documents • Configure using managed properties • logDbPath current, logdb.nsf • logEnabled true, false • logLevel debug, info, warn, error • Logging will continue even if the toolbar isn’t displayed
  • 37. UKLUG 2012 – Cardiff, Wales Best practices • Add [debug] role to the ACL • Set loaded property of the ccDebugToolbar only for [debug] role: loaded=“#,javascript:context.getUser().getRoles().contains(‘*debug’+-” • Enable logging to documents (errors/ warnings only) logLevel = “warn” • No design changes needed when moving to production
  • 38. UKLUG 2012 – Cardiff, Wales Resources • XPage Debug Toolbar on OpenNTF & GitHub http://www.openntf.org/internal/home.nsf/project.xsp?action=ope nDocument&name=XPage%20Debug%20Toolbar https://github.com/markleusink/XpageDebugToolbar • OpenNTF Import/ export tool http://www.openntf.org/internal/home.nsf/project.xsp?action=ope nDocument&name=Import%20and%20Export%20for%20Designer • Xpages OpenLog Logger http://www.openntf.org/internal/home.nsf/project.xsp?action=ope nDocument&name=XPages%20OpenLog%20Logger • OpenLog http://www.openntf.org/internal/home.nsf/project.xsp?action=ope nDocument&name=OpenLog
  • 39. UKLUG 2012 – Cardiff, Wales Thank you ! • Twitter: markleusink • Skype: mark_leusink • Blog: http://linqed.eu • Email: m.leusink@linqed.eu • http://www.bootstrap4xpages.com