+ All Categories
Home > Documents > Bccon use notes objects in memory and other useful

Bccon use notes objects in memory and other useful

Date post: 21-Dec-2014
Category:
Upload: frank-van-der-linden
View: 78 times
Download: 0 times
Share this document with a friend
Description:
Use Notes Objects in Java and more Java tips
Popular Tags:
37
Use Notes objects in memory and other useful Java tips for XPages development Frank van der Linden
Transcript
Page 1: Bccon   use notes objects in memory and other useful

Use Notes objects in memory and other useful Java tips for

XPages developmentFrank van der Linden

Page 2: Bccon   use notes objects in memory and other useful

Me

• Java/XPages/Web/Domino developer• Self employed at elstar IT• OpenNTF director• Speak at several national and international

events• IBM Champion 2013 and 2014• Live in the Netherlands• Work everywhere

@flinden68

http://www.elstarit.nl

http://nl.linkedin.com/in/flinden68

[email protected]

Page 3: Bccon   use notes objects in memory and other useful

Disclaimer

All the code and the demos in this session will use the Java Notes Objects which are part of the IBM/Lotus Notes product.For a modern way of Java coding with Notes Objects please use the OpenNTF Domino API.Or even better use OpenNTF essentials

Page 4: Bccon   use notes objects in memory and other useful

Roadmap

• Notes objects in memory• Use of JSON• MVC/Managed beans• Java tip for XPages

• Date checks• Utility class• Extending classes• Unit test• Finally

• Some bonus code

Page 5: Bccon   use notes objects in memory and other useful

Notes objects in memory

Page 6: Bccon   use notes objects in memory and other useful

Bad practice

• Notes objects are not serializable• Will not recycled the Java way, it will keep a pointer to the C object• Can cause out of memory

Page 7: Bccon   use notes objects in memory and other useful

What is serialization

Page 8: Bccon   use notes objects in memory and other useful

XPages Java doc to the rescue

Page 9: Bccon   use notes objects in memory and other useful

Put Notes document in memory

• Get Notesdocument

• Wrap Notesdocument into a DominoDocument

Page 10: Bccon   use notes objects in memory and other useful

Get field values

• First check if document isRecycled

• Access field

Page 11: Bccon   use notes objects in memory and other useful

On a XPage and more

• In a computed field

• In an edit box

• Update the backend document

Page 12: Bccon   use notes objects in memory and other useful

Demo

Page 13: Bccon   use notes objects in memory and other useful

What about attachments

• Get easy access to your attachments

Page 14: Bccon   use notes objects in memory and other useful

What about attachments

• No calculation of paths• Works both in XPinc and Web

• Call the attachment URL

Page 15: Bccon   use notes objects in memory and other useful

Demo

Page 16: Bccon   use notes objects in memory and other useful

Use build-in JSON classes

Page 17: Bccon   use notes objects in memory and other useful

JSON building classes

• Part of the Extensibility API, since 8.5.2• Easy way to build JSON

Page 18: Bccon   use notes objects in memory and other useful

JSON building classes

• No concatenation of Strings• Faster• Readable code

Page 19: Bccon   use notes objects in memory and other useful

MVC

Page 20: Bccon   use notes objects in memory and other useful

MVC

Page 21: Bccon   use notes objects in memory and other useful

MVC for XPages

• Separation of responsibility• Cleaner code• Easier to maintain

• Model = documents• View = XPage• Controller = Java managed bean

Page 22: Bccon   use notes objects in memory and other useful

Managed beans

Page 23: Bccon   use notes objects in memory and other useful

The requirements

• Needs to be Serializable• At least one constructor without parameters• Needs to be registrated in the Faces-config.xml• Properties are private • And have Getters and Setters

Page 24: Bccon   use notes objects in memory and other useful

Faces-config.xml syntax

• In package-explorer, under WebContent WEB-INF• Name of the bean• Full qualified class name• Scope of the bean• Optional, initialize properties

Page 25: Bccon   use notes objects in memory and other useful

Use the managed beans

• Do the calculation in the class• Use Expression Language to access properties• Minimize use of SSJS• Some examples

Page 26: Bccon   use notes objects in memory and other useful

Java tips for XPages

Page 27: Bccon   use notes objects in memory and other useful

Utility class

• All kind of methods• Always available as static class• I added some methods who were translated

from SSJS

Page 28: Bccon   use notes objects in memory and other useful

Date checks

• Remember the TimeDifference horror• Java provide nice Date checks• Like… Date.before(Date) or Date.after(Date)

Page 29: Bccon   use notes objects in memory and other useful

Extending a class

• Extend a base class• Use the methods of the base class

Page 30: Bccon   use notes objects in memory and other useful

Extending a class

• Using the class

• In a XPage

Page 31: Bccon   use notes objects in memory and other useful

Unit test

• Write code to test small portions of code, like methods• Test if the code is doing what was intended• Write better Java code• Use Mock Framework, like EasyMock or Mockito, to simulate objects

Page 32: Bccon   use notes objects in memory and other useful

Unit test for XPages

• More and more Java code in XPages development• Write Unit test for better code• On OpenNTF Junit test for Xpages project (thanks Christian Guedemann)

Page 33: Bccon   use notes objects in memory and other useful

And Finally

• Finally will always called, even after a catch• Use it to recycle objects and close stream readers

Page 34: Bccon   use notes objects in memory and other useful

Thank you

@flinden68

http://www.elstarit.nl

http://nl.linkedin.com/in/flinden68

[email protected]

https://bitbucket.org/flinden68/bccon-java-demo/src

Page 35: Bccon   use notes objects in memory and other useful

Bonus

Page 36: Bccon   use notes objects in memory and other useful

Eventsource

Page 37: Bccon   use notes objects in memory and other useful

Customizable Toolbar


Recommended