ar*@!+$es to this. getting ibm connections to do what you want
DESCRIPTION
Presentation at UKICON 2013 on how to really get IBM connections to do what you wantTRANSCRIPT
![Page 1: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/1.jpg)
UKLUG 2012 – Cardiff, Wales September 2012
Presenter: Mark MyersCompany: London Devloper Co-op
getting connections to do what you want
ICON UK 2013"Ar*@!+$es to this"
![Page 2: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/2.jpg)
UKLUG 2012 – Cardiff, Wales
Who am I? – Mark Myers
• A Member of the London Developer Co-op (londc.com) A group of UK based developers
• Ben Poole• Julian Woodward• Mark Myers (me)• Robin Willis• Matt White
• Developer from a support background• 12+ years on Domino, 15+ years in IT• Speaker at 3x Lotuspheres, 4x UKLUGs, 1x ILUG,
1x BLUG
![Page 3: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/3.jpg)
UKLUG 2012 – Cardiff, Wales
Why this presentation and why that title?
• IBM have given us a new platform. And with it a new framework.
• It still has a Beta feel about it, • Due to its constructions is very much a
patchwork with some areas working inconsistently and varying wildly between versions
![Page 4: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/4.jpg)
UKLUG 2012 – Cardiff, Wales
Fair Enough but Still, why that title?
• Support are using a “hot brick” tactic on areas when you a forced to use undocumented features e.g. dojo.i18n.getLocalization
• Connections is designed for a certain use case and just like Domino before it clients are not sticking to it but you still need to deliver on their needs.
We can hack domino to do what ever we want. Time to do the same with connections
![Page 5: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/5.jpg)
UKLUG 2012 – Cardiff, Wales
So what are we dealing with?
What is IBM Connections from a Developers point of view?
![Page 6: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/6.jpg)
UKLUG 2012 – Cardiff, Wales
So what are we dealing with?
• An IBM Websphere server• With N number of ‘normal’ apps on it• Glued to a DB2 server (normally)
No need to get excited
![Page 7: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/7.jpg)
UKLUG 2012 – Cardiff, Wales
A Websphere server with Connections 4.0 installed (amongst other things)
![Page 8: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/8.jpg)
UKLUG 2012 – Cardiff, Wales
You can find out which URL’s match to which applications
You would of course never use a Java Decompiler such as the one found at http://jd.benow.ca/ to workout how these apps actually work
![Page 9: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/9.jpg)
UKLUG 2012 – Cardiff, Wales
Loads of JDBC connections
![Page 10: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/10.jpg)
UKLUG 2012 – Cardiff, Wales
I break customisation into 3 levels
• By GUI• By XML (not done in this presentation)• By Native app
Lets do this one
![Page 11: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/11.jpg)
UKLUG 2012 – Cardiff, Wales
Tools (Your IDE)
• Rational Application Developer for WebSphere Software (NEVER EVER!!) • http://www-03.ibm.com/software/
products/us/en/application/
• Myeclipse Blue• http://www.myeclipseide.com/blue/
![Page 12: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/12.jpg)
UKLUG 2012 – Cardiff, Wales
Native Websphere App time!!
• When all else fails this option will let you do ANYTHING you want.
• A Necessity for Connections environments with no Domino servers
• Other than a few IBM quirks, the following is all standard java apps stuff, good to know and very very reusable
![Page 13: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/13.jpg)
UKLUG 2012 – Cardiff, Wales
What are WAR and EAR files
• A .War file (Web application ARchive) is a file used to distribute a collection of JavaServer Pages, Java Servlets, Java classes, XML files, tag libraries, static Web pages (HTML and related files) and other resources that together constitute a Web application.
• An .Ear (Enterprise ARchive) is Basically a normal War file wrapped in a configuration wrapper.
• On the Ear file features remember you are on a shared server and you can not make any assumptions as to what is happening
![Page 14: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/14.jpg)
UKLUG 2012 – Cardiff, Wales
Making a Native Connections App
Easiest way of ensuring compatibility is to select a
matching Runtime
In MyEclipse/RAD do “File” “New” Web Project
Just Accept defaults
![Page 15: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/15.jpg)
UKLUG 2012 – Cardiff, Wales
Making a Native Connections App
In MyEclipse/RAD do “File” “New” Enterprise Application Project
![Page 16: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/16.jpg)
UKLUG 2012 – Cardiff, Wales
Making a Native Connections App
Selecting this means that unless you wish to
customize the deployment you are done
Select the App(s) you want to be packaged in
this Ear
![Page 17: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/17.jpg)
UKLUG 2012 – Cardiff, Wales
Making a Native Connections App
This gives you the following 2 project
structures
![Page 18: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/18.jpg)
UKLUG 2012 – Cardiff, Wales
Making a Native Connections App
Select your EAR file project and do “File” “Export”
![Page 19: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/19.jpg)
UKLUG 2012 – Cardiff, Wales
The Questions Domino Developers ask when starting Native Java Apps
• How do I connect to a database?• Where is my “when Opened in a browser”?• Agents!, I need them! Where are they?
![Page 20: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/20.jpg)
UKLUG 2012 – Cardiff, Wales
The Great Database Chase• When we moved from Domino to Connections we
went from the easy going world of NOSQL and constantly being in a database context to Relational databases and defining our own contexts (most likely DB2)
• There are lots of different ways of linking your applications to databases (in Java)• Hibernate• JPA• EJB3
• I'm going to Use JPA (Java Persistence API) as I find it the best and most easy-going• http://en.wikipedia.org/wiki/Java_Persistence_API
![Page 21: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/21.jpg)
UKLUG 2012 – Cardiff, Wales
Why Use all this? Why not read/write direct using SQL?• Eliminates all of the 'hand' mapping in Java from a
SQL ResultSet to a Java Object greatly reducing the amount of mapping work.
• Avoids low level JDBC and SQL code. You just deal with Java Classes
• Provides high end performance features such as caching and sophisticated database and query optimizations.
There are lots of fighting over if you should use a ORM (Object-relational mapping) framework such as JPA, but frankly, its quick, reliable and does not give you grief
![Page 22: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/22.jpg)
UKLUG 2012 – Cardiff, Wales
The Great Database Chase
JDBC config on Server
JDBC config on Server
JDBC Mapped to
Persistence unitIn
Persistence.xml
JDBC Mapped to
Persistence unitIn
Persistence.xml
Persistence Unit used by
Entity Manager helper
Persistence Unit used by
Entity Manager helper
Entity Manager
used code to do stuff
Entity Manager
used code to do stuff
Entity Manager
Calls Entity Manaager
Entity Manager
Calls Entity Manaager
![Page 23: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/23.jpg)
UKLUG 2012 – Cardiff, Wales
JDBC connections are setup on the WAS server
This actually provides the link to the database and you don’t need to deal
with Authentication
![Page 24: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/24.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a WAS db2 connection
Open up the WAS admin console, and select “JDBS
Providers”
![Page 25: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/25.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a WAS db2 connection
Make sure
“db2jcc.jar”
“db2jcc_license_cu.jar”
Are on the server, they should be if
Connections is on there
![Page 26: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/26.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a WAS db2 connection
You can Check the location in
“Websphere Variables”
![Page 27: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/27.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a WAS db2 connection
Create a Data source and link to the JDBC Provider
![Page 28: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/28.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a WAS db2 connection
Create a Data source and link to the JDBC Provider
You will also want to select a
authentication alias
![Page 29: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/29.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a WAS db2 connection
This will mean that the
application does not have to contain any
authentication details
(meaning the same app can be deployed to dev and live)
![Page 30: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/30.jpg)
UKLUG 2012 – Cardiff, Wales
Persistence.xml
Now we can link our application to the database definition on the server
When dealing with websphere the transaction-type will
always be “RESOURCE_LOCAL”
![Page 31: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/31.jpg)
UKLUG 2012 – Cardiff, Wales
EntityManagerHelper.java
![Page 32: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/32.jpg)
UKLUG 2012 – Cardiff, Wales
Table/Class Data Access Object
![Page 33: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/33.jpg)
UKLUG 2012 – Cardiff, Wales
Finally use the data in code
![Page 34: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/34.jpg)
UKLUG 2012 – Cardiff, Wales
Don’t worry this is all done with wizards
![Page 35: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/35.jpg)
UKLUG 2012 – Cardiff, Wales
Lets have a Look at the Datbase
![Page 36: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/36.jpg)
UKLUG 2012 – Cardiff, Wales
Where is my “when Opened in a browser”?
The Web.xml is the core of your application configuration, just about everything is started from here
![Page 37: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/37.jpg)
UKLUG 2012 – Cardiff, Wales
Agents!, I need them! Where are they?
• There are lots of different ways of providing this feature, and lots of pro and cons for each way.
• I am going to show you Quartz from http://quartz-scheduler.org/
![Page 38: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/38.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a Scheduled Job
Down load the Quartz package from the website un zip it and copy the Jar files in the /webroot/WEB-INF/lib
![Page 39: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/39.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a Scheduled Job
In the Properties of the Project, in the Java Build Path, add the /webRoot/Web-INF/lib as a “class folder”
![Page 40: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/40.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a Scheduled Job
In your Web.xml add a new servlet, with the value<load-on-startup> = 1
![Page 41: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/41.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a Scheduled Job
Setup a new Class that the servlet will call
![Page 42: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/42.jpg)
UKLUG 2012 – Cardiff, Wales
Setting up a Scheduled Job
In the “init” method for the new servlet you have made, add one of the many varieties of Quartz Scheduler see http://quartz-
scheduler.org/documentation
![Page 43: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/43.jpg)
UKLUG 2012 – Cardiff, Wales
Further Reading on Native Apps
As you are now just writing Native Java Apps + IBM quirks the number of available libraries and tools you can use is mind blowing
Some Recommended areas to read up on:•Jersey: The easiest way to do REST services in pure java. http://jersey.java.net/•Annotations http://javapapers.com/core-java/java-annotations/•Abdera: Best Atom Service reader and generator http://abdera.apache.org/
![Page 44: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/44.jpg)
UKLUG 2012 – Cardiff, Wales
Questions?
If we have time then we can keep going!
?
![Page 45: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/45.jpg)
UKLUG 2012 – Cardiff, Wales
None Native integration (Domino)
![Page 46: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/46.jpg)
UKLUG 2012 – Cardiff, Wales
Tools• DEV HTTP CLIENT
• https://plus.google.com/104025798250320128549/posts
• FireBug• https://getfirebug.com/
![Page 47: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/47.jpg)
UKLUG 2012 – Cardiff, Wales
Example: Java Agent Atom FeedA few different Java feed parsing
libraries to choose from:• ROME – http://rometools.org • Apache Abdera –
http://abdera.apache.org • Apache Wink –
http://incubator.apache.org/wink All require several additional libraries
• Apache Commons libraries• Java StAX support• Etc.
Handles HTTP connections as well as parsing
Authentication too
![Page 48: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/48.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Example: Java Agent Get Atom Feed
![Page 49: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/49.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
<?xml version="1.0" encoding="utf-8"?><entry xmlns="http://www.w3.org/2005/Atom"><author><name>I Am Funny</name></author><title type="text">Great Duck Joke</title><content type="text">Q: What has webbed feet and fangs? A: Count Duckula</content></entry>
Example: Java Agent Submit Back to Atom Feed
Most Atom services (particularly IBM) give examples of what XML they want rather than examples of the code you should use, so we will do the same
This is a IBM Connections Blog entry in raw XML:
![Page 50: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/50.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Example: Java Agent Submit Back to Atom Feed
An amazingly useful line when you are debugging or testing as it outputs the XML so you can check it against what you should be sending
![Page 51: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/51.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Example: Java Agent Submit Back to Atom Feed
Getting this URL is often the hardest part of dealing with Atom
![Page 52: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/52.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Example: Useful Extra LinesAdd “registerTrustManager” and you can connect to SSL Ports
Nice simple login, you just need the user name, password and the root domain you are logging on to
![Page 53: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/53.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
Before we start we need to get a database ready to call Java from XPages
Move to Package Explorer
![Page 54: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/54.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
In The WEB-INF directory
Right click and create a new folder
![Page 55: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/55.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
Call it “src” in lower case
![Page 56: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/56.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
Next add this folder to the projects build path
Right click on the root of the project and select “Properties”
![Page 57: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/57.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
On the “Source” tab click “Add folder” and add the folder you have created
![Page 58: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/58.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
You will see the Folder has moved
Right click and select “New” → “Other”
Then Select “Java” → “Class”
![Page 59: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/59.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Create the new Java Class
Domino Integrating with IBM Connections
![Page 60: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/60.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
OK, Java class created, lets get it some libraries
Domino Integrating with IBM Connections
![Page 61: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/61.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
If you are not allowed to use the EXT directory on the server, the you will need to create a new “lib” folder
Domino Integrating with IBM Connections
![Page 62: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/62.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
![Page 63: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/63.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Update (or ask your administrator to) the java.policy file on your server to contain the following
Domino Integrating with IBM Connections
grant {
permission java.lang.RuntimePermission "getClassLoader";
};
![Page 64: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/64.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Now we will add the Atom client code function
You need to pass the session into this function as it can’t get its own
If you need to you can login here (as described previously)
Domino Integrating with IBM Connections
![Page 65: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/65.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Create a New Script Library
Domino Integrating with IBM Connections
![Page 66: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/66.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Set it as a Normal “Server JavaScript” Library
Domino Integrating with IBM Connections
![Page 67: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/67.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Pass the “sessionAsSigner” here to give yourself administrator rights
Create a SSJS function to call your Java and pass the results back
Domino Integrating with IBM Connections
![Page 68: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/68.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections – Pulling it together
Create a Custom Control
![Page 69: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/69.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Give it a Name
Domino Integrating with IBM Connections
![Page 70: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/70.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Now you can add a repeat control that calls the SSJS function, which in turn calls the Java
Domino Integrating with IBM Connections
The Rest of the surrounding boring code is in the demonstration db
![Page 71: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/71.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections – Pulling it together
Create a New Xpage Library
![Page 72: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/72.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections – Pulling it together
Add the duckstates_cc custom control
![Page 73: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/73.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections – Pulling it together
![Page 74: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/74.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Now that you have an XPage, you need to present it to Connections as a Open Social widget the easiest way of doing this is with a simple domino page.
Domino Integrating with IBM Connections
![Page 75: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/75.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Domino Integrating with IBM Connections
Features like “dynamic-height” are harder to get working using this method (rather than a embedding the widget in connections) but if you have a static sized widget it is the simplest and quickest
![Page 76: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/76.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
And add it to your Connections installation
Integrating with IBM Connections
![Page 77: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/77.jpg)
UKLUG 2012 – Cardiff, Wales
© 2013 IBM Corporation
Integrating with IBM Connections
![Page 78: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/78.jpg)
UKLUG 2012 – Cardiff, Wales
And to just round up:the Activity Stream
Its Just another Atom feed:
https://xxx.com/connections/opensocial/basic/rest/activitystreams/@me/@all
Excellent example: http://www.lbenitez.com/2012/05/how-to-
post-events-into-opensocial.html
![Page 79: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/79.jpg)
UKLUG 2012 – Cardiff, Wales
The Activity Stream{ "generator": { "image": { "url": "/homepage/nav/common/images/iconProfiles16.png"}, "id": "demoapp", "displayName": "Demo Application", "url": "http://www.ibm.com/" }, "actor": { "id": "@me" }, "verb": "post", "title": “Example Title", "content": " You have created a new Activity Stream.", "updated": "2013-05-08T12:00:00.000Z", "object": { "summary": “rhubarb rhubarb", "objectType": "note", "id": “rr13", "displayName": " rhubarb rhubarb ", "url": "http:// rhubarb.com/rhubarb.xml", }, }
![Page 80: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/80.jpg)
UKLUG 2012 – Cardiff, Wales
The Activity Stream
Working Post Example (for you to copy)
![Page 81: Ar*@!+$es to this. getting IBM connections to do what you want](https://reader033.vdocuments.mx/reader033/viewer/2022060109/55565c5bd8b42aa41e8b5294/html5/thumbnails/81.jpg)
UKLUG 2012 – Cardiff, Wales
Questions?
How To Contact Me:Mark Myers
Email: [email protected] | Twitter: @stickfight | Skype: Stickfight | Blog: stickfight.co.uk
?