Saturday, November 1, 2008

Fasttrack: Lotus 8 Eclipse development


Please be aware that this fasttrack is outdated!!

Some day I might update it from Lotus Notes 8.0.1 to a more current version
(currently Lotus Notes 8.5 & Expeditor 6.2)


If you're interested in getting involved in IBM Lotus 8 / Eclipse development technologies and you're wondering how to get started, here are some guidance you might want to explore.

This blog contains some step-by-step tutorials and informational guides that you can use in your quest to advance your skills and your company's competitive advantages.

Abstract
  • Introduction
  • Prerequisites
  • Setting up development environments
  • Learning the new stuff
  • Courses
  • Adjusting the project culture
  • Iterating your product / client strategy

Introduction
Prerequisites
Setting up development environments

Lotus Notes

Lotus Sametime

Learning the new stuff

So now you've got the development environments up and running, that's nice, but you still have some more stuff to do.

Next up is the understanding of the possibilities in the Eclipse based Lotus Notes and Sametime architectures, features and plug-ins.

Here are some examples on development best practices worth thinking about :
  • Java in Eclipse
  • Eclipse plug-ins
  • Eclipse SWT
  • Eclipse RCP (Rich Client Platform)
  • Lotus Expeditor 8 architecture and plug-ins
  • Lotus Notes /Eclipse architecture and plug-ins
  • Lotus Sametime /Eclipse architecture and plug-ins
Courses
Currently there are not many official learning suppliers on Lotus, Eclipse and Expeditor technologies other than IBM and The RCP Company were I work.

Adjusting the project culture
If many of the mentioned technologies are new to you, you should find a way to merge the new project and development considerations into your current procedures.

I know there are a lot of today's traditional Lotus Notes developers out there that, again, will have to adjust to IBM's innovative strategies, like this IBM Lotus Eclipse client. It might take a few years for most of them to get up to speed, depending on their customers needs.

This is a good opportunity for new software players to conquer new niche markets.

Iterating your product / client strategy
With this need for investment in new skills and knowledge, you have to re-think how your investment will generate the best pay-off on your solutions.

  • Where can you get professional best-practice guidance and knowledge
  • How can a solution benefit best from the new features and possibilities
  • How should you model the optimal plugin architecture
  • How will you integrate to the existing business logic
  • How should you prepare and model the development teams

Friday, October 31, 2008

Test Sametime 8 samples

You are now ready to import and launch some of the samples.

Abstract
  • Import the sample plug-ins
  • Create a launch configuration

Import the sample plug-ins

The import will be in two rounds (sets)
  • Projects with a source folder
  • Binary projects

Projects with a source folders (11 projects)
That's all the sample plug-ins matching the pattern
  • com.ibm.collaboration.realtime.sample.*

Binary projects
(2 projects)

That will be the two plug-ins that are left
  • com.ibm.collaboration.realtime.status.ext
  • com.ibm.collaboration.realtime.telephony.status

Let's start by importing the first 11 Projects with source folders,
from the Lotus Sametime 8.0.1 SDK
  • Choose
    Window > Open Perspective > Other > Plug-in Development
  • Choose
    File > Import... > Plug-in Development > Plug-ins and Fragments


  • Click Next

  • Deselect the The target platform in the Import From group box
  • Click Browse to locate the SAMETIME_SDK_INSTALL\connect\samples
    (ex. c:\lotus-dev\st801sdk\client\connect\samples)

  • In the Import As group box, select the Projects with source folders option
  • Click Next

  • Add the 11 Projects with source folders
    All matching com.ibm.collaboration.realtime.sample.*
  • Click Finish
Now let's import the 2 Binary projects
  • Choose
    File > Import... > Plug-in Development > Plug-ins and Fragments



  • Click Next



  • Click Browse to locate the SAMETIME_SDK_INSTALL\connect\samples
  • In the Import As group box, select the Binary Projects option
  • Click Next


  • Add the 2 Binary Projects
    com.ibm.collaboration.realtime.status.ext
    com.ibm.collaboration.realtime.telephony.status
  • Click Finish
The samples are now installed and visible on your workspace, let's create a launch configuration

Create launch configuration
  • Choose from the menu Run > Run… in order to configure the runtime environment
  • Select the Client Services on the configuration list, on your left
  • Click the New icon (the leftmost icon above the configuration list)
Check out the settings on the Main tab


On the Target tab, verify that Target is Sametime 8.0.1 Target


On the Plug-ins tab, verify your sample plug-ins are available and selected. You can exclude plug-ins from the launch by deselecting them.
  • Click the Run button, to launch the Sametime Connect Client
Wait for the log in dialog to appear
  • Click to Cancel the log in dialog

And here you go, the Lotus Sametime Connent Client is now loaded with all the sample plug-ins.


Conclusion
Mission completed, now you can play around.

Sorry for the danish titles in the client.

What's Next?
Next you will complete task:
  • Back to Fasttrack main page
HOME

Create Sametime 8 environment

If you have installed all the necessary software from the previous session, you're ready for setting up the Lotus Sametime development environment.

Abstract
  • Install and configure Expeditor Development Runtimes
  • Install and configure Sametime 8 profile
Start Eclipse Callisto
  • Make a new workspace lotus-sametime-dev
    (ex. ..\workspace\lotus-sametime-dev)
If the Lotus Expeditor Configuration dialog appears, because you have installed Expeditor in an earlier session, just Cancel it.
  • Close the welcome page
    (only shows the first time you open the workspace)
If you do NOT have Expeditor installed already
You need to install the Expeditor Toolkit. Go back to an earlier session Configure Lotus Notes 8 development and run through the section Install and configure the Expeditor Toolkit
Then come back and and go to the next section.

If you do have Expeditor installed already, from the Lotus Notes session
You just need to add the Desktop Runtime feature, from the Expeditor update site you made in the Lotus Notes session.

Install and configure Expeditor Development Runtimes
  • Go to Help - Software Updates - Find and Install
  • Select Search for new features to install
  • Click Next
  • Check that the local expeditor/Expeditor_Toolkit_install update site is checked.
  • Click Finish

  • Select the Lotus Expeditor Development Runtimes VM 6.1.x.xxx
  • Click Next
  • Accept the license terms
  • Click Next
  • Verify the installation
  • Click Finish
  • If prompted for Feature Verification, just click Install All
  • Select Yes to Restart
Install and configure Sametime 8 profile
Now you have to load some load plug-ins from the Lotus Sametime 8.0.x SDK, you downloaded in the Download and install the necessary software session.
  • Go to Help - Software Updates - Find and Install
  • Select Search for new features to install
  • Click Next
  • Click New Local Site
  • Select Sametime SDK Install folder
    (ex. c:/lotus-dev/st801sdk/client/connect/stXpdToolkitProfile folder)
  • Click Ok, to close the browse file dialog

  • Deselect / uncheck the expeditor/Expeditor_Toolkit_install, if it is still checked
  • Select / Check the connect/stXpdToolkitProfile, if it is NOT checked
  • Click Finish, to view the features



  • Select / Check the Sametime XPD Toolkit Feature 8.0.1
  • Click Next, to view the features / plug-ins to install
  • Accept the license terms
  • Click Next, to verify the installation
  • Click Finish
  • If prompted for Feature Verification, just click Install All
  • Select Yes to Restart

Configure the Expeditor Test Environment
After restart you need to setup the test environment.

You can get to the settings of Lotus Expeditor Toolkit Configuration
  • Choose Window – Preferences - Client Services


  • Click Configure button



  • Set Test Environment to Lotus Sametime 8.0.1
    Notice the Target Location changes automatically
  • Verify the rest of the selected values in the dialog
Conclusion
Yes done for now, next up is testing the samples.

What's Next?
Next you will complete task:
  • Test Sametime 8 samples
HOME

Test Notes 8 samples

You are now ready to import and launch some of the samples.

Abstract

  • Locating the samples
  • Importing the samples
  • Launching the toolkit

Locating the samples
There are two sample gallery projects located at

EXPEDITOR_TOOLKIT_INSTALL\plugins\
  • com.ibm.rcp.tools.samplegallery_6.1.2.xx
    (now called samples1)
  • com.ibm.rcp.tools.samplegallery2_6.1.2.xx
    (now called samples2)
Unzip them into different folders (samples1 and samples2)

You will test two of the samples.
  • RichApp (placed in samples1)
    This is a mini application plug-in that inserts itself into the right sidebar
  • PropertyBroker (placed in samples2)
    This is a multiple view based plug-in, with property change listeners and simple GUI SWT manipulation

Importing the samples
Each sample has to be imported into the workspace

First you import the RichApp sample project
  • Choose File - Import - General - Existing Projects into Workspace
  • Click Next
  • Choose Select Archive File
  • Click Browse
  • Go to ....\samples1
  • Select the richapp.jar
  • Click Finish
And now you import the PropertyBroker sample project
  • Choose File - Import - General - Existing Projects into Workspace
  • Click Next
  • Choose Select Archive File
  • Click Browse
  • Go to ....\samples2
  • Select the propertybroker.jar
  • Click Finish
That's it the samples are in place, don't worry about the Type Safety warnings.

Now let's see how to launch the toolkit and samples.

Launching the Toolkit
Lotus Expeditor comes with a launcher that is configured for Lotus Notes, which is called Client Services.
  • Choose Run - Run... from the IDE menu.
  • Select Client Services launcher in the left pane
  • Click New, on the leftmost icon in the top toolbar, to create a new instance of the Client Services launcher
Here you see the Main tab of the Client Services launch properties.

On the Main tab verify that Runtime JRE is Notes 8 VM


On the Target tab, verify that Target is Notes 8.0.x Target


On the Plugins tab, verify that the sample plug-ins are selected.


Your sample plug-ins are under the Workspace Plug-ins node
  • com.ibm.rcp.samples.propertybroker.color (version)
  • com.ibm.rcp.samples.richapp (version)
Let's see what happens when we run this...

  • Now hit the Run button
The Notes client will load and ask for credentials
  • Log in to the Notes client
Now let's find the plug-ins. From the big light blue Open button, leftmost in the top toolbar.
  • Click the big Open button, in the upper left corner
  • Find and click the entry Property Broker Sample Perspective
    The PropertyBroker sample opens in a new perspective
  • Open the sidebar on your right
  • Click the Shelf View title
    The RichApp sample opens as an embedded mini app in the sidebar


Yes, it worked, for me anyway. It took some time but now you're ready to analyze the samples more thoroughly and investigate how things are done.

What's Next?
Next you will complete task:
  • Create Sametime 8 Environment

HOME

Create Notes 8 environment

If you have installed all the necessary software from the previous session, you're ready for setting up the Lotus Notes development environment.

Abstract
  • Install and configure Notes 8 VM JRE
  • Install and configure Expeditor Toolkit
Start Eclipse Callisto
  • Make a new workspace lotus-notes-dev
    (ex. ..\workspace\lotus-notes-dev)
  • Close the welcome page
    (only shows the first time you open the workspace)

Configure the Lotus Notes 8 JRE
  • Choose Window – Preferences – Java – Installed JREs.
  • Click Add.
  • In the Add JRE dialog:
    • Set JRE Type to Standard VM
    • Enter JRE Name as Notes 8 VM
    • Click Browse
    • Select the jre directory located at
      NOTES_INSTALL\framework\rcp\eclipse\plugins\
      com.ibm.rcp.j2se.win32.x86_1.5.0..\jre
    • Click Ok, to close the browse dialog


  • Set the VM Arguments to -Xmx256M
    You do this to get more available memory, and thereby avoid Out of memory errors
  • Click Ok, to close the Add JRE dialog
  • Click Ok, to close the preference dialog
You are now ready to install and configure the Expeditor Toolkit.

Install and configure the Expeditor Toolkit

  • Go to Help - Software Updates - Find and Install
  • Select Search for new features to install
  • Click Next
  • Click New Local Site
  • Select Expeditor Toolkit Install folder
    (ex. C:/lotus-dev/expeditor/Expeditor_Toolkit_install)
  • Click Ok, to close the browse file dialog



  • Click Ok, to close the Edit Local Site dialog
  • Note: Check to see if the new entry expeditor/Expeditor_Toolkit_install is checked.
  • Click Finish

Now that you have created the local update site you have to select the features that are needed for Lotus Notes.
  • Expand desktop
  • Select and Check Lotus Expeditor Toolkit 6.1.x_xxxxx feature
  • Click Next
  • Accept the license terms
  • Click Next and verify the installation
  • Click Finish
  • If prompted for Feature Verification, just click Install All
  • Select Yes to Restart

After restart, if this was the first time you restarted, you will be prompted with Test Environment Configuration Dialog. You will now have to make it look like this below.

If you're NOT prompted with this dialog, you can reach it via the preference page Client Services that Expeditor installed
  • Set Test Environment to Lotus Notes 8
  • Set Target Location to NOTES_INSTALL\framework\eclipse
    (If not already set)
  • Set VM Name to Notes 8 VM
  • Set Compiler Compliance Level to 1.5
  • Click Ok

Conclusion
You're done. Congratulation you are now ready to test your installation with some samples.

What's Next?
Next you will complete task:
  • Test Notes 8 Samples

HOME

Monday, October 27, 2008

Download and install the software

Before you can start playing with the Lotus 8 development technologies you have to download and install some Eclipse and Lotus software.

My setup
When I made this tutorial my testing was done on the following system setup:
  • PC: Dell Latitude E6500 Intel Core 2 (Duo) / 4GB
  • OS: Windows Vista Business
  • Eclipse Callisto Enterprise Bundle
  • IBM Lotus Notes Client 8.0.2
  • IBM Lotus Sametime Connect Client 8.0.1
  • IBM Lotus Sametime SDK 8.0.1
  • IBM Lotus Expeditor Toolkit 6.1.2
Some of the trial download listed below are of earlier versions than the versions I used, so be aware of any differences in concern to version numbering in this tutorial.

The downloads

Here you find all the software downloads you might need. Every software element listed below has an associated download link and information section:
  • Eclipse Callisto
  • Lotus Notes client
  • Lotus Sametime Connect client
  • Lotus Sametime SDK
  • Lotus Expeditor Toolkit

Eclipse Callisto
This is a prepacked Eclipse 3.2.2 with some extra plug-ins, hosted and maintained by IBM.

When you download the Callisto product bundle, select the "free download" version of EE or the full Enterprise bundle.
  • Download
  • Unzip the downloaded file to a preferred location
    (ex. c:\lotus-dev\callisto)

Lotus Notes v8.0.0 client
If you don't have the Lotus Notes client installed you can download a trial version from IBM.
The download includes the Notes (Eclipse version), Designer and Administration clients.
This was all I could find at IBM downloads, was a trial version 8.0.0.

FYI: The client I used for testing was a version 8.0.2.

Lotus Sametime v8.0.1 Connect client
If you don't have the Lotus Sametime Connect client installed you can download a trial version from IBM.

Be aware that this is Sametime server download and it includes the client install.

Lotus Sametime 8.0.1 SDK

If you don't have Lotus Sametime v8.0.1 SDK (Software Development Kit) installed you can download it from IBM.
  • Download
  • Unzip the downloaded file to a preferred location
    (ex. c:\lotus-dev\st801sdk) Note: The zip file contains a root folder like st801sdk, so you don't need to make the folder, just unzip all to (ex. c:\lotus-dev)

Lotus Expeditor Toolkit 6.1.2

If you don't have Lotus Expeditor installed you can download a trial version from IBM.
  • Download (trial)
  • Unzip the downloaded file to a preferred location
    (ex. c:\lotus-dev\expeditor)

Conclusion
Perfect you should now have downloaded, installed and prepared the basic software you need to proceed.

What's Next?
Next you will complete task:
  • Create Notes 8 Environment

HOME

Getting started with Lotus / Eclipse

As you might know, the newer versions of the IBM Lotus Notes and Sametime v8 client products are based on the open source Eclipse platform.

Abstract
  • The new future
  • Opportunities
  • Challenges
  • Technologies involved

The new future
This, in the Lotus Notes community, is a new big opportunity for both customers and business partners.
  • The ISV (Independant Software Vendor) business partner can take the lead in development of Eclipse Lotus solutions
  • The customer gets an award winning and well proven rich client platform for their business applications.
  • The IT-department gets a client platform that is easy to manage and deploy, down to the smallest details
  • The developer gets her hands on top class development tools and features

This gives some traditional Lotus Notes developers new opportunities and challenges.

Opportunities
  • More focus on the core business issues, reducing trivial procedures
  • Multiple platform solutions
  • Plugin reuse ability
  • Implicit design pattern usage
  • Faster and more modular development and code
  • Current competencies are still as useful as they are now

Challenges

  • Used to code 95% LotusScript and Visual Basic based languages
  • Low on resources for studying / enhancing the Java / Eclipse skills
  • Lots of new technologies and products to master
  • Customer on the market is requesting information and guidance on the pros n' cons
  • Time has shown that many Lotus Notes developers are lacking the necessary level of Java and Eclipse knowledge. This will have to change because it's not rocket science for an experienced Java / Eclipse developer to learn the Notes API. So changes are that the competition will grow in the future

Technologies involved

Here are some of the technology skills you should focus on:
  • Java / J2EE
  • Design patterns
  • Software Modeling
  • Eclipse platform and technology
  • Eclipse Plugin Architecture (Equinox /OSGi)
  • Eclipse RCP (Rich Client Platform)
  • Lotus Notes / Domino development
  • Lotus Sametime development
  • Lotus Expeditor Toolkit
For each type of skill sets I have included a link to one of many resources on the net. Feel free to get inspiration to the technology from other sources.

Java / J2EE
If your Java skills are a bit rusty, start here by updating your skills.

There are many good tutorials on getting started with Java. Java is a fundamental component of the Eclipse Framework.

If you already have programming skills, learning Java should not be your biggest challenge.


Design patterns

Many of today's large development projects make use of design patterns, either implicitly or explicitly, making the solutions more loosely coupled and manageable and extensible.


Software Modeling

In the analysis and design phase of a solution you need to model the architecture from an abstract perspective, this is where UML (Unified Modeling Language) has it's power, delivering models and notations that explains how a solution is build, used and managed.


Eclipse platform and technology

Eclipse is an open source community, whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the Eclipse projects and helps cultivate both an open source community and an ecosystem of complementary products and services.


Eclipse Plugin Architecture (Equinox / OSGi)

The Eclipse Equinox project produces the core runtime used by Eclipse and the reference implementation for both the OSGi 4.1 framework and JSR 291 specifications.


Eclipse RCP (Rich Client Platform)

While the Eclipse platform is designed to serve as an open tools platform, it is architected so that its components could be used to build just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the "Rich Client Platform".


Lotus Notes / Domino development

Lotus Notes and Domino are collaboration software. Notes is the email, calendar & scheduling, and information management client. Domino is the integrated messaging, collaboration, and Web application server.


Lotus Sametime development

Lotus® Sametime is real-time collaboration software that provides presence awareness, instant messaging, and Web conferencing.


Lotus Expeditor Toolkit

Lotus® Expeditor is a universally managed client that includes a client, server, and toolkit for creating, deploying, and maintaining both mobile and rich client applications. This OSGi-based and Eclipse-based platform enables you to create Service-Oriented Architecture (SOA) solutions.


What's Next?
Next you will complete task:
  • Download and install the software

HOME

Welcome

Welcome to the Lotus Eclipse Corner blog.

This blog is technical and dedicated to the IBM Lotus and Eclipse developers out there that share my passion for these technologies.

My name is Ronni Kahalani. I'm a senior consultant at The RCP Company located in Copenhagen Denmark.

I have several years of experience with the IBM Lotus product family and Eclipse as an architect and developer.

The purpose of this blog will be to share some of my knowledge and experience and to contribute to the IBM Lotus and Eclipse communities.

Currently many Lotus developers are challenged with the need to become an Eclipse developer / specialist, because of IBM's Eclipse based client product strategy. Some of them can use a hand getting up to speed on their Eclipse skills.

On this blog I'll try to make it even easier to get started on the new Lotus / Eclipse technologies rushing by. Most of what I'll write about are exciting tutorials, articles and other "need to know" technical information.

I hope you will enjoy this blog and find it valuable.

Search This Blog

Eclipse Live: Equinox Ganymede

The creator of an Eclipse Bible, introduces Equinox and its building blocks for creating applications. We overview the architecture and technology, and demonstrate many of the building blocks.
by Jeff McAffer (Code 9)