Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Beyond Domino Designer

Paul Withers
Intec Systems Ltd

September
Paul Withers
• XPages Developer since 2009
• IBM Champion
• Author of XPages Extension
Library
• Co-Developer of OpenNTF
D...
Agenda
• Automatic Documentation
• Eclipse
• Modeling
• Plugin Development
• Java Agent Debugging
• SourceTree
• Perforce ...
Automated Documentation
• No such thing as a free lunch
• But Javadocs can make life easier
• HTML-based navigable package...
What To Document?
• Document parameters and return values
• Add links to other classes
• Mark deprecated classes
• Add ver...
OpenLog Example
Source
How to Write
• http://www.oracle.com/technetwork/java/jav
ase/documentation/index-137868.html
• @author, @version, @since
...
How to Generate
• Requires Java JDK
• http://www.oracle.com/technetwork/java/
javasebusiness/downloads/java-archivedownloa...
How to Generate
• Put Javadoc in root
• Run As > Ant Build…

• Point to JDK
Javadoc.xml
• destdir – where to output files
• packagenames – packages to generate
• sourcepath – path file of packages
•...
How to write javadoc.xml
• http://ant.apache.org/manual/Tasks/javado
c.html
• access = private / public / protected –
whic...
Agenda
• Automatic Documentation
• Eclipse
• Modeling
• Plugin Development
• Java Agent Debugging
• SourceTree
• Perforce ...
Why Eclipse?
• Domino Designer built on Eclipse 3.4.2
• Mature Java development platform
• Plugin development platform
• P...
Why Not Just DDE?
Download Eclipse 4.3.1 (Kepler)
• http://www.eclipse.org/downloads
Eclipse Marketplace
• Eclipse Modeling Tools
• MercurialEclipse 2.1
• EGit – Git Team Provider 3.1.0
Graphical Modeling Framework Tooling
• Allows visual creation of design
Model Your Application Visually
• Classes
• Enums
• Relationships
• Inheritance
• Properties and datatypes
• Methods, para...
Example
Creating an Ecore Model
• Create > New > Empty EMF Project
• Create new Ecore Model in model folder
• Set values for root ...
Generating Code
• Right-click .ecore and select New > Other >
EMF Generator Model
• .ecore needs to be valid
• Attributes ...
Agenda
• Automatic Documentation
• Eclipse
• Modeling
• Plugin Development
• Java Agent Debugging
• SourceTree
• Perforce ...
Plugin Development
• XPages SDK
• http://www.openntf.org/Internal/home.nsf/proje
ct.xsp?action=openDocument&name=XPages
%2...
Setting up Environment
XPages Starter Kit
• Blank packages for
all possible plugins
• Rename packages
• Update any string
references to names
• R...
Structure of Plugins
• Plugin project holds your code
• Feature project groups plugins
• Update Site manages deployment of...
To See More…
• Check out OpenNTF Projects
• XPages OpenLog Logger
• OpenNTF Domino API
• OpenNTF Essentials
• XPages Exten...
Agenda
• Automatic Documentation
• Eclipse
• Modeling
• Plugin Development
• Java Agent Debugging
• SourceTree
• Perforce ...
Java Agent Debugging Environment
• Java Agents can be debugged in Eclipse
• Create > New > Java Project
• Select JRE
• Alr...
Project Code
Project Code
Debug Configuration
Agenda
• Automatic Documentation
• Eclipse
• Modeling
• Plugin Development
• Java Agent Debugging
• SourceTree
• Perforce ...
Atlassian SourceTree
• http://www.sourcetreeapp.com/
• Git / Mercurial client for Windows and Mac
• Integrates with BitBuc...
Atlassian SourceTree
Easy Processing
• Use buttons or Terminal
Setting Up Repository
• Create repository in DSCM
• Clone the repository
• Create folder structure in Windows
Explorer (to...
Setting up Git-Flow / Hg-Flow
• Commit to DSCM
• Repository > Git Flow >
Initialise Repository
• Branches automatically
cr...
Agenda
• Automatic Documentation
• Eclipse
• Modeling
• Plugin Development
• Java Agent Debugging
• SourceTree
• Perforce ...
Perforce P4Merge
• http://www.perforce.com/product/compone
nts/perforce-visual-merge-and-diff-tools
• Merge conflicts happ...
Perforce P4Merge
• After install, set up link in Tools > Options
Perforce P4Merge
Merging Conflicts
• Make change to design element
• Save and close P4Merge
• Process next
• Once all complete, Commit the ...
More on Source Control?
• Source Control 101 : Implementing An
End-To-End Solution
• IBM Connect 2014 Show and Tell
• So e...
Thank You
• Paul Withers
• pwithers@intec.co.uk
• http://www.intec.co.uk/blog
• @paulswithers
Upcoming SlideShare
Loading in …5
×

Beyond Domino Designer

1,651 views

Published on

Presentation on JavaDocs, EMF, Plugin development, Java agent debugging, SourceTree and Perforce P4Merge at DanNotes November 2013

Published in: Technology, Education
  • Be the first to comment

Beyond Domino Designer

  1. 1. Beyond Domino Designer Paul Withers Intec Systems Ltd September
  2. 2. Paul Withers • XPages Developer since 2009 • IBM Champion • Author of XPages Extension Library • Co-Developer of OpenNTF Domino API • Developed OSGi plugins for OpenNTF
  3. 3. Agenda • Automatic Documentation • Eclipse • Modeling • Plugin Development • Java Agent Debugging • SourceTree • Perforce P4Merge
  4. 4. Automated Documentation • No such thing as a free lunch • But Javadocs can make life easier • HTML-based navigable package details • Add <br/> to force line breaks • Use <ul> and <ol> for lists • Use <pre> for code samples
  5. 5. What To Document? • Document parameters and return values • Add links to other classes • Mark deprecated classes • Add version comments • Make it easier for other developers to consume your code • Include examples
  6. 6. OpenLog Example
  7. 7. Source
  8. 8. How to Write • http://www.oracle.com/technetwork/java/jav ase/documentation/index-137868.html • @author, @version, @since • @param, @return, @throws • {@link class#method()} for links • Enter HTML to format comments • Ctrl + Shift + J to autogenerate comment blocks
  9. 9. How to Generate • Requires Java JDK • http://www.oracle.com/technetwork/java/ javasebusiness/downloads/java-archivedownloads-javase6-419409.html#jdk6u45-oth-JPR • Doesn’t attempt to install Ask Toolbar! • Download and install
  10. 10. How to Generate • Put Javadoc in root • Run As > Ant Build… • Point to JDK
  11. 11. Javadoc.xml • destdir – where to output files • packagenames – packages to generate • sourcepath – path file of packages • stylesheetfile – path to stylesheet
  12. 12. How to write javadoc.xml • http://ant.apache.org/manual/Tasks/javado c.html • access = private / public / protected – which classes and members to show • use – create class and package usage pages • doctitle, windowtitle – titles
  13. 13. Agenda • Automatic Documentation • Eclipse • Modeling • Plugin Development • Java Agent Debugging • SourceTree • Perforce P4Merge
  14. 14. Why Eclipse? • Domino Designer built on Eclipse 3.4.2 • Mature Java development platform • Plugin development platform • Pluggable development platform
  15. 15. Why Not Just DDE?
  16. 16. Download Eclipse 4.3.1 (Kepler) • http://www.eclipse.org/downloads
  17. 17. Eclipse Marketplace • Eclipse Modeling Tools • MercurialEclipse 2.1 • EGit – Git Team Provider 3.1.0
  18. 18. Graphical Modeling Framework Tooling • Allows visual creation of design
  19. 19. Model Your Application Visually • Classes • Enums • Relationships • Inheritance • Properties and datatypes • Methods, parameters and return types • Generate model code • Datatypes will require changes
  20. 20. Example
  21. 21. Creating an Ecore Model • Create > New > Empty EMF Project • Create new Ecore Model in model folder • Set values for root element • Right-click .ecore and select Initialize Ecore Diagram File… • Create diagram
  22. 22. Generating Code • Right-click .ecore and select New > Other > EMF Generator Model • .ecore needs to be valid • Attributes need types etc. • Open .genmodel • Right-click top-level and select Generate Model Code • Refresh and validate .ecore after changes
  23. 23. Agenda • Automatic Documentation • Eclipse • Modeling • Plugin Development • Java Agent Debugging • SourceTree • Perforce P4Merge
  24. 24. Plugin Development • XPages SDK • http://www.openntf.org/Internal/home.nsf/proje ct.xsp?action=openDocument&name=XPages %20SDK%20for%20Eclipse%20RCP • Also set up for Java agent debugging • XPages Starter Kit • http://www.openntf.org/Internal/home.nsf/proje ct.xsp?action=openDocument&name=XSP%2 0Starter%20Kit
  25. 25. Setting up Environment
  26. 26. XPages Starter Kit • Blank packages for all possible plugins • Rename packages • Update any string references to names • Remove what’s not required • Build
  27. 27. Structure of Plugins • Plugin project holds your code • Feature project groups plugins • Update Site manages deployment of one or more features
  28. 28. To See More… • Check out OpenNTF Projects • XPages OpenLog Logger • OpenNTF Domino API • OpenNTF Essentials • XPages Extension Library / SBT • Not just OSGi plugins • File Navigator, Wildfire • Some changes between 8.0.x and 8.5.1
  29. 29. Agenda • Automatic Documentation • Eclipse • Modeling • Plugin Development • Java Agent Debugging • SourceTree • Perforce P4Merge
  30. 30. Java Agent Debugging Environment • Java Agents can be debugged in Eclipse • Create > New > Java Project • Select JRE • Already set up by XPages SDK • Add Agent Code and breakpoint • Create Debug Configuration for Java Application • Run As > Java > Application • Also can test Java code in plugins
  31. 31. Project Code
  32. 32. Project Code
  33. 33. Debug Configuration
  34. 34. Agenda • Automatic Documentation • Eclipse • Modeling • Plugin Development • Java Agent Debugging • SourceTree • Perforce P4Merge
  35. 35. Atlassian SourceTree • http://www.sourcetreeapp.com/ • Git / Mercurial client for Windows and Mac • Integrates with BitBucket, Stash and GitHub • GitFlow / HgFlow built in • Can’t currently “group” repositories • FREE, FREE, FREE
  36. 36. Atlassian SourceTree
  37. 37. Easy Processing • Use buttons or Terminal
  38. 38. Setting Up Repository • Create repository in DSCM • Clone the repository • Create folder structure in Windows Explorer (to avoid .git file syncing to NSF) • Create NSF • Team > Set up Source Control for this Application • Create ODP in folder of repository
  39. 39. Setting up Git-Flow / Hg-Flow • Commit to DSCM • Repository > Git Flow > Initialise Repository • Branches automatically created • Start feature, release, hotfix • Hotfixes automatically merged into branches
  40. 40. Agenda • Automatic Documentation • Eclipse • Modeling • Plugin Development • Java Agent Debugging • SourceTree • Perforce P4Merge
  41. 41. Perforce P4Merge • http://www.perforce.com/product/compone nts/perforce-visual-merge-and-diff-tools • Merge conflicts happen • Consolidating from text file is not easy • Visual tool to compare • Integrates with SourceTree • Right-click > Resolve Conflicts > Launch External Merge Tool
  42. 42. Perforce P4Merge • After install, set up link in Tools > Options
  43. 43. Perforce P4Merge
  44. 44. Merging Conflicts • Make change to design element • Save and close P4Merge • Process next • Once all complete, Commit the merge • Remove the .orig files • You don’t want them in your NSF
  45. 45. More on Source Control? • Source Control 101 : Implementing An End-To-End Solution • IBM Connect 2014 Show and Tell • So every step we do will have slides • Setting up Stash / JIRA • Setting up Redmine • Bitbucket / GitHub overview • SourceTree and Perforce P4Merge • Full examples of Git flow / Hg Flow
  46. 46. Thank You • Paul Withers • pwithers@intec.co.uk • http://www.intec.co.uk/blog • @paulswithers

×