Your SlideShare is downloading. ×
0
The XSP Starter KitStephan H. Wissel | NotesSensei | IBM© 2012 IBM Corporation
AgendaWhat is itInstallationModule overview                  2 |   © 2012 IBM Corporation
About Me           IBM Collaboration & Productivity Advisor           Counsellor for personcentric development           I...
About You*             Develop software               (or need to know about it)             Have a Java background       ...
Really about youThis session                   5 |   © 2012 IBM Corporation
XPage application development                                6 |   © 2012 IBM Corporation
XSP Starter Kit                  7 |   © 2012 IBM Corporation
AgendaWhat is itInstallationModule overview                  8 |   © 2012 IBM Corporation
Work in progressNew releases coming oftenRough edgesEclipse experience required                              9 |   © 2012 ...
Global ArchitectureSupports both the Domino server and the  rich clientSupports the data and the design elements  replicat...
J2EE Artifacts           C li e n t R e q u e s t                                                D o m in o H T T P S e rv...
XPages Architecture – 8.5.2++Both the Domino server and the Notes client are deployed as OSGi bundles  The same extension ...
JSF Processing Model    http://www.ibm.com/developerworks/java/library/j-jsf2/                                            ...
What you needhttp://eclipse.org    Eclipse (current version is Indigo 3.7)http://openntf.org                              ...
What you read    The “Classic”   Just released   Coming soon                                              15 |   © 2012 IB...
AgendaWhat is itInstallationModule overview                  16 |   © 2012 IBM Corporation
InstallationExtract Eclipse version to disk                                  17 |   © 2012 IBM Corporation
Configure EclipseEdit eclipse.ini:     From: -Xms40m -Xmx512m     To: -Xms512m -Xmx1024mStart Eclipse, select workspace   ...
Add Plug-insUnzip com.ibm.domino.osgi.debug.site.zip from   “IBM Domino Debug Plugin build.zip”Help – Install new Software...
Add Plug-insReboot after install                       20 |   © 2012 IBM Corporation
Configure Target PlatformOne for Notes, one for Domino                                21 |   © 2012 IBM Corporation
Configure Domino Debug setup2 settings needed   OSGi Debug to make plug-in available   Remote Java to actually debug   Rem...
Debug configuration                      23 |   © 2012 IBM Corporation
Debug configuration                      24 |   © 2012 IBM Corporation
JavaDoc for XSPwww.ibmpressbooks.com/title/9780132486316/XPages_JavaDoc_852.zipJavaDoc from ExtLib                        ...
Even more debug configuration!Add to Notes.ini: JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket, server=y,suspend=n...
Create the projectFile – New – Plug-in Project                               27 |   © 2012 IBM Corporation
Creating a libraryFile – New – Other – XSP SDK – XPages Library                                                28 |   © 20...
Wouldnt it be niceif you dont have tostart from scratch?                       29 |   © 2012 IBM Corporation
AgendaWhat is itInstallationModule overview                  30 |   © 2012 IBM Corporation
ModulesApplicationBeansComponentsContextExpression LanguageLiveCycleListenersRenderKitResolverResourcesServletSSJS        ...
ApplicationThe “god” objects                    32 |   © 2012 IBM Corporation
BeansAlternative to SSJS stored in a scopeJava classes with an empty constructorMethod pairs with get/set   public String ...
ComponentsThe core of UI experienceCreate new tags (JSP tags)“Knows” properties and how to save/restore themDelegates rend...
Renderer & RenderkitRenderkit is a collection of RenderersProblem of potentially leaking implementation                   ...
ContextInterface from JSF to J2EE servlet implementationCustom application wide actions (e.g. request logging)Filters go t...
Expression LanguageXPages uses javascript: as additional bindingMethod and Value binding allow to implement additional lan...
LiveCycleIntercept and extend the standard lifecycle.Interesting for custom phase listeners                               ...
ListenersReact on events in the application live cycle: creation and deletion of “things”Application start/stopContext (ru...
ResolverIntercept when variables or properties get resolvede.g add other language bindings than javascript:               ...
ResourcesAnything that is “static” addressable via an URLLives under .ibmxspresIdeas:   Images that render based on device...
ServletBypass the JSF rendering completelyProvide their own URLe.g. DominoWebDAVServlet configuration required            ...
SSJSProvide system wide JavaScript librariesWould be a good place for common.jsDefine new system wide global objects      ...
44 |   © 2012 IBM Corporation
Thank you!FILL IN YOUR SESSION               EVALUATIONS*                            45 |   © 2012 IBM Corporation        ...
Legal disclaimer © IBM Corporation 2012. All Rights Reserved. The information contained in this publication is provided fo...
Upcoming SlideShare
Loading in...5
×

The xsp starter kit

53,889

Published on

Getting started to write your own OSGi extension library for IBM XPages

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
53,889
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "The xsp starter kit"

  1. 1. The XSP Starter KitStephan H. Wissel | NotesSensei | IBM© 2012 IBM Corporation
  2. 2. AgendaWhat is itInstallationModule overview 2 | © 2012 IBM Corporation
  3. 3. About Me IBM Collaboration & Productivity Advisor Counsellor for personcentric development IBM Singapore Pte Ltd Blog: http://www.wissel.net/ Twitter: notessensei Google: http://www.wissel.net/+ Lotus Notes since 2.1 Favorite motorbike: Moto Guzzi Le Mans Speaks Singlish with a German accent 3 | © 2012 IBM Corporation
  4. 4. About You* Develop software (or need to know about it) Have a Java background (or heard about it) Want to advance XPages development (or let develop) Love Code deep dives (your dogs name is Eclipse) Just are a fan (welcome back) * 2 out of 5 qualify you 4 | © 2012 IBM Corporation
  5. 5. Really about youThis session 5 | © 2012 IBM Corporation
  6. 6. XPage application development 6 | © 2012 IBM Corporation
  7. 7. XSP Starter Kit 7 | © 2012 IBM Corporation
  8. 8. AgendaWhat is itInstallationModule overview 8 | © 2012 IBM Corporation
  9. 9. Work in progressNew releases coming oftenRough edgesEclipse experience required 9 | © 2012 IBM Corporation
  10. 10. Global ArchitectureSupports both the Domino server and the rich clientSupports the data and the design elements replication Domino Server Notes Client The runtime directly reads from the NSF Domino Designer in Eclipse NSF files NSF replication Eclipse Workspace Eclipse directly reads/writes to the NSF thanks to a custom EFS 10 | © 2012 IBM Corporation
  11. 11. J2EE Artifacts C li e n t R e q u e s t D o m in o H T T P S e rv e r X P a g e s S e r v le t E n g i n e 2 . 4 s e r v le t e n g i n e V i r t u a l J 2 E E m o d u le s N o W A R d e p lo y m e n t re q u ire d T h e s e r v e r d ir e c tly r e a d s th e d e s ig n e le m e n ts fr o m th e N S F d a ta b a s e N S F d a ta b a s e c o n ta in in g th e d e s ig n e le m e n t s & t h e d a t a 11 | © 2012 IBM Corporation
  12. 12. XPages Architecture – 8.5.2++Both the Domino server and the Notes client are deployed as OSGi bundles The same extension mechanism is used in both platforms; extensions are provided as OSGi bundles. NSF Applications NSF Applications XPages Extensions OSGi bundles XPages Extensions OSGi bundles XPD Profile XPages XPD Profile XPages Runtime +Web Runtime Container OSGi Runtime OSGi Runtime Domino HTTP Task Notes Client Process Domino Server Notes Client | © 2012 IBM Corporation 12
  13. 13. JSF Processing Model http://www.ibm.com/developerworks/java/library/j-jsf2/ 13 | © 2012 IBM Corporation
  14. 14. What you needhttp://eclipse.org Eclipse (current version is Indigo 3.7)http://openntf.org Works on Mac/Linux too! XPages SDK for Eclipse RCP (Nathan Freeman, GBS) XPages Starterkit (Nathan Freeman, GBS) Domino Debug Plug-in (David Taieb, IBM)http://ibm.com Domino Designer Domino serverOracle JSF Know-How 14 | © 2012 IBM Corporation
  15. 15. What you read The “Classic” Just released Coming soon 15 | © 2012 IBM Corporation
  16. 16. AgendaWhat is itInstallationModule overview 16 | © 2012 IBM Corporation
  17. 17. InstallationExtract Eclipse version to disk 17 | © 2012 IBM Corporation
  18. 18. Configure EclipseEdit eclipse.ini: From: -Xms40m -Xmx512m To: -Xms512m -Xmx1024mStart Eclipse, select workspace 18 | © 2012 IBM Corporation
  19. 19. Add Plug-insUnzip com.ibm.domino.osgi.debug.site.zip from “IBM Domino Debug Plugin build.zip”Help – Install new SoftwareAdd new sites - com.ibm.domino.osgi.debug.site.zip- org.openntf.xsp.sdk.update.zipUncheck: Group by category 19 | © 2012 IBM Corporation
  20. 20. Add Plug-insReboot after install 20 | © 2012 IBM Corporation
  21. 21. Configure Target PlatformOne for Notes, one for Domino 21 | © 2012 IBM Corporation
  22. 22. Configure Domino Debug setup2 settings needed OSGi Debug to make plug-in available Remote Java to actually debug Remote SSJS is futureCreate new OSGi Debug configurationDetails in Plug-in documentation 22 | © 2012 IBM Corporation
  23. 23. Debug configuration 23 | © 2012 IBM Corporation
  24. 24. Debug configuration 24 | © 2012 IBM Corporation
  25. 25. JavaDoc for XSPwww.ibmpressbooks.com/title/9780132486316/XPages_JavaDoc_852.zipJavaDoc from ExtLib 25 | © 2012 IBM Corporation
  26. 26. Even more debug configuration!Add to Notes.ini: JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket, server=y,suspend=n,address=8000Eclipse parameter need to match 26 | © 2012 IBM Corporation
  27. 27. Create the projectFile – New – Plug-in Project 27 | © 2012 IBM Corporation
  28. 28. Creating a libraryFile – New – Other – XSP SDK – XPages Library 28 | © 2012 IBM Corporation
  29. 29. Wouldnt it be niceif you dont have tostart from scratch? 29 | © 2012 IBM Corporation
  30. 30. AgendaWhat is itInstallationModule overview 30 | © 2012 IBM Corporation
  31. 31. ModulesApplicationBeansComponentsContextExpression LanguageLiveCycleListenersRenderKitResolverResourcesServletSSJS 31 | © 2012 IBM Corporation
  32. 32. ApplicationThe “god” objects 32 | © 2012 IBM Corporation
  33. 33. BeansAlternative to SSJS stored in a scopeJava classes with an empty constructorMethod pairs with get/set public String getApprover() { … } public void setApprover(String newApprover) { …. }Very usable in Expression language (EL) #{beanName.approver}Starter kit adds sample for “Server context” - not available in SSJS! | © 2012 IBM Corporation
  34. 34. ComponentsThe core of UI experienceCreate new tags (JSP tags)“Knows” properties and how to save/restore themDelegates rendering to a Renderer | © 2012 IBM Corporation
  35. 35. Renderer & RenderkitRenderkit is a collection of RenderersProblem of potentially leaking implementation | © 2012 IBM Corporation
  36. 36. ContextInterface from JSF to J2EE servlet implementationCustom application wide actions (e.g. request logging)Filters go there | © 2012 IBM Corporation
  37. 37. Expression LanguageXPages uses javascript: as additional bindingMethod and Value binding allow to implement additional language bindings. A few ideas: Jython LUA Rhino Direct Java calls Lolcode | © 2012 IBM Corporation
  38. 38. LiveCycleIntercept and extend the standard lifecycle.Interesting for custom phase listeners | © 2012 IBM Corporation
  39. 39. ListenersReact on events in the application live cycle: creation and deletion of “things”Application start/stopContext (runs always on a request)Phase (JSF processing model! - not all phases need to run)Session (finally the “when has he logged out” question answered)Value changed (back-end of course!) | © 2012 IBM Corporation
  40. 40. ResolverIntercept when variables or properties get resolvede.g add other language bindings than javascript: | © 2012 IBM Corporation
  41. 41. ResourcesAnything that is “static” addressable via an URLLives under .ibmxspresIdeas: Images that render based on device or network (yes the IP address would give it away when you are mobile) Variations of documents based on a user role Additional JavaScript libraries (Im waiting for jquery) | © 2012 IBM Corporation
  42. 42. ServletBypass the JSF rendering completelyProvide their own URLe.g. DominoWebDAVServlet configuration required | © 2012 IBM Corporation
  43. 43. SSJSProvide system wide JavaScript librariesWould be a good place for common.jsDefine new system wide global objects | © 2012 IBM Corporation
  44. 44. 44 | © 2012 IBM Corporation
  45. 45. Thank you!FILL IN YOUR SESSION EVALUATIONS* 45 | © 2012 IBM Corporation * or a kitten must die!
  46. 46. Legal disclaimer © IBM Corporation 2012. All Rights Reserved. The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the users job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. : All references to a fictitious company refer to a fictitious company and are used for illustration purposes only. 46 | © 2012 IBM Corporation
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×