<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title>Bob Balfe - news and views of software development at IBM Lotus</title>
		<link>http://blog.balfes.net/index.php</link>
		<description><![CDATA[The views expressed on this website are mine alone and do not necessarily reflect the views of IBM. Comments? Please reply here or email me directly.]]></description>
		<copyright>Copyright 2008, Bob Balfe</copyright>
		<managingEditor>Bob Balfe</managingEditor>
		<language>en-US</language>
		<generator>SPHPBLOG 0.5.1</generator>
		<item>
			<title>Celtics win!</title>
			<link>http://blog.balfes.net/index.php?entry=entry080618-060753</link>
			<description><![CDATA[That&#039;s all I have to say. :-)]]></description>
			<category>fun</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080618-060753</guid>
			<author>Bob Balfe</author>
			<pubDate>Wed, 18 Jun 2008 13:07:53 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080618-060753</comments>
		</item>
		<item>
			<title>A hole-in-one!</title>
			<link>http://blog.balfes.net/index.php?entry=entry080614-171056</link>
			<description><![CDATA[It&#039;s not often you get to see a hole-in-one in your life time - I have only personally witnessed two.  The first one was my cousin Patrick hit a 3 Wood at Pinehaven Country Club in Guilderland New York - it was 222 yards long and it was amazing.<br /><br />The second one is very special to me because it happened today on the 17th hole at the Skenandoa Country Club in Clinton NY.  It was 180 yards and I hit an easy four iron.  The hardest par three on the course and I hit what seemed to be an absolutely straight shot to the hole - which in the end I realized it was.  The ball hit about 8 feet short, bounced once and rolled in.  I was so shocked, my father says &quot;it&#039;s in!&quot;, and my immediate response was &quot;yeah right&quot;.  I still have the entire flight of the ball ingrained in my head.  I am still amazed with my new Ping Raptures and hitting a Titleist Pro V1 just made it all better - a hole-in-one with style. :-)<br /><br />To anyone who golfs this is up there with the greatest achievements for a casual player.  Given this was the 17th hole and it was my second worse round of the year, I still can&#039;t believe  it even happened. It was so fun sharing this with all the members and the pro in the club house after.  Oh yeah, Billy - thanks for lunch!]]></description>
			<category>fun</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080614-171056</guid>
			<author>Bob Balfe</author>
			<pubDate>Sun, 15 Jun 2008 00:10:56 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080614-171056</comments>
		</item>
		<item>
			<title>Using XPather in Firefox to get familiar with xpath</title>
			<link>http://blog.balfes.net/index.php?entry=entry080612-113131</link>
			<description><![CDATA[If you use Firefox you can install the <a href="https://addons.mozilla.org/en-US/firefox/addon/1192" target="_blank" >XPather plugin</a> to see how it can be used to figure out the xpath for a text selection.<br /><br /><a href="javascript:openpopup('images/xpatherInFireFox.gif',640,480,false);"><img src="images/xpatherInFireFox.gif" width="446" height="335" border="0" alt="" /></a><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080612-113131</guid>
			<author>Bob Balfe</author>
			<pubDate>Thu, 12 Jun 2008 18:31:31 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080612-113131</comments>
		</item>
		<item>
			<title>XPath article and xpath in Notes 8.5</title>
			<link>http://blog.balfes.net/index.php?entry=entry080612-071455</link>
			<description><![CDATA[One of the things we have in the new Web Application Container in Notes 8.5 is xpath support.  I think people should start getting familiar with it (if they aren&#039;t already).  This makes web application integration with other kinds of components very powerful.  You can now define output properties for just about any text on the screen.  <br /><br />Check out this tutorial Brett D. McLaughlin wrote:<br /><br /><a href="http://www.ibm.com/developerworks/edu/x-dw-x-introxpath1.html?S_TACT=105AGX54&amp;S_CMP=B0612&amp;ca=dnw-923" target="_blank" >Locate specific sections of your XML documents with XPath, Part 1</a><br /><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080612-071455</guid>
			<author>Bob Balfe</author>
			<pubDate>Thu, 12 Jun 2008 14:14:55 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080612-071455</comments>
		</item>
		<item>
			<title>2-0</title>
			<link>http://blog.balfes.net/index.php?entry=entry080609-070636</link>
			<description><![CDATA[I love it.  Celtics up 2 games to none.<br /><br /><a href="javascript:openpopup('http://assets.espn.go.com/photo/2008/0608/nba_g_powe03_412.jpg',800,600,false);"><img src="http://assets.espn.go.com/photo/2008/0608/nba_g_powe03_412.jpg" border="0" alt="" /></a>]]></description>
			<category>fun</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080609-070636</guid>
			<author>Bob Balfe</author>
			<pubDate>Mon, 09 Jun 2008 14:06:36 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080609-070636</comments>
		</item>
		<item>
			<title>Theo&#039;s rant on RAD and Notes</title>
			<link>http://blog.balfes.net/index.php?entry=entry080609-064240</link>
			<description><![CDATA[I try to read almost every post on <a href="http://planetlotus.org/" target="_blank" >PlanetLotus</a> but lately it has gotten hard to get to all of them.  So I now rely on the title of the post and the tool-tip to see if it is something worth my time.  I also look at the number of eyes that have clicked the link.  Anyway, <a href="http://www.xceed.be/blog.nsf/dx/notes-is-rad-keep-it-that-way" target="_blank" >Theo</a> has a pretty good posting and I don&#039;t think many will disagree with him.  One comment he made:<br /><br /><blockquote>I have nothing against composite apps, mind you, but you should use them when needed, not because its the &#039;new&#039; way of doing things.<br />Notes is RAD, so let&#039;s keep it that way !</blockquote><br /><br />You might think since I am the lead for comp apps that I would disagree with him but I don&#039;t!  I completely agree with him.  The bottom line is, composite applications are for integration of components from different technologies and components from different databases.  If you do not need this then don&#039;t do it!   The only thing I would recommend is if you want to think about the future then you might want to consider making your views, docs, etc accessible by other comp apps by making them components up front.  Otherwise, design your applications in Designer.   If you have god access (designer) to the databases in question then you might want to question whether composites are worth it.<br /><br />I get this exact question all of the time.  My recommendation is to use composites when it makes sense - otherwise use the normal Notes design architecture.  Comp Apps give you an easy way to get your new Java plugin components working with and speaking to Notes components.  <br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080609-064240</guid>
			<author>Bob Balfe</author>
			<pubDate>Mon, 09 Jun 2008 13:42:40 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080609-064240</comments>
		</item>
		<item>
			<title>How I created the Excel component</title>
			<link>http://blog.balfes.net/index.php?entry=entry080606-124842</link>
			<description><![CDATA[Ok, let me preface by stating this Excel container did not ship in the Notes 8.5 beta.  If you seriously want it in the end product please let me know because I think it is slated as a web delivery for the moment.<br /><br />This is a very basic demo and it still uses the POC landmark editing UI, however I think you will get the point in the end.  It shows you how you can define properties and map those properties to cells and cell ranges in a spreadsheet. <br /><br />Once again, no programming!<br /><br /><i>click image for video</i><br /><a href="http://blog.balfes.net/files/HowICreatedExcelDemo/HowICreatedExcelDemo.html" target="_blank" ><img src="images/excel-demo.jpg" width="446" height="378" border="0" alt="" /></a><br /><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080606-124842</guid>
			<author>Bob Balfe</author>
			<pubDate>Fri, 06 Jun 2008 19:48:42 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080606-124842</comments>
		</item>
		<item>
			<title>Writing Eclipse plugins for Notes 8.5 and XPD 6.2</title>
			<link>http://blog.balfes.net/index.php?entry=entry080605-112645</link>
			<description><![CDATA[As <a href="http://lekkimworld.com/2008/06/05/notes_8_5_appdev_woes.html" target="_blank" >Mikkel</a> has already experienced, you need to using <a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.4RC3-200805301730/index.php" target="_blank" >Eclipse 3.4</a> when developing java plugins for Notes 8.5 or XPD 6.2.  We skipped over Eclipse 3.3 for various reasons.<br /><br />Another small change is the remote debug options. I often write code, deploy it to the runtime through an update site (once) then copy the plugins over from then on.  This way I can remote debug my Java plugins using the following command:<br /><br />C:\notes\framework\rcp\rcplauncher.exe -config notes -debug -clean -console -vmargs -Xdbg:transport=dt_socket,suspend=n,server=y,address=8020 -Xss512k<br /><br />You can also use the <a href="http://www.ibm.com/developerworks/lotus/library/expeditor-toolkit/" target="_blank" >Expeditor toolkit</a> to setup a workspace and launch Notes directly from your Eclipse IDE.<br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a><br />]]></description>
			<category>help</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080605-112645</guid>
			<author>Bob Balfe</author>
			<pubDate>Thu, 05 Jun 2008 18:26:45 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080605-112645</comments>
		</item>
		<item>
			<title>Notes view container proof of concept</title>
			<link>http://blog.balfes.net/index.php?entry=entry080604-075527</link>
			<description><![CDATA[This video was something I put together to show a prototype of a notes view container using the back-end Java classes.  The container is based on the new container work going into Notes 8.5 and Expeditor 6.2.  The amount of code to write the container was surprisingly small since I just inherited the Notes view parts. This also means anyone could have created this container using public API&#039;s.<br /><br />In this demo, I show how you can use Formula language for the landmark identifier (more on that term later) and also use formula for the field identifiers.  This makes for a powerful combination since you are not changing the database design.<br /><br />Lastly, I made the notes view containers be intelligent about multiple selections - this is what makes the demo possible.  I publish the multiple selections as elements separated by CRLF so the Excel container knows to span multiple rows.  I also do the same for a single selection on a multi-value field where the value is concatenated together with a TAB separator - to span columns.<br /><br />The UI is still the beta UI for the CAE stuff - which is actually already changed but hopefully you get the concepts.<br /><br /><i>click image for video</i><br /><a href="http://blog.balfes.net/files/Excel-Multi-Select-Demo2/Excel-Multi-Select-Demo2.html" target="_blank" ><img src="images/nview-excel-demo.jpg" width="446" height="284" border="0" alt="" /></a><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080604-075527</guid>
			<author>Bob Balfe</author>
			<pubDate>Wed, 04 Jun 2008 14:55:27 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=06&amp;entry=entry080604-075527</comments>
		</item>
		<item>
			<title>Region support for non-rectangular controls</title>
			<link>http://blog.balfes.net/index.php?entry=entry080528-105539</link>
			<description><![CDATA[In case you do not follow the Eclipse platform (which Notes and Expeditor sit on top of) the <a href="http://www.eclipse.org/swt/R3_4/new_and_noteworthy.html" target="_blank" >noteworthy new stuff</a> in Eclipse 3.4 is some pretty slick stuff.<br /><br /><b>Region based controls:</b><br /><img src="http://www.eclipse.org/swt/R3_4/images/regiononcontrol.png" border="0" alt="" /><br /><br /><b>Alpha values on shells:</b><br /><img src="http://www.eclipse.org/swt/R3_4/images/alpha.png" border="0" alt="" />]]></description>
			<category>lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080528-105539</guid>
			<author>Bob Balfe</author>
			<pubDate>Wed, 28 May 2008 17:55:39 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=05&amp;entry=entry080528-105539</comments>
		</item>
		<item>
			<title>American Idol does it again</title>
			<link>http://blog.balfes.net/index.php?entry=entry080522-190724</link>
			<description><![CDATA[I happen to be watching American Idol live last night - which is very rare with my DVR.  Thank God I did, they once again waited until 10:02 to announce the winner. My wife said so many people were pissed at work today because they recorded it and missed the announcement because the DVR was set to end at 10pm. I think this whole concept is classic and kudos to the producers.  Of course I hate it though.  :-)]]></description>
			<category>family</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080522-190724</guid>
			<author>Bob Balfe</author>
			<pubDate>Fri, 23 May 2008 02:07:24 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=05&amp;entry=entry080522-190724</comments>
		</item>
		<item>
			<title>Think Big, go Celtics!</title>
			<link>http://blog.balfes.net/index.php?entry=entry080519-032757</link>
			<description><![CDATA[In case you didn&#039;t hear, the Celtics won in game 7 and advance to the conference finals!  Cleveland actually gave everyone a little scare there for a moment but pulled through.<br /><br /><img src="images/wallpaper_garnett_pierce_allen_think_big800.jpg" width="640" height="480" border="0" alt="" />]]></description>
			<category>fun</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080519-032757</guid>
			<author>Bob Balfe</author>
			<pubDate>Mon, 19 May 2008 10:27:57 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=05&amp;entry=entry080519-032757</comments>
		</item>
		<item>
			<title>cai URL under the covers</title>
			<link>http://blog.balfes.net/index.php?entry=entry080506-125722</link>
			<description><![CDATA[<a href="http://lekkimworld.com/2008/05/06/new_compapp_url_type_cai.html" target="_blank" >Mikkel</a> wrote about the CAI url posting <a href="http://www-128.ibm.com/developerworks/wikis/display/appdev/Pass+Context+to+Components+when+opening+Composite+Applications" target="_blank" >Niklas</a> put on the Composite Application wiki.  These are all good comments about the format of the URL so I am not going to address the ugliness - I will just say there is a method to the madness.  <br /><br />What I can show you is, you can actually create the URL in code fairly easy (if you are on the Java side of the house of course). Since the page id is the perspective identifier you can use the Eclipse Workbench API&#039;s to get that.  Then, you can use the method I <a href="http://www.ibm.com/developerworks/wikis/display/appdev/Understanding+the+data+model" target="_blank" >wrote about</a> in the wiki to get the meta-data associated with the page.  Once you get the page object, the application the page is contained in is stored in the property &quot;applicationGUID&quot;.  You now have the GUID and the page ID for the cai url.<br /><br />You can also use the OSGI console to see this same information.  Start with using the &quot;<b>thsh p</b>&quot; command on the osgi console.  Then use the &quot;<b>thsh nctx &lt;page id&gt;</b>&quot; to get the properties that are written to the extension registry for the page.  Lastly, you can do the same thing with components:  get the list of components on a page with &quot;<b>thsh sc &lt;page id&gt;</b>&quot;  and that will show the properties for that component.<br /><br />See the sample console output below.<br /><br /><b>Topology OSGI commmands:</b><br /><pre>---Topology Handler Commands---<br />        thsh n - Show all navigation elements<br />        thsh p - Show all Pages<br />        thsh l - Show all Labels<br />        thsh f - Show all topology files<br />        thsh apps - Show all application GUIDs<br />        thsh e &lt;namespace&gt; - Show all registered extensions under the given namespace<br />        thsh dp - Show all dirty pages<br />        thsh nattr &lt;navigation id&gt; - Show all navigation preferences<br />        thsh nctx &lt;navigation id&gt; - Show navigation context<br />        thsh sc &lt;page id&gt; - Show components for a page<br />        thsh b &lt;page id&gt; - Show copies of the specified page<br /></pre><br /><br /><b>Sample console output:</b><br /><pre><br />osgi&gt; thsh p<br />------------------------------------------------<br />   Topology Handler All Page Elements<br />------------------------------------------------<br />        Application GUID: 11_5JMPDRH1000980269G784H2GO41209749441490<br />        --------------------------------<br />        TYPE_PERSPECTIVE; NAME = test application; ID = 6_5JMPDRH1000980269G784H2GO11209749441490; Application GUID = 11_5JMPDRH1000980269G784H2GO41209749441490<br /><br />        Application GUID: 11_ITM9DGL1087KE02MQFOQ5C2GK3<br />        --------------------------------<br />        TYPE_PERSPECTIVE; NAME = Browser sample; ID = 6_ITM9DGL1087KE02MQFOQ5C2G26; Application GUID = 11_ITM9DGL1087KE02MQFOQ5C2GK3<br />        TYPE_PERSPECTIVE; NAME = Portlet to Portlet Communication sample; ID = 6_ITM9DGL1087KE02MQFOQ5C2GQ6; Application GUID = 11_ITM9DGL1087KE02MQFOQ5C2GK3<br />        TYPE_PERSPECTIVE; NAME = Portlet to SWT Communication sample; ID = 6_ITM9DGL1087KE02MQFOQ5C2GE5; Application GUID = 11_ITM9DGL1087KE02MQFOQ5C2GK3<br />        TYPE_PERSPECTIVE; NAME = SWT to Portlet Communication sample; ID = 6_ITM9DGL1087KE02MQFOQ5C2BB1; Application GUID = 11_ITM9DGL1087KE02MQFOQ5C2GK3<br />        TYPE_PERSPECTIVE; NAME = Double Browser sample; ID = 6_ITM9DGL1087KE02MQFOQ5C2GP7; Application GUID = 11_ITM9DGL1087KE02MQFOQ5C2GK3<br />        TYPE_PERSPECTIVE; NAME = URL Selector to Launch Dynamic Action Page; ID = nav_CrossPageSource1; Application GUID = 11_ITM9DGL1087KE02MQFOQ5C2GK3<br />        TYPE_PERSPECTIVE; NAME = Dynamic Action Accepts a URL; ID = nav_CrossPage_ShowURL1; Application GUID = 11_ITM9DGL1087KE02MQFOQ5C2GK3<br /><br />        Application GUID: 1F_3KE527R20OGG702ELBAT9T10P0<br />        --------------------------------<br />        TYPE_PERSPECTIVE; NAME = Getting Started; ID = 6_3KE527R20OGG702ELBAT9T1091; Application GUID = 1F_3KE527R20OGG702ELBAT9T10P0<br /><br />        Application GUID: 1F_3KE527R20OGG702ELBAT9T10K7<br />        --------------------------------<br />        TYPE_PERSPECTIVE; NAME = Home; ID = 6_3KE527R20OGG702ELBAT9T10K6; Application GUID = 1F_3KE527R20OGG702ELBAT9T10K7<br /><br />        Application GUID: 11_5JMPDRH1000980269G784H2GO41209697938390<br />        --------------------------------<br />        TYPE_PERSPECTIVE; NAME = testApp; ID = 6_5JMPDRH1000980269G784H2GO11209697938390; Application GUID = 11_5JMPDRH1000980269G784H2GO41209697938390<br /><br />        Application GUID: BD973A4E8C0FCDED54C69CB23940B5FC_1F_3KE527R200VQ502MGJOIMC2096<br />        --------------------------------<br />        TYPE_PERSPECTIVE; NAME = Mail; ID = BD973A4E8C0FCDED54C69CB23940B5FC_6_3KE527R200VQ502MGJOIMC20H7; Application GUID = BD973A4E8C0FCDED54C69CB23940B5FC_1F_3KE527R200VQ502MGJOIMC2096<br />        TYPE_PERSPECTIVE; NAME = Calendar; ID = BD973A4E8C0FCDED54C69CB23940B5FC_6_3KE527R200VQ502MGJOIMC20T2; Application GUID = BD973A4E8C0FCDED54C69CB23940B5FC_1F_3KE527R200VQ502MGJOIMC2096<br />        TYPE_PERSPECTIVE; NAME = To Do; ID = BD973A4E8C0FCDED54C69CB23940B5FC_6_3KE527R200VQ502MGJOIMC20T7; Application GUID = BD973A4E8C0FCDED54C69CB23940B5FC_1F_3KE527R200VQ502MGJOIMC2096<br /><br />osgi&gt; thsh nctx BD973A4E8C0FCDED54C69CB23940B5FC_6_3KE527R200VQ502MGJOIMC20H7<br />------------------------------------------------<br />   Topology Handler Navigation Element Context<br />------------------------------------------------<br />        Context values for navigation BD973A4E8C0FCDED54C69CB23940B5FC_6_3KE527R200VQ502MGJOIMC20H7<br />                com.ibm.portal.app.input.launchUrl = notes:///852568BD0051EF1E/MailFS?OpenFrameset&amp;or1flg=32&amp;hashId=BD973A4E8C0FCDED54C69CB23940B5FC<br />                requestUrl = nrpc:/__852568BD0051EF1E/composite.xml?file=mail%5Cbbalfe.nsf&amp;name=NotesMailApps.xml&amp;launchUrl=notes%3A%2F%2F%2F852568BD0051EF1E%2FMailFS%3FOpenFrameset%26or1flg%3D32%26hashId%3DBD973A4E8C0FCDED54C69CB23940B5FC<br />                com.ibm.portal.app.input.name = NotesMailApps.xml<br />                com.ibm.portal.app.input.file = mail\bbalfe.nsf<br />                applicationGUID = BD973A4E8C0FCDED54C69CB23940B5FC_1F_3KE527R200VQ502MGJOIMC2096<br /><br />osgi&gt; thsh sc BD973A4E8C0FCDED54C69CB23940B5FC_6_3KE527R200VQ502MGJOIMC20H7<br />Component data for component id = BD973A4E8C0FCDED54C69CB23940B5FC_5_3KE527R208CCC02M6C5LO53091<br />----------------------------------------------------<br />        portletname = Notes 8.0 Mail Nav<br />        portletwindowid = BD973A4E8C0FCDED54C69CB23940B5FC_5_3KE527R208CCC02M6C5LO53091<br />        com.ibm.portal.app.input.launchUrl = notes:///852568BD0051EF1E/MailFS?OpenFrameset&amp;or1flg=32&amp;hashId=BD973A4E8C0FCDED54C69CB23940B5FC<br />        com.ibm.rcp.id = TMP_10006<br />        com.ibm.rcp.ratio = 0.5<br />        com.ibm.rcp.viewId = com.ibm.rcp.csiviews.viewpart.CSINavViewPart<br />        com.ibm.rcp.fastView = false<br />        applicationGUID = BD973A4E8C0FCDED54C69CB23940B5FC_1F_3KE527R200VQ502MGJOIMC2096<br />        com.ibm.rcp.closeable = false<br />        com.ibm.rcp.csiviews.viewpart.dburl = notes:///852568BD0051EF1E/MailFS?OpenFrameset<br />        requestUrl = nrpc:/__852568BD0051EF1E/composite.xml?file=mail%5Cbbalfe.nsf&amp;name=NotesMailApps.xml&amp;launchUrl=notes%3A%2F%2F%2F852568BD0051EF1E%2FMailFS%3FOpenFrameset%26or1flg%3D32%26hashId%3DBD973A4E8C0FCDED54C69CB23940B5FC<br />        com.ibm.rcp.moveable = true<br />        com.ibm.rcp.title = Notes Mail Navigator<br />        com.ibm.rcp.extensionType = simple view<br />        com.ibm.rcp.showTitle = true<br />        com.ibm.rcp.showquota = true<br />        com.ibm.portal.app.input.file = mail\bbalfe.nsf<br />        com.ibm.rcp.objectId = BD973A4E8C0FCDED54C69CB23940B5FC_5_3KE527R208CCC02M6C5LO53091<br />        com.ibm.portal.app.input.name = NotesMailApps.xml<br />        com.ibm.rcp.standalone = true<br />        com.ibm.rcp.visible = true</pre><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>help</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080506-125722</guid>
			<author>Bob Balfe</author>
			<pubDate>Tue, 06 May 2008 19:57:22 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=05&amp;entry=entry080506-125722</comments>
		</item>
		<item>
			<title>I am Iron Man</title>
			<link>http://blog.balfes.net/index.php?entry=entry080506-121233</link>
			<description><![CDATA[Ok, if you have not seen the movie go see it.  It was great!  It had the usual non-believable super hero stuff but your kids and the kid in you will love the movie.  And yes, there is a sneak peak at what&#039;s to come after the credits are complete.  However, the movie was so long I had to go to the bathroom right after.  I went to the bathroom when the credits started and got back in time to see the clip - btw, the credits are also amazingly long.<br /><br /><a href="javascript:openpopup('http://newsimg.bbc.co.uk/media/images/44627000/jpg/_44627042_ironman_226.jpg',800,600,false);"><img src="http://newsimg.bbc.co.uk/media/images/44627000/jpg/_44627042_ironman_226.jpg" border="0" alt="" /></a><br /><br />I don&#039;t know about anyone else but I wish I was as smart as Stack and I also wish I had that lab of his.<br />]]></description>
			<category>fun</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080506-121233</guid>
			<author>Bob Balfe</author>
			<pubDate>Tue, 06 May 2008 19:12:33 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=05&amp;entry=entry080506-121233</comments>
		</item>
		<item>
			<title>Taking a break with Jeff Dunham</title>
			<link>http://blog.balfes.net/index.php?entry=entry080429-073739</link>
			<description><![CDATA[I purchased tickets for Jeff&#039;s show back in February for Valentines day - we finally saw him Sunday night. The concert was the Spark of Insanity tour and was absolutely hilarious.  You have to have a pretty opened mind and not be sensitive (of course).  If you get a chance to see his show its well worth it.  You can see his tour schedule <a href="http://www.jeffdunham.com/tour.php" target="_blank" >here</a>.<br /><br />You can get a sneak preview here:<br /><br /><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/b0o7g-hjnrU&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/b0o7g-hjnrU&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>]]></description>
			<category>fun</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080429-073739</guid>
			<author>Bob Balfe</author>
			<pubDate>Tue, 29 Apr 2008 14:37:39 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080429-073739</comments>
		</item>
		<item>
			<title>SWT/JFace In Action</title>
			<link>http://blog.balfes.net/index.php?entry=entry080425-095345</link>
			<description><![CDATA[More and more Notes developers are diving into the Eclipse site of the equation.  One of the books I used as a good primer was the SWT/JFace In Action book from Manning publishing.  The book is a great resource for learning about SWT programming and architecture.  The one I had was for Eclipse 3.0 and a lot of it is still relevant but much has also been added in the last few releases.<br /><br />
<a href="http://www.amazon.com/gp/product/1932394273?ie=UTF8&tag=bobsblog0b-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1932394273"><img border="0" src="http://ecx.images-amazon.com/images/I/41TYZJNEEHL._SL160_.jpg"></a><img src="http://www.assoc-amazon.com/e/ir?t=bobsblog0b-20&l=as2&o=1&a=1932394273" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

<script type="text/javascript" src="http://www.assoc-amazon.com/s/link-enhancer?tag=bobsblog0b-20&o=1">
</script>
<noscript>
    <img src="http://www.assoc-amazon.com/s/noscript?tag=bobsblog0b-20" alt="" />
</noscript>]]></description>
			<category>lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080425-095345</guid>
			<author>Bob Balfe</author>
			<pubDate>Fri, 25 Apr 2008 16:53:45 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080425-095345</comments>
		</item>
		<item>
			<title>Ad click day!</title>
			<link>http://blog.balfes.net/index.php?entry=entry080418-063449</link>
			<description><![CDATA[I like to do this every so often.  Go to your favorite blogs and click a few ads!<br /><br /><br />Of course, mine are on the left side down a bit.  :-)]]></description>
			<category>fun</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080418-063449</guid>
			<author>Bob Balfe</author>
			<pubDate>Fri, 18 Apr 2008 13:34:49 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080418-063449</comments>
		</item>
		<item>
			<title>Adding custom launch items to the &quot;Open&quot; menu</title>
			<link>http://blog.balfes.net/index.php?entry=entry080416-100535</link>
			<description><![CDATA[Lotus Notes has a very cool UI where you can contribute launcher items to the Open menu.  You can not only contribute bookmarks and databases but you can create a custom handler to have just about anything launch from the Open menu.<br /><br />You can check out the <a href="http://publib.boulder.ibm.com/infocenter/ledoc/v6r11/index.jsp?topic=/com.ibm.rcp.tools.doc.appdev/tlaunchercustom.html" target="_blank" >Info Center help here</a> where it shows you how to add a contribution to the menu.  The one area the help does not go into is the handler implementation (<i>TestURILauncherItemHandler()</i>).  The great thing is the object passed in just needs to extend <a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/commands/AbstractHandler.html" target="_blank" >org.eclipse.core.commands.AbstractHandler</a> and override the execute event.  So really, you can pretty much do whatever you want in that method.<br /><br />From the help in the info center here are the out of the box handlers that get installed with the platform:<br /><br /><blockquote>    * <b>nativeProgramLaunchItem </b>-- Identifies the item as being a NativeProgramLauncherContributionItem class, which is a contribution item that starts a native program.<br /><br />    * <b>perspectiveLaunchItem </b>-- Identifies the item as being a PerspectiveLauncherContributionItem class, which is a contribution item that starts a standard client application by specifying an Eclipse perspective.<br /><br />    * <b>urlLaunchItem</b> -- Identifies the item as being a UrlLauncherContributionItem class, which is a contribution item that opens a URL.<br /></blockquote><br /><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>lotus, help</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080416-100535</guid>
			<author>Bob Balfe</author>
			<pubDate>Wed, 16 Apr 2008 17:05:35 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080416-100535</comments>
		</item>
		<item>
			<title>The perfect tool tip for Planet Lotus</title>
			<link>http://blog.balfes.net/index.php?entry=entry080415-115334</link>
			<description><![CDATA[I will admit, I had no idea this entry was at the perfect length for the Planet Lotus tooltips.<br /><br /><img src="images/planet-tip.jpg" width="550" height="119" border="0" alt="" />]]></description>
			<category>info</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080415-115334</guid>
			<author>Bob Balfe</author>
			<pubDate>Tue, 15 Apr 2008 18:53:34 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080415-115334</comments>
		</item>
		<item>
			<title>Creating extensions dynamically</title>
			<link>http://blog.balfes.net/index.php?entry=entry080415-101937</link>
			<description><![CDATA[I have been asked a few times how we create perspectives dynamically in Lotus Expeditor and Notes in the composite application space.  We actually create many extensions dynamically using the Eclipse <a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/RegistryFactory.html" target="_blank" >RegistryFactory</a> API.  The <a href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/RegistryFactory.html#getRegistry()" target="_blank" >getRegistry()</a> method returns an instance of the extension registry factory (<a href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IExtensionRegistry.html" target="_blank" >IExtensionRegistry</a>) where you can call <a href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/IExtensionRegistry.html#addContribution(java.io.InputStream,%20org.eclipse.core.runtime.IContributor,%20boolean,%20java.lang.String,%20java.util.ResourceBundle,%20java.lang.Object)" target="_blank" >addContribution()</a>.  Once this method is called the extension becomes available for use - usually reflected in a toolbar, menu, etc.<br /><br /><b>What would this kind of stuff be good for?  </b><br /><br />Say you have data stored in some other format - like an NSF, database, a external system - and you want that to be represented as some existing extension. You can now dynamically create those extensions from those other sources. This is exactly what we do for perspectives and other extensions in composite applications.<br /><br />Another great sample would be to clone an existing perspective but maybe add a different context to it.  For example, you could have your <a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/IPerspectiveFactory.html" target="_blank" >IPerspectiveFactory</a> class create the layout for your perspective and base the contents on the <a href="http://www.ibm.com/developerworks/wikis/display/appdev/Understanding+the+data+model" target="_blank" >Page data stored</a> in the composite application model.  This would allow your perspective to use this data space to initialize views and the data that is used in them.  This means you could then contribute a special launch contribution item to the Open menu, dynamically create a new perspective off of the current workbench selection and initialize that perspective with the selection data.  This would be yery similar to the Web Browser and Symphony documents.  Your perspective may be a &quot;user session&quot; for a banking application.  Each perspective may be a specific customer profile - so when you open up multiple instances of this perspective they would all point to different customers.<br /><br />The cool thing about using page and component data is it can be conditionally used.  You can use core Eclipse API&#039;s to get the data and if nothing is returned then its not available - if the data is returned you can use it!  Check out the <a href="http://www.ibm.com/developerworks/wikis/display/appdev/Understanding+the+data+model" target="_blank" >Wiki page</a> I wrote about this model.<br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a><br /><br />To see code samples <br />The code below has a variable called <b>buffer</b>.  The contents of buffer simply need to be the XML you would normally use for a plugin extension.  For example, the buffer could be this xml:<br /><br /><code>&lt;plugin&gt;<br />&lt;extension point=&quot;org.eclipse.ui.perspectives&quot;&gt;<br />   &lt;perspective<br />         name=&quot;Test&quot;<br />         class=&quot;org.eclipse.ui.articles.perspective.TestPerspective&quot;<br />         id=&quot;org.eclipse.ui.articles.perspective.Test&quot;&gt;<br />   &lt;/perspective&gt;<br />&lt;/extension&gt;<br />&lt;/plugin&gt;</code><br /><br />That sample plugin xml code came from the <a href="http://www.eclipse.org/articles/using-perspectives/PerspectiveArticle.html" target="_blank" >Using Eclipse Perspectives article</a>.<br /><br /><code>byte[] bytes = buffer.toString( ).getBytes(&quot;UTF-8&quot;);<br />is = new ByteArrayInputStream(bytes);<br />		<br />IExtensionRegistry registry = RegistryFactory.getRegistry( );<br />				<br />if (!registry.addContribution(is, contributor, false, null, translations, null)){<br />	//Log an error or something<br />}<br /></code><br /><br />Unfortunately there are some caveats to the call. The one major problem is the &quot;persist&quot; flag does nothing today.  So if you want your contributions to be available on next launch you need to do this every time.<br />]]></description>
			<category>lotus, help</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080415-101937</guid>
			<author>Bob Balfe</author>
			<pubDate>Tue, 15 Apr 2008 17:19:37 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080415-101937</comments>
		</item>
		<item>
			<title>The new Legos</title>
			<link>http://blog.balfes.net/index.php?entry=entry080415-095320</link>
			<description><![CDATA[Ok, my kids loved lincoln logs and Legos - and actually still use them a lot - mostly legos.  Now, my kids (even my five year old), only want to create maps in Halo 3.  They are creating some amazing maps and doing all sorts of things with the map building tool.  Floating crates, weapons, etc.  I watch them use the Halo tool and I am amazed by the user interface Halo has created for this.  I hate to say it but Microsoft actually did something really great.  I love the XBox and I love their games - and to have a 5 year old pick up such a complicated tool is pretty impressive.<br /><br />This reminds me of other games like Zoo Tycoon - another very popular game among my kids.  They learn so many things by these games it amazes me.  My youngest tells me what kinds of shelters and food certain animals like.  Very cool.<br /><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/halo" rel="tag">Halo</a> : <a href="http://technorati.com/tag/maps" rel="tag">maps</a> : <a href="http://technorati.com/tag/legos" rel="tag">legos</a>]]></description>
			<category>family</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080415-095320</guid>
			<author>Bob Balfe</author>
			<pubDate>Tue, 15 Apr 2008 16:53:20 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080415-095320</comments>
		</item>
		<item>
			<title>Lotus Expeditor Samples with code</title>
			<link>http://blog.balfes.net/index.php?entry=entry080408-064553</link>
			<description><![CDATA[Many may not be aware that Lotus Notes 8 has most of the Lotus Expeditor platform underneath it.  This means you have a wide range of new architectural and programmability options in the client.  There is <a href="http://publib.boulder.ibm.com/infocenter/ledoc/v6r11/index.jsp?topic=/com.ibm.rcp.tools.doc.appdev/intro_importingsampleswithoutrsdp.html" target="_blank" >a page</a> in the <a href="http://publib.boulder.ibm.com/infocenter/ledoc/v6r11/index.jsp?topic=/com.ibm.rcp.tools.doc.appdev/intro_importingsampleswithoutrsdp.html" target="_blank" >Expeditor Info Center</a> that lists the range of samples (with code) that can be referenced.  The link I reference is the one for installing the sample into base Eclipse.  <br /><br />Lotus Expeditor platform can be considered a client side middle-ware platform because it houses a transaction container, a web container, and a portlet container. This means you can distribute JSP&#039;s and portlets that run off-line in the client. You can do other things like sync data for store and forward architectures with the synchronization services.<br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> ]]></description>
			<category>lotus, help</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080408-064553</guid>
			<author>Bob Balfe</author>
			<pubDate>Tue, 08 Apr 2008 13:45:53 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080408-064553</comments>
		</item>
		<item>
			<title>Mikkel and the Taking Notes Twitter podcast</title>
			<link>http://blog.balfes.net/index.php?entry=entry080407-110442</link>
			<description><![CDATA[Just listened to the latest <a href="http://www.takingnotespodcast.com/" target="_blank" >Taking Notes podcast</a> - I really love this series.<br /><br />One thing that caught my attention was the comment about product documentation and samples.  We are in the process of revamping the Notes and Lotus Expeditor documentation around composite applications so if you have any requests or feedback I would love to take that back to our documentation team.  Anything, really.  From spelling mistakes, typos, format, you name it.<br /><br />I really like Mikkel&#039;s comment about the &quot;business problem&quot; and how to solve those.  It reminds me of a book I reviewed a while back &quot;<a href="http://www.amazon.com/review/R1G1TVVNOGMKE6/ref=cm_cr_rdp_perm" target="_blank" >The MFC Answer Book</a>&quot;<br /><br /><blockquote>Just the format alone of this book is priceless. The question-answer format makes it very easy to find things and makes a great quick reference with good examples.</blockquote><br /><br />Thanks,<br />Bob<br /><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>computers, lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080407-110442</guid>
			<author>Bob Balfe</author>
			<pubDate>Mon, 07 Apr 2008 18:04:42 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080407-110442</comments>
		</item>
		<item>
			<title>New export function in RAD 7.5 rocks</title>
			<link>http://blog.balfes.net/index.php?entry=entry080404-115556</link>
			<description><![CDATA[Ok, I am not sure if this came from Eclipse 3.4 or this is something Rational added but I absolutely love it!<br /><br />Now, I don&#039;t have to change all of the manifests to provide patches or export my plugins to a configured runtime.  This is going to save so much time and get rid of a big headache.<br /><br />What the feature does is automatically replace &quot;.qualifier&quot; with what you specify in the field to the right.  I matched it to my Notes 8.5 install for the property broker plugin.  Very cool.<br /><br /><a href="javascript:openpopup('images/rad75-export.jpg',618,496,false);"><img src="images/rad75-export.jpg" width="618" height="496" border="0" alt="" /></a><br /><br /><br /><b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>computers, lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080404-115556</guid>
			<author>Bob Balfe</author>
			<pubDate>Fri, 04 Apr 2008 18:55:56 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080404-115556</comments>
		</item>
		<item>
			<title>IBM&#039;s Impact 2008 in Vegas next week</title>
			<link>http://blog.balfes.net/index.php?entry=entry080404-055133</link>
			<description><![CDATA[I will be speaking next week at <a href="http://www-306.ibm.com/software/websphere/events/impact2008/" target="_blank" >Impact 2008</a>.  If any business partners or customers want to meet up for a brew let me know.  Here is my session information:<br /><br /><b>Title</b>:  Building rich client support with Lotus Expeditor Version 6.1<br /><b>Session Number</b>:  1738A<br /><b>Session Time</b>:  Thu, 10/Apr, 03:15 PM - 04:30 PM<br /><b>Location</b>:  MGM Grand - Room 320<br /><br />Hope to see you there!<br /><br />
<br>

<b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>computers, lotus</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080404-055133</guid>
			<author>Bob Balfe</author>
			<pubDate>Fri, 04 Apr 2008 12:51:33 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080404-055133</comments>
		</item>
		<item>
			<title>Faster loading plugins with deferred service instantiation</title>
			<link>http://blog.balfes.net/index.php?entry=entry080403-114959</link>
			<description><![CDATA[One of the things developers do in the bundle start() method  is register services (<a href="http://www.osgi.org/Main/HomePage" target="_blank" >OSGI</a> services that is). One best practice to follow is to not instantiate the underlying object until the service is requested.  <br /><br />In your start bundle you may have something like this in the first listing below.  The problem with service registration is the object you pass in has to be instantiated.<br /><br /><pre>public void start(BundleContext context) throws Exception {<br /><br />     mySvc = context.registerService(<br />                 MyOwnOSGIService.class.getName(),<br />                 new MyOwnOSGIService(), null);<br />}<br /></pre><br /><br />The key is to use <a href="http://www2.osgi.org/javadoc/r4/org/osgi/framework/ServiceFactory.html" target="_blank" >ServiceFactory</a> as the service object so it is queried by the OSGI platform when someone asks for your service.  This way, if your service does some large amount of initialization or io it will be deferred until needed.<br /><br /><pre><br />public class MyOwnOSGIService implements ServiceFactory {<br /><br />    private static MyOwnOSGIService SERVICE;<br /><br />    public Object getService(Bundle b, ServiceRegistration reg) {<br />        if (SERVICE == null)<br />            SERVICE = new MyOwnOSGIService();<br /><br />        return SERVICE;<br />    }<br />}</pre><br /><br />
<b>Tags: </b><a href="http://technorati.com/tag/Lotus+Expeditor" rel="tag">Lotus Expeditor</a> : <a href="http://technorati.com/tag/Lotus+Notes" rel="tag">Lotus Notes</a> : <a href="http://technorati.com/tag/Composite+Applications" rel="tag">Composite Applications</a>]]></description>
			<category>computers, help</category>
			<guid isPermaLink="true">http://blog.balfes.net/index.php?entry=entry080403-114959</guid>
			<author>Bob Balfe</author>
			<pubDate>Thu, 03 Apr 2008 18:49:59 GMT</pubDate>
			<comments>http://blog.balfes.net/comments.php?y=08&amp;m=04&amp;entry=entry080403-114959</comments>
		</item>
	</channel>
</rss>
