SlideShare a Scribd company logo
1 of 31
Download to read offline
1 
Coffee from a Friend: 
Using Third Party Java Libraries 
2014/03/18 –Matthew Fyleman
2 
Matthew Fyleman 
21 Years as a Notes/Domino Developer 
Mostly Working on: 
Xpages conversions 
Product development 
Who Am I?
3 
Based on My Experiences 
Beginner Level! 
Using Java Generally in XPages 
Will focus on .jar files, but will look at other ways of incorporating Java 
What to use when 
What is this Talk About?
4 
Why Java? 
Advantages over SSJS 
Java Options 
Prepackaged Options 
.jars packaged into Extension Libraries 
OpenNTF.org 
Apache POI Example 
Raw Libraries 
Deploying 
Incorporation 
Security 
Creating .jars 
Questions 
What am I talking about?
5 
It has a better structure than ssjs 
 Strongly typed 
 Object Oriented from the ground up 
It‘s a very useful skill 
 Widely used outside Notes/Domino 
 Encourages better programming practise 
Why Java? – 1. The basics
6 
<<Demonstration>> 
Why Java? – 2. Its Faster than SSJS 
But not as much as youmight think!
7 
See also Stephan Wissel‘sblog post: 
http://www.wissel.net/blog/d6plinks/SHWL-8SLCVR 
Why Java? –3. Its Easier to Debug
8 
Why Java? –4. There are Lots of 3rd Party Libraries 
Adobe Acrobat (PDF) Manipulation 
Word and Excel Creation and Modification 
XML parsing 
... Many more 
If you need it, there is probably a Java library out there 
Tested and stable (relatively!)
9 
Raw Java 
You’re already doing this! 
Java Class Files 
Better for development 
.jars provide obfuscation 
.jars are easily portable –write once use anywhere 
Managed Beans 
Much easier to create than you might think 
Automatically work within a scope 
.jar Files 
Java Options
10 
Almost certainly done this already: 
varvecThis= new java.util.Vector(); 
Can Import Packages 
importPackage(java.util); 
varvecThis= new Vector(); 
Can be a disadvantage, particularly for beginners! 
Java Options –Raw Java
11 
Easy to create 
In the code section under Java 
Create new java class 
Java Options –Class Files
12 
Need to generate constructor? 
Under the source menu 
Generate Constructor using ... 
Getters and Setters? 
Same menu 
Correct indentation? 
Same menu 
Java Options –Getting Help From Eclipse
13 
Rules for Managed Beans 
If you have a constructor, it must be parameterless 
Fields in your class are only publically accessible through getters and setters 
To support persistence it should implement the Serializableinterface 
It needs an entry in the faces-config.xml file 
See Per Laustenspage ‘Creating Your First managed bean for Xpages’ 
http://per.lausten.dk/blog/2012/02/creating-your-first- managed-bean-for-xpages.html 
Java Options –Managed Beans
14 
You are probably not the first! 
Check OpenNTF.org 
Pre-Packaged into an Extension Library 
Easy to Use 
Documentation (?) 
Once ext lib installed, no security settings to think about 
Pre-Packaged Options
15 
Demonstration 
Pre-Packaged Options
16 
Not Always Available 
Extension Libraries need to be deployed to the server! 
What can you do if this is not an option? 
Pre-Packaged Options -Issues
17 
This was the situation I found myself in on a recent project 
Customer needed .docxfile manipulation 
Customer would not permit third party deployment to the server 
Deployed the POI Libswithin my Application 
No Deployment to the Server (technically speaking!) 
Simple 
Still had access to the Functionality 
Use the Library ‘RAW‘
18 
Three Options: 
1.Deploy to the server file system 
Non-starter 
2.Deploy under WEB-INF 
Better but only use if you are 8.5.2 or lower 
3.Deploy to jar area under ‘code‘ 
Best option 
Deployment Options
19 
Java Libraries for manipulating Microsoft Word and Excel files 
Open Source 
Main library is poi-3.9-20121203.jar 
But you will need others particularly if you wish to work on docxand xlsx 
dom4j-1.6.1.jar 
stax-api-1.0.1.jar 
xmlbeans-2.3.0.jar 
Apache POI Project
20 
To create an Excel spreadsheet using POI, have your code perform the following steps: 
Create a workbook object: 
varxl=new org.apache.poi.hssf.usermodel.HSSFWorkbook(); 
Add a sheet to the workbook: 
varsheet = xl.createSheet("Sheet 1"); 
Apache POI Creating a Spreadsheet
21 
Add a row to the sheet 
They start at 0 
row = sheet.createRow(rowCount++); 
Write data into cells into each row 
cell = row.createCell((java.lang.Integer)(cellCount++)); 
cell.setCellValue(document.getItemValueString(“AField”)); 
Watch out! 
Apache POI Creating a Spreadsheet
22 
Demonstration 
Deployment
23 
Sooner or later you will hit this 
Need to edit the ‘java.policy’ file 
Proper way is to database specific entry 
For Production Systems 
Doesn’t work on Domino 9 ? 
For Dev Environments You Can Cheat! 
grant { permission java.security.AllPermission; }; 
See blog post ‘Java Security in Xpages’from Stephan Wissel: 
http://www.wissel.net/blog/d6plinks/SHWL-8JYAT5 
don‘t miss Nathan Freeman‘s comment! 
Deployment -Security Issues
24 
Similar to working with Excel: 
Get the document 
Get document’s paragraphs 
Get the text runs in the paragraphs 
Search and replace in text runs 
Get the tables 
Iterate through the rows 
Iterate through the cells 
Do paragraph search and replace in each cell 
Apache POI Search and Replace in Word
25 
Java Libraries for manipulating Adobe Acrobat (pdf) documents 
Open Source –but Apache License! 
Main library is itextpdf-5.5.0.jar 
Unlike POI, this is all you need for basic PDFs 
iTextPdf
26 
Its open source so its free, right? 
Maybe, but check the license 
E.g. Apache License 
Free to use if your software is also distributed under an Apache License 
Otherwise there may be a fee for commercial use 
iText–OEM license, 125 desktops, approx. $3,000 
Deployment -License Issues
27 
Doing a lot of @Formula conversion to SSJS 
Encountering a lot of List Ops 
SSJS has no built in permutation operations 
Wanted a library of List Op utilities 
What About My Own .jars
28 
In Domino: 
Create the class files 
Test and debug 
Go to package explorer view 
File export 
Create the .jar 
Deploy into your database 
-Simple! 
My Own jar
29 
We4IT –www.we4it.com 
OpenNTF–www.openntf.org 
Ulrich Krause –www.eknori.de 
Wissel.net –Stephan Wissel‘sblog 
XpagesPortable Command Guide – 
Martin Donnelly et. al., IBM Press 
Resources and Information
30 
Questions?
31 
matthew.fyleman@we4it.com

More Related Content

What's hot

How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium SuccessfullyDave Haeffner
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium SuccessfullyDave Haeffner
 
Keyword Driven Framework using WATIR
Keyword Driven Framework using WATIRKeyword Driven Framework using WATIR
Keyword Driven Framework using WATIRNivetha Padmanaban
 
Programming best practices (PHP)
Programming best practices (PHP)Programming best practices (PHP)
Programming best practices (PHP)Clique Studios
 
Expert selenium with core java
Expert selenium with core javaExpert selenium with core java
Expert selenium with core javaIshita Arora
 
Practical Tips & Tricks for Selenium Test Automation - Dave Haeffner
Practical Tips & Tricks for Selenium Test Automation - Dave HaeffnerPractical Tips & Tricks for Selenium Test Automation - Dave Haeffner
Practical Tips & Tricks for Selenium Test Automation - Dave HaeffnerApplitools
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011hugs
 
Selenium Best Practices with Jason Huggins
Selenium Best Practices with Jason HugginsSelenium Best Practices with Jason Huggins
Selenium Best Practices with Jason HugginsSauce Labs
 
PowerShell Plus v4.7 Overview
PowerShell Plus v4.7 OverviewPowerShell Plus v4.7 Overview
PowerShell Plus v4.7 OverviewRichard Giles
 
Watir Presentation Sumanth Krishna. A
Watir Presentation   Sumanth Krishna. AWatir Presentation   Sumanth Krishna. A
Watir Presentation Sumanth Krishna. ASumanth krishna
 
Installing and setting up eclipse java projects
Installing and setting up eclipse java projectsInstalling and setting up eclipse java projects
Installing and setting up eclipse java projectshccit
 
Leaner microservices with Java 10
Leaner microservices with Java 10Leaner microservices with Java 10
Leaner microservices with Java 10Arto Santala
 
PowerShell Core Skills (TechMentor Fall 2011)
PowerShell Core Skills (TechMentor Fall 2011)PowerShell Core Skills (TechMentor Fall 2011)
PowerShell Core Skills (TechMentor Fall 2011)Concentrated Technology
 
GTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesGTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesTOPS Technologies
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, SuccessfullySauce Labs
 
Creating Drupal A Module
Creating Drupal A ModuleCreating Drupal A Module
Creating Drupal A Modulearcaneadam
 

What's hot (20)

How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
 
Power Shell For Testers
Power Shell For TestersPower Shell For Testers
Power Shell For Testers
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
 
Keyword Driven Framework using WATIR
Keyword Driven Framework using WATIRKeyword Driven Framework using WATIR
Keyword Driven Framework using WATIR
 
Foundation selenium java
Foundation selenium java Foundation selenium java
Foundation selenium java
 
Programming best practices (PHP)
Programming best practices (PHP)Programming best practices (PHP)
Programming best practices (PHP)
 
Expert selenium with core java
Expert selenium with core javaExpert selenium with core java
Expert selenium with core java
 
Bootstrap4 x pages
Bootstrap4 x pagesBootstrap4 x pages
Bootstrap4 x pages
 
Practical Tips & Tricks for Selenium Test Automation - Dave Haeffner
Practical Tips & Tricks for Selenium Test Automation - Dave HaeffnerPractical Tips & Tricks for Selenium Test Automation - Dave Haeffner
Practical Tips & Tricks for Selenium Test Automation - Dave Haeffner
 
Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011Selenium 2 - PyCon 2011
Selenium 2 - PyCon 2011
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Selenium Best Practices with Jason Huggins
Selenium Best Practices with Jason HugginsSelenium Best Practices with Jason Huggins
Selenium Best Practices with Jason Huggins
 
PowerShell Plus v4.7 Overview
PowerShell Plus v4.7 OverviewPowerShell Plus v4.7 Overview
PowerShell Plus v4.7 Overview
 
Watir Presentation Sumanth Krishna. A
Watir Presentation   Sumanth Krishna. AWatir Presentation   Sumanth Krishna. A
Watir Presentation Sumanth Krishna. A
 
Installing and setting up eclipse java projects
Installing and setting up eclipse java projectsInstalling and setting up eclipse java projects
Installing and setting up eclipse java projects
 
Leaner microservices with Java 10
Leaner microservices with Java 10Leaner microservices with Java 10
Leaner microservices with Java 10
 
PowerShell Core Skills (TechMentor Fall 2011)
PowerShell Core Skills (TechMentor Fall 2011)PowerShell Core Skills (TechMentor Fall 2011)
PowerShell Core Skills (TechMentor Fall 2011)
 
GTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesGTU Asp.net Project Training Guidelines
GTU Asp.net Project Training Guidelines
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 
Creating Drupal A Module
Creating Drupal A ModuleCreating Drupal A Module
Creating Drupal A Module
 

Similar to Icsug conf 14_dev02_xpages-coffe-from-a-friend-using-third-party-java-libraries

bccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-libraries
bccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-librariesbccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-libraries
bccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-librariesICS User Group
 
Third party libraries and OSGi - a complicated relationship
Third party libraries and OSGi - a complicated relationshipThird party libraries and OSGi - a complicated relationship
Third party libraries and OSGi - a complicated relationshipSascha Brinkmann
 
Top 10 Libraries of Java.pptx
Top 10 Libraries of Java.pptxTop 10 Libraries of Java.pptx
Top 10 Libraries of Java.pptxSudhanshiBakre1
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...Paul Withers
 
Fantastic four machine_learning_java_libraries
Fantastic four machine_learning_java_librariesFantastic four machine_learning_java_libraries
Fantastic four machine_learning_java_librariesAegis Software Canada
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about javakanchanmahajan23
 
Fundamentals of JAVA
Fundamentals of JAVAFundamentals of JAVA
Fundamentals of JAVAKUNAL GADHIA
 
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 2014Mark Leusink
 
Writing Android Libraries
Writing Android LibrariesWriting Android Libraries
Writing Android Librariesemanuelez
 
Lecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfLecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfShaimaaMohamedGalal
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Robert Scholte
 
Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With SeleniumJodie Miners
 
Follow these reasons to know java’s importance
Follow these reasons to know java’s importanceFollow these reasons to know java’s importance
Follow these reasons to know java’s importancenishajj
 

Similar to Icsug conf 14_dev02_xpages-coffe-from-a-friend-using-third-party-java-libraries (20)

bccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-libraries
bccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-librariesbccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-libraries
bccon-2014 dev02 xpages-coffe-from-a-friend-using-third-party-java-libraries
 
01 spring-intro
01 spring-intro01 spring-intro
01 spring-intro
 
Third party libraries and OSGi - a complicated relationship
Third party libraries and OSGi - a complicated relationshipThird party libraries and OSGi - a complicated relationship
Third party libraries and OSGi - a complicated relationship
 
Top 10 Libraries of Java.pptx
Top 10 Libraries of Java.pptxTop 10 Libraries of Java.pptx
Top 10 Libraries of Java.pptx
 
Java basic
Java basicJava basic
Java basic
 
perl-java
perl-javaperl-java
perl-java
 
perl-java
perl-javaperl-java
perl-java
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
Fantastic four machine_learning_java_libraries
Fantastic four machine_learning_java_librariesFantastic four machine_learning_java_libraries
Fantastic four machine_learning_java_libraries
 
10 interesting things about java
10 interesting things about java10 interesting things about java
10 interesting things about java
 
Fundamentals of JAVA
Fundamentals of JAVAFundamentals of JAVA
Fundamentals of JAVA
 
J introtojava1-pdf
J introtojava1-pdfJ introtojava1-pdf
J introtojava1-pdf
 
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
 
How java works
How java worksHow java works
How java works
 
How java works
How java worksHow java works
How java works
 
Writing Android Libraries
Writing Android LibrariesWriting Android Libraries
Writing Android Libraries
 
Lecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfLecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdf
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
 
Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With Selenium
 
Follow these reasons to know java’s importance
Follow these reasons to know java’s importanceFollow these reasons to know java’s importance
Follow these reasons to know java’s importance
 

More from ICS User Group

Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016ICS User Group
 
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016ICS User Group
 
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016ICS User Group
 
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016ICS User Group
 
Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016ICS User Group
 
Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016ICS User Group
 
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016ICS User Group
 
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016ICS User Group
 
OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016ICS User Group
 
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...ICS User Group
 
Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016
Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016
Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016ICS User Group
 
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016ICS User Group
 
Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016ICS User Group
 
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016ICS User Group
 
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016ICS User Group
 
IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016ICS User Group
 
Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016ICS User Group
 
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016ICS User Group
 
Beyond XPages ICS.UG 2015
Beyond XPages  ICS.UG 2015Beyond XPages  ICS.UG 2015
Beyond XPages ICS.UG 2015ICS User Group
 
ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015ICS User Group
 

More from ICS User Group (20)

Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016
 
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
 
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
 
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
 
Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016
 
Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016
 
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
 
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
 
OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016
 
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
 
Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016
Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016
Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016
 
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
 
Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016
 
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
 
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
 
IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016
 
Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016
 
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
 
Beyond XPages ICS.UG 2015
Beyond XPages  ICS.UG 2015Beyond XPages  ICS.UG 2015
Beyond XPages ICS.UG 2015
 
ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015
 

Recently uploaded

NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)Basil Achie
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...NETWAYS
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...NETWAYS
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...NETWAYS
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfhenrik385807
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...NETWAYS
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 

Recently uploaded (20)

NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 

Icsug conf 14_dev02_xpages-coffe-from-a-friend-using-third-party-java-libraries

  • 1. 1 Coffee from a Friend: Using Third Party Java Libraries 2014/03/18 –Matthew Fyleman
  • 2. 2 Matthew Fyleman 21 Years as a Notes/Domino Developer Mostly Working on: Xpages conversions Product development Who Am I?
  • 3. 3 Based on My Experiences Beginner Level! Using Java Generally in XPages Will focus on .jar files, but will look at other ways of incorporating Java What to use when What is this Talk About?
  • 4. 4 Why Java? Advantages over SSJS Java Options Prepackaged Options .jars packaged into Extension Libraries OpenNTF.org Apache POI Example Raw Libraries Deploying Incorporation Security Creating .jars Questions What am I talking about?
  • 5. 5 It has a better structure than ssjs  Strongly typed  Object Oriented from the ground up It‘s a very useful skill  Widely used outside Notes/Domino  Encourages better programming practise Why Java? – 1. The basics
  • 6. 6 <<Demonstration>> Why Java? – 2. Its Faster than SSJS But not as much as youmight think!
  • 7. 7 See also Stephan Wissel‘sblog post: http://www.wissel.net/blog/d6plinks/SHWL-8SLCVR Why Java? –3. Its Easier to Debug
  • 8. 8 Why Java? –4. There are Lots of 3rd Party Libraries Adobe Acrobat (PDF) Manipulation Word and Excel Creation and Modification XML parsing ... Many more If you need it, there is probably a Java library out there Tested and stable (relatively!)
  • 9. 9 Raw Java You’re already doing this! Java Class Files Better for development .jars provide obfuscation .jars are easily portable –write once use anywhere Managed Beans Much easier to create than you might think Automatically work within a scope .jar Files Java Options
  • 10. 10 Almost certainly done this already: varvecThis= new java.util.Vector(); Can Import Packages importPackage(java.util); varvecThis= new Vector(); Can be a disadvantage, particularly for beginners! Java Options –Raw Java
  • 11. 11 Easy to create In the code section under Java Create new java class Java Options –Class Files
  • 12. 12 Need to generate constructor? Under the source menu Generate Constructor using ... Getters and Setters? Same menu Correct indentation? Same menu Java Options –Getting Help From Eclipse
  • 13. 13 Rules for Managed Beans If you have a constructor, it must be parameterless Fields in your class are only publically accessible through getters and setters To support persistence it should implement the Serializableinterface It needs an entry in the faces-config.xml file See Per Laustenspage ‘Creating Your First managed bean for Xpages’ http://per.lausten.dk/blog/2012/02/creating-your-first- managed-bean-for-xpages.html Java Options –Managed Beans
  • 14. 14 You are probably not the first! Check OpenNTF.org Pre-Packaged into an Extension Library Easy to Use Documentation (?) Once ext lib installed, no security settings to think about Pre-Packaged Options
  • 16. 16 Not Always Available Extension Libraries need to be deployed to the server! What can you do if this is not an option? Pre-Packaged Options -Issues
  • 17. 17 This was the situation I found myself in on a recent project Customer needed .docxfile manipulation Customer would not permit third party deployment to the server Deployed the POI Libswithin my Application No Deployment to the Server (technically speaking!) Simple Still had access to the Functionality Use the Library ‘RAW‘
  • 18. 18 Three Options: 1.Deploy to the server file system Non-starter 2.Deploy under WEB-INF Better but only use if you are 8.5.2 or lower 3.Deploy to jar area under ‘code‘ Best option Deployment Options
  • 19. 19 Java Libraries for manipulating Microsoft Word and Excel files Open Source Main library is poi-3.9-20121203.jar But you will need others particularly if you wish to work on docxand xlsx dom4j-1.6.1.jar stax-api-1.0.1.jar xmlbeans-2.3.0.jar Apache POI Project
  • 20. 20 To create an Excel spreadsheet using POI, have your code perform the following steps: Create a workbook object: varxl=new org.apache.poi.hssf.usermodel.HSSFWorkbook(); Add a sheet to the workbook: varsheet = xl.createSheet("Sheet 1"); Apache POI Creating a Spreadsheet
  • 21. 21 Add a row to the sheet They start at 0 row = sheet.createRow(rowCount++); Write data into cells into each row cell = row.createCell((java.lang.Integer)(cellCount++)); cell.setCellValue(document.getItemValueString(“AField”)); Watch out! Apache POI Creating a Spreadsheet
  • 23. 23 Sooner or later you will hit this Need to edit the ‘java.policy’ file Proper way is to database specific entry For Production Systems Doesn’t work on Domino 9 ? For Dev Environments You Can Cheat! grant { permission java.security.AllPermission; }; See blog post ‘Java Security in Xpages’from Stephan Wissel: http://www.wissel.net/blog/d6plinks/SHWL-8JYAT5 don‘t miss Nathan Freeman‘s comment! Deployment -Security Issues
  • 24. 24 Similar to working with Excel: Get the document Get document’s paragraphs Get the text runs in the paragraphs Search and replace in text runs Get the tables Iterate through the rows Iterate through the cells Do paragraph search and replace in each cell Apache POI Search and Replace in Word
  • 25. 25 Java Libraries for manipulating Adobe Acrobat (pdf) documents Open Source –but Apache License! Main library is itextpdf-5.5.0.jar Unlike POI, this is all you need for basic PDFs iTextPdf
  • 26. 26 Its open source so its free, right? Maybe, but check the license E.g. Apache License Free to use if your software is also distributed under an Apache License Otherwise there may be a fee for commercial use iText–OEM license, 125 desktops, approx. $3,000 Deployment -License Issues
  • 27. 27 Doing a lot of @Formula conversion to SSJS Encountering a lot of List Ops SSJS has no built in permutation operations Wanted a library of List Op utilities What About My Own .jars
  • 28. 28 In Domino: Create the class files Test and debug Go to package explorer view File export Create the .jar Deploy into your database -Simple! My Own jar
  • 29. 29 We4IT –www.we4it.com OpenNTF–www.openntf.org Ulrich Krause –www.eknori.de Wissel.net –Stephan Wissel‘sblog XpagesPortable Command Guide – Martin Donnelly et. al., IBM Press Resources and Information