tag:blogger.com,1999:blog-39622828266129547752024-03-05T03:09:00.513-08:00GGBLOGGlenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-3962282826612954775.post-73281701091134997932008-12-22T00:44:00.000-08:002008-12-22T01:24:22.580-08:00GGBLOG – Just In Time MapReduce with OSGi<!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves>false</w:TrackMoves> <w:trackformatting/> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>EN-US</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>X-NONE</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; mso-themecolor:hyperlink; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {mso-style-noshow:yes; mso-style-priority:99; color:purple; mso-themecolor:followedhyperlink; text-decoration:underline; text-underline:single;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} </style> <![endif]--> <p class="MsoNormal">A couple of years ago I was thrown into a team lead role where I was responsible for distributing workload across a number of developers. During the first few months I found that as the workload increased so did my issues whilst trying to increase the teams scale. It took me a few more months to figure out that my team leading technique needed to be turned upside down.</p> <p class="MsoNormal">Instead of pushing the work out, I found it was much better for me to set up a work queues and have the developers pick up tasks from the queue. With this very minor change in technique I was able to double the team’s size without taking stress leave.</p> <p class="MsoNormal">I’ve taken this concept and attempted to implement it on OSGi whilst borrowing heavily from the world famous MapReduce research made available by the ingeniously generous folk over at Google.</p> <p class="MsoNormal">If you’d like to get my demo running or want to know what the most popular starting letter is on your favorite web pages, you can always follow the steps below. The steps should take around 5 – 10 minutes to complete.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Pre Requisites </p> <p class="MsoNormal">1) Install eclipse 3.4 (http://www.eclipse.org/)</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">2) Install the Rich Client Platform (<a href="http://www.eclipse.org/rap/gettingstarted.php">http://www.eclipse.org/rap/gettingstarted.php</a>)</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Running the Demo</p> <p class="MsoNormal">Download the mapreduce.zip example source code from:</p> <p class="MsoNormal">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=303652</p> <p class="MsoNormal">Open 2 instances of eclipse and create 2 new workspaces, eg. Node1 and Node2.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9mvTf-G-5K70YxI0WdYI5fyl0wNpgnQHzoWEWNk49lvHPSbR2thqehdSPK6pFB4GMAoW-45FP2PvKhPb2CgJmOnYofvQ_Qr6eQN6vmNpJI8iz21ybmHfediuRgB7KP3Ihm199Y3W5KJs/s1600-h/1.PNG"><img style="cursor: pointer; width: 320px; height: 132px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9mvTf-G-5K70YxI0WdYI5fyl0wNpgnQHzoWEWNk49lvHPSbR2thqehdSPK6pFB4GMAoW-45FP2PvKhPb2CgJmOnYofvQ_Qr6eQN6vmNpJI8iz21ybmHfediuRgB7KP3Ihm199Y3W5KJs/s320/1.PNG" alt="" id="BLOGGER_PHOTO_ID_5282533332673682434" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">In both instances configure RAP as the target platform.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click window -> preferences -> Plug in development -> target platform -> Select the RAP target platform location which is located at [ECLIPSE_HOME]/ configuration/org.eclipse.rap.target-1.1.1/eclipse</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJQ5o_2mIC2r_1t7EWJ9Bfngzkaun-2aDrEH1ke5FaS0ai6fUERhP-wXGlvcuOrFNqshLdCdZluCe_DdkwCDLMlGstZPPVuabfsu1L_Maehm1nMJwXIo4sdwvGX6PDM3YkqUKl9wCwpJc/s1600-h/2.PNG"><img style="cursor: pointer; width: 320px; height: 197px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJQ5o_2mIC2r_1t7EWJ9Bfngzkaun-2aDrEH1ke5FaS0ai6fUERhP-wXGlvcuOrFNqshLdCdZluCe_DdkwCDLMlGstZPPVuabfsu1L_Maehm1nMJwXIo4sdwvGX6PDM3YkqUKl9wCwpJc/s320/2.PNG" alt="" id="BLOGGER_PHOTO_ID_5282533334440537826" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Import the demo code into both instances of eclipse.</p> <p class="MsoNormal">Click file -> Import -> Existing Projects into workspace -> Select archive file -> click browse and select the mapreduce.zip file which you downloaded earlier.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtflU-kq9TRM3RYwlz6g8dptJFdI1nTn5O_7zQRSY0fwGKNiAdKg_Luol3lKeqZCiK9Pxj1UeO8-CyAq798eaVqjWeCPmf9V0O3rcJZWW8gd8rab1LZOTX8o3TO4WRDIWRifoJzDuH9xQ/s1600-h/3.PNG"><img style="cursor: pointer; width: 320px; height: 299px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtflU-kq9TRM3RYwlz6g8dptJFdI1nTn5O_7zQRSY0fwGKNiAdKg_Luol3lKeqZCiK9Pxj1UeO8-CyAq798eaVqjWeCPmf9V0O3rcJZWW8gd8rab1LZOTX8o3TO4WRDIWRifoJzDuH9xQ/s320/3.PNG" alt="" id="BLOGGER_PHOTO_ID_5282533335370324562" border="0" /></a></p> <p class="MsoNormal">In both instances of eclipse, Expand galang.research.rap.hello -> double click plugin.xml then click launch RAP application.</p> <p class="MsoNormal">In any eclipse instance click <span style=""> </span>Add URL content to memory.</p> <p class="MsoNormal">To add a few more pages, Paste the following URL’s and click Add URL content to memory after each one.</p> <p class="MsoNormal"><a href="http://cnn.com/">http://cnn.com</a></p> <p class="MsoNormal"><a href="http://slashdot.com/">http://slashdot.com</a></p> <p class="MsoNormal"><a href="http://engadget.com/">http://engadget.com</a></p> <p class="MsoNormal"><a href="http://smh.com.au/">http://smh.com.au</a></p> <p class="MsoNormal"><br /></p><p class="MsoNormal">Once youve added the above urls, click run map reduce. If you see both instances of eclipse showing the map reduce output, You’ve setup the demo as expected.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYKi6skikljLn-RO1TfVUerrMBfq7vYFXiaXGpoK1XPIeThViMCRCEzI6KfZurgzgbcNatnU-QlNIh2BEWN3RI2ocmR4vegLKi98vByjNM-0IcrdjARiNXeY7yBZdcGA1AIkPHCmWRE5A/s1600-h/5.PNG"><img style="cursor: pointer; width: 320px; height: 262px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYKi6skikljLn-RO1TfVUerrMBfq7vYFXiaXGpoK1XPIeThViMCRCEzI6KfZurgzgbcNatnU-QlNIh2BEWN3RI2ocmR4vegLKi98vByjNM-0IcrdjARiNXeY7yBZdcGA1AIkPHCmWRE5A/s320/5.PNG" alt="" id="BLOGGER_PHOTO_ID_5282533843937791746" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">What’s going on under the covers?</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">A wise/lazy man once said a picture says a thousand words so below is a sequence diagram of what is going on under the hood. You can also step through the code if diagrams aren’t your thing.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIpGcejA6WMnAibY2YWICZMItaOverr8bNk7IXH_GudVlp8t41YRzXj9dKdC_Ve2Z6Highx3MNHDFT-QHvX0UMdtXYJABVKY_jm8xUfd3egBomnrBblucZBt44gZkLr7nqGW7GH130bLQ/s1600-h/4.PNG"><img style="cursor: pointer; width: 376px; height: 247px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIpGcejA6WMnAibY2YWICZMItaOverr8bNk7IXH_GudVlp8t41YRzXj9dKdC_Ve2Z6Highx3MNHDFT-QHvX0UMdtXYJABVKY_jm8xUfd3egBomnrBblucZBt44gZkLr7nqGW7GH130bLQ/s320/4.PNG" alt="" id="BLOGGER_PHOTO_ID_5282533339390560290" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Can you use this algorithm for anything else?</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">I think there are more uses for this algorithm this than just counting the starting characters of words on web pages. You could use this to run a lot of sql queries in parallel then reduce the output. If you want to do more with this then I’d recommend playing around with MyMapper.java and MyReducer.java.</p> <p class="MsoNormal">I’d love to throw this code on a large number of nodes to see how quick I can get it run with gigabytes of data. If you’re a big iron or grid/cloud vendor with a few hundred nodes to spare you are more than welcome to drop me a line <span style=""></span>:) (glenn.galang@gmail.com).</p> <p class="MsoNormal"><o:p> </o:p></p>Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com2tag:blogger.com,1999:blog-3962282826612954775.post-24493145300969701982008-12-13T20:45:00.000-08:002008-12-14T00:13:52.386-08:00GGBLOG – Dynamic Distributed Data Clustering on OSGi<xml> <w:worddocument> <w:view></w:view><w:trackformatting><w:punctuationkerning><w:validateagainstschemas><w:donotpromoteqf><w:compatibility><w:breakwrappedtables><w:snaptogridincell><w:wraptextwithpunct><w:useasianbreakrules><w:dontgrowautofit><w:splitpgbreakandparamark><w:dontvertaligncellwithsp><w:dontbreakconstrainedforcedtables><w:dontvertalignintxbx><w:word11kerningpairs><w:browserlevel></w:browserlevel> <m:mathpr><m:mathfont val="Cambria Math"><m:brkbin val="before"><m:brkbinsub val="--"><m:smallfrac val="off"><m:dispdef><m:lmargin val="0"><m:rmargin val="0"><m:defjc val="centerGroup"><m:wrapindent val="1440"><m:intlim val="subSup"><m:narylim val="undOvr"></m:narylim></m:intlim></m:wrapindent><!--[endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; mso-themecolor:hyperlink; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {mso-style-noshow:yes; mso-style-priority:99; color:purple; mso-themecolor:followedhyperlink; text-decoration:underline; text-underline:single;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} </style> <![endif]--> <p class="MsoNormal">If you’ve followed some of my past posts you’ll notice I try to keep my examples small and as simple as they need to be. If I were to describe my programming style its very much back to basics and I’m a huge proponent of simplicity.</p> <p class="MsoNormal">I’ve whipped up a small example of how you can distribute data dynamically on OSGi using Hazelcast 1.4. I’ve really only scratched the surface of what you can do with this but thought I’d write up my first experiences with this light weight simple yet powerful framework. </p> <p class="MsoNormal"><o:p> </o:p></p> <p style="font-weight: bold;" class="MsoNormal">Running the Example. </p> <p class="MsoNormal">Download the cluster.zip example source code from:</p> <p class="MsoNormal">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=302726&release_id=647048</p> <p class="MsoNormal">Unzip the cluster.zip and start up 2 instances of eclipse 3.4. Open up the node1 and node2 directories in different instances of eclipse.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJgNUww7c99U48_AEsHDrlwnPmSs8usgDL5MwObw3EItJMQL0eW6LFSbjLusqb8uJuw2NcOrJ0mhwprK-nkyUMnaaptL-G668Aevc4nmTJIa29DJk4SRWVqfzspp1RMGccVp74ZVJjPcs/s1600-h/1.JPG"><img style="cursor: pointer; width: 190px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJgNUww7c99U48_AEsHDrlwnPmSs8usgDL5MwObw3EItJMQL0eW6LFSbjLusqb8uJuw2NcOrJ0mhwprK-nkyUMnaaptL-G668Aevc4nmTJIa29DJk4SRWVqfzspp1RMGccVp74ZVJjPcs/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5279504788948974738" border="0" /></a><span style=""> </span></p> <p class="MsoNormal">Click run light weight cluster in both instances of eclipse and Jetty should start up on port 9091 and 9092.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOkBuT8-PlAQXaEhk7tge9yp_ohUy-s82IiFvFQxxV9wMzjVg3b9e1gdp-L0T5XBh9EOYrDwWhpoakG0HKWKoHVSfiDwSw0Zhi4rYC05gDOYxSUNVZv6SC-SrX6WIBNL5g4-gGeZO93Sk/s1600-h/2.JPG"><img style="cursor: pointer; width: 320px; height: 260px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOkBuT8-PlAQXaEhk7tge9yp_ohUy-s82IiFvFQxxV9wMzjVg3b9e1gdp-L0T5XBh9EOYrDwWhpoakG0HKWKoHVSfiDwSw0Zhi4rYC05gDOYxSUNVZv6SC-SrX6WIBNL5g4-gGeZO93Sk/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5279504792545490514" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Open up two web browsers and in the first browser paste the following URL which will set cVal in a distributed Map on the first node.</p> <p class="MsoNormal"><a href="http://localhost:9091/sample?cVal=Glenn">http://localhost:9091/sample?cVal=Glenn</a></p> <p class="MsoNormal">In the second browser paste the following:</p> <p class="MsoNormal"><a href="http://localhost:9092/sample?check=true">http://localhost:9092/sample?check=true</a></p> <p class="MsoNormal">If you see the following you have successfully setup a dynamically distributed data cluster. </p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfROOzokXBRbLdJoT2ztVZ1oibpx0iwC7umtUs1A1gSMg71W3IWMo5t2HRXcLaDxSDY9-klublnkgH-LmI-EVekMkscXhjMa_-Flv_HnHay5dpS6x-t-V5fp1O8zySwb2SCYd_V3g8yNI/s1600-h/3.JPG"><img style="cursor: pointer; width: 320px; height: 159px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfROOzokXBRbLdJoT2ztVZ1oibpx0iwC7umtUs1A1gSMg71W3IWMo5t2HRXcLaDxSDY9-klublnkgH-LmI-EVekMkscXhjMa_-Flv_HnHay5dpS6x-t-V5fp1O8zySwb2SCYd_V3g8yNI/s320/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5279504792923117346" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p style="font-weight: bold;" class="MsoNormal">Where’s the magic?</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">If you have a look at SampleServlet.java <span style=""> </span>the magic is on line 27 and 32 where we get the map and set a value. Hazelcast makes it look like we are dealing with an ordinary map but the reality is that it possesses extraordinary distributed capability.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5d-1PmNc9j604S8iuTDw0hsBxdA6cPdyqsCT7zeZC2QsTS2pKvVr6lyeePNewfxyE4Xwv7yQX95tD_bAkHRCd1i0PRZevf7I-cq0B6QHxJ0mWKffaA0fibSWZOs2DzUYVkynrrGiwV0I/s1600-h/4.JPG"><img style="cursor: pointer; width: 320px; height: 168px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5d-1PmNc9j604S8iuTDw0hsBxdA6cPdyqsCT7zeZC2QsTS2pKvVr6lyeePNewfxyE4Xwv7yQX95tD_bAkHRCd1i0PRZevf7I-cq0B6QHxJ0mWKffaA0fibSWZOs2DzUYVkynrrGiwV0I/s320/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5279504793502572418" border="0" /></a></p> <p class="MsoNormal">If you have any questions on the demo feel free to drop me a line (<a href="mailto:glenn.galang@gmail.com">glenn.galang@gmail.com</a>) or head on over to hazelcast.com.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p></m:defjc></m:rmargin></m:lmargin></m:dispdef></m:smallfrac></m:brkbinsub></m:brkbin></m:mathfont></m:mathpr></w:word11kerningpairs></w:dontvertalignintxbx></w:dontbreakconstrainedforcedtables></w:dontvertaligncellwithsp></w:splitpgbreakandparamark></w:dontgrowautofit></w:useasianbreakrules></w:wraptextwithpunct></w:snaptogridincell></w:breakwrappedtables></w:compatibility></w:donotpromoteqf></w:validateagainstschemas></w:punctuationkerning></w:trackformatting></w:worddocument></xml>Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com1tag:blogger.com,1999:blog-3962282826612954775.post-48762786256475523212008-12-06T19:16:00.000-08:002008-12-06T19:43:46.449-08:00GGBLOG – Single Source OSGi Enterprise Architecture Pattern<!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves>false</w:TrackMoves> <w:trackformatting/> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>EN-US</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>X-NONE</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; mso-themecolor:hyperlink; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {mso-style-noshow:yes; mso-style-priority:99; color:purple; mso-themecolor:followedhyperlink; text-decoration:underline; text-underline:single;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:.5in; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:0in; margin-left:.5in; margin-bottom:.0001pt; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; mso-style-type:export-only; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:.5in; mso-add-space:auto; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:326713166; mso-list-type:hybrid; mso-list-template-ids:-1159059232 -655978676 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-text:"%1\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:.75in; text-indent:-.25in;} @list l1 {mso-list-id:1948123562; mso-list-type:hybrid; mso-list-template-ids:1524282834 -692141672 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l1:level1 {mso-level-text:"%1\)"; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:.75in; text-indent:-.25in;} ol {margin-bottom:0in;} ul {margin-bottom:0in;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} </style> <![endif]--> <p class="MsoNormal">The following article documents an architectural solution to a problem which I’ve encountered in many enterprise computing environments. <span style=""> </span></p> <p style="font-weight: bold;" class="MsoNormal">Problem:</p> <p class="MsoNormal">There are a wide variety of deployment artifacts which cannot be reused between different deployment environments. Copies of the artifacts are taken and modifications are made to enable compatibility for each different execution environments. Component dependencies on different deployment environments cause the code base to diverge over time and become specific to a particular execution environment. This causes the enterprise code base to grow exponentially for only a linear increase in functionality.</p> <p style="font-weight: bold;" class="MsoNormal">Solution and Consequence:</p> <p class="MsoNormal">Utilise OSGi as the execution back plane for service, web and desktop applications. <span style=""> </span>This solution delivers a unified approach to the creation, deployment and management of enterprise bundles. The consequence is that a linear relationship is formed between adding enterprise functionality and the size of the code base that enables it.</p> <p style="font-weight: bold;" class="MsoNormal">Structure:</p> <p class="MsoNormal">The diagram below shows the architectural structure of this pattern.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSOvk2qbwN9O_SLTPYR72surwkFaFt7Mswue-F2DL4TguebR2WQik39di3IybscROmjInoD9ehFremBwkEULf7t3-qnVheEDPO4L-ho4Fz12HEJfO4zunOZ-RTknA3_RZJF6gTiUNK0MI/s1600-h/1.PNG"><img style="cursor: pointer; width: 320px; height: 232px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSOvk2qbwN9O_SLTPYR72surwkFaFt7Mswue-F2DL4TguebR2WQik39di3IybscROmjInoD9ehFremBwkEULf7t3-qnVheEDPO4L-ho4Fz12HEJfO4zunOZ-RTknA3_RZJF6gTiUNK0MI/s320/1.PNG" alt="" id="BLOGGER_PHOTO_ID_5276883901675061298" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p style="font-weight: bold;" class="MsoNormal">Example Strategy and Code:</p> <p class="MsoNormal">Example code is available for download at:</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a href="https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=301845">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=301845</a></p> <p class="MsoNormal">Download OSGiEAPattern.zip</p> <p class="MsoNormal">The example strategy and code makes use of: </p> <p class="MsoListParagraphCxSpFirst" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=""><span style="">1)<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]-->Equinox as the OSGi execution environment, </p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=""><span style="">2)<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]-->Rich Ajax Platform as the rich web application</p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=""><span style="">3)<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]-->Rich Client Platform as the rich desktop application, </p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=""><span style="">4)<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]-->Apache CXF as the Web Service consumer </p> <p class="MsoListParagraphCxSpLast" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=""><span style="">5)<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]-->JAX-WS as the service layer</p> <p class="MsoNormal"><o:p> </o:p></p> <p style="font-weight: bold;" class="MsoNormal">Installing the example code:</p> <p style="font-weight: bold;" class="MsoNormal">Pre requisites:</p> <p class="MsoListParagraphCxSpFirst" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=""><span style="">1)<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]-->Install eclipse 3.4 (http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR1/eclipse-java-ganymede-SR1-win32.zip)</p> <p class="MsoListParagraphCxSpLast" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=""><span style="">2)<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]-->Install the Rich Client Platform (<a href="http://www.eclipse.org/rap/gettingstarted.php">http://www.eclipse.org/rap/gettingstarted.php</a>)</p> <p class="MsoNormal"><o:p> </o:p></p> <p style="font-weight: bold;" class="MsoNormal">Running the Rich Desktop Application</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Start eclipse and new workspace.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMf7IbhXui24bcVb2KaUJDvnDyfAHKgBnMJrSKFDIEegFilntm290ym-wklGSlSyntUV3qykW8AL4oxb2JJKLDp5BcS1TAwqshxmKfOyvW-eJbMXvSRDTLx5Lx8Pd0CJrGNA52Zmtd2K0/s1600-h/2.PNG"><img style="cursor: pointer; width: 320px; height: 132px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMf7IbhXui24bcVb2KaUJDvnDyfAHKgBnMJrSKFDIEegFilntm290ym-wklGSlSyntUV3qykW8AL4oxb2JJKLDp5BcS1TAwqshxmKfOyvW-eJbMXvSRDTLx5Lx8Pd0CJrGNA52Zmtd2K0/s320/2.PNG" alt="" id="BLOGGER_PHOTO_ID_5276883906539806786" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click window -> prefererences -> Plug in development -> target platform -> tick group plug-ins by location, Select or ensure that the target platform location is the standard directory and not pointing to the rich ajax platform plugins.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs79AKLRCIBgy88nwzZ_A1bHtZhFW3vpLNNTh35JD8zww0e9XpUY7Z6qLQNYMoa8yL2XtGrJPSgsMsrVKhaZxISJa2Y39uFioSepv2jq843LFtkd1dFXsiK0nUJQDupUQRLZIQdcqPrXs/s1600-h/3.PNG"><img style="cursor: pointer; width: 320px; height: 261px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs79AKLRCIBgy88nwzZ_A1bHtZhFW3vpLNNTh35JD8zww0e9XpUY7Z6qLQNYMoa8yL2XtGrJPSgsMsrVKhaZxISJa2Y39uFioSepv2jq843LFtkd1dFXsiK0nUJQDupUQRLZIQdcqPrXs/s320/3.PNG" alt="" id="BLOGGER_PHOTO_ID_5276883912149388882" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click File -> import -> Existing projects into workspace:</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPuW4XUS4VNZVuyXHbsPwFK9oxziv4Q03rjBeqLjXZR9kT3egMCgQDmSh-DFAcTsfn2MWtboPnUjxp7weUVk1ZFV51o2NAuDM63CSqs8IWZWiLYgWL4bPaBQ9Y7aw2p9_-2RrPSNcme1s/s1600-h/4.PNG"><img style="cursor: pointer; width: 274px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPuW4XUS4VNZVuyXHbsPwFK9oxziv4Q03rjBeqLjXZR9kT3egMCgQDmSh-DFAcTsfn2MWtboPnUjxp7weUVk1ZFV51o2NAuDM63CSqs8IWZWiLYgWL4bPaBQ9Y7aw2p9_-2RrPSNcme1s/s320/4.PNG" alt="" id="BLOGGER_PHOTO_ID_5276883916859183394" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click next -> select archive file -> browse and select the OSGiEAPattern.zip which you can download from <a href="https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=301845">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=301845</a></p> <p class="MsoNormal">Deselect galang.research.rap.hello and click finish</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh671Okj7rAew_So-Ss0e631f6Rh1RLAYh-5GaDU0tcTV3NH5Cc4378TtFhA-E_enUhvd_XQijOjk3DcdBrmcCD1vpRQAnBuA4vaFTEHO44wXJmEmVx-1Ovn_RfQ-rOoE4m9u6CvyrgRs/s1600-h/5.PNG"><img style="cursor: pointer; width: 274px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh671Okj7rAew_So-Ss0e631f6Rh1RLAYh-5GaDU0tcTV3NH5Cc4378TtFhA-E_enUhvd_XQijOjk3DcdBrmcCD1vpRQAnBuA4vaFTEHO44wXJmEmVx-1Ovn_RfQ-rOoE4m9u6CvyrgRs/s320/5.PNG" alt="" id="BLOGGER_PHOTO_ID_5276883918321666914" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Select Run configurations -> select OSGi -> select new –> deselect workspace and target platform -> tick galang.research.esb -> add required bundles, you should now have 13 bundles selected</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIi7819OddXVouhhvMbK3j1sy1HE-wQwYk6M1nLn1D_G-Qn_satNzu2pe6jqynw9ApV6QtBE3gV1irr2MEno0jJFyHkYsO3ZhOA1dXxi7VOZ4iIFJi46g4WXHtHWLIOHEByWX4wdRq7zY/s1600-h/6.PNG"><img style="cursor: pointer; width: 320px; height: 222px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIi7819OddXVouhhvMbK3j1sy1HE-wQwYk6M1nLn1D_G-Qn_satNzu2pe6jqynw9ApV6QtBE3gV1irr2MEno0jJFyHkYsO3ZhOA1dXxi7VOZ4iIFJi46g4WXHtHWLIOHEByWX4wdRq7zY/s320/6.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884139871848738" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click Run then double click plugin.xml within galang.research.rcp.hello -> click overview </p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsS9x587bi9-nQ23d9JToAgQPh5R1oZ3CoTWCLRvm8TCJPaOECYyKwvxf2fJvvFQsQtd9_2-TwxUFCnRHtvT8v_djH6VSMEOYs24yO54hZPy9PxmUBZpi_HPWr_QY46L1fCTxEH-FQ35Q/s1600-h/7.PNG"><img style="cursor: pointer; width: 320px; height: 231px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsS9x587bi9-nQ23d9JToAgQPh5R1oZ3CoTWCLRvm8TCJPaOECYyKwvxf2fJvvFQsQtd9_2-TwxUFCnRHtvT8v_djH6VSMEOYs24yO54hZPy9PxmUBZpi_HPWr_QY46L1fCTxEH-FQ35Q/s320/7.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884148401661314" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><span style=""> </span>click Launch eclipse application and type in your name and click “Call web service”</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh166fNXbcsrSl3u4bphPxDMA0drNbjNZb7BMp6e6_fddVur6WhiGQvB91vv0_O5tDVGKR4Podgx5WpFPsKuyS7RKv8VExdTmELZRJVQWRTLcxXEFR4eJqUy_E0IogXQPNeFC6Rt1EG_L8/s1600-h/8.PNG"><img style="cursor: pointer; width: 320px; height: 241px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh166fNXbcsrSl3u4bphPxDMA0drNbjNZb7BMp6e6_fddVur6WhiGQvB91vv0_O5tDVGKR4Podgx5WpFPsKuyS7RKv8VExdTmELZRJVQWRTLcxXEFR4eJqUy_E0IogXQPNeFC6Rt1EG_L8/s320/8.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884151840571682" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p style="font-weight: bold;" class="MsoNormal">Running the Rich Web Application</p> <p class="MsoNormal">Ensure that you have installed the Rich Ajax Platform.</p> <p class="MsoNormal"><a href="http://www.eclipse.org/rap/gettingstarted.php">http://www.eclipse.org/rap/gettingstarted.php</a></p> <p class="MsoNormal">Start eclipse and a new workspace.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFpmuCmx9Q6dQcLAc8oJPOXhJbkjppQZpouB9YjMUyaoc6EvxyxTIG9G98zzNykmDJR2A94A_9by7Smbj7BnrcNRbPLjMq4oNtLQcWgtMpqBD3dd-A3B9od8cLF3IThD4bw6qh37wRmTc/s1600-h/9.PNG"><img style="cursor: pointer; width: 320px; height: 132px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFpmuCmx9Q6dQcLAc8oJPOXhJbkjppQZpouB9YjMUyaoc6EvxyxTIG9G98zzNykmDJR2A94A_9by7Smbj7BnrcNRbPLjMq4oNtLQcWgtMpqBD3dd-A3B9od8cLF3IThD4bw6qh37wRmTc/s320/9.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884158014990258" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click window -> prefererences -> Plug in development -> target platform -> tick group plug-ins by location, Select or ensure that the target platform location is the pointing to the rich ajax platform plugins which is located at [ECLIPSE_HOME]/ configuration/org.eclipse.rap.target-1.1.1/eclipse</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9EE7Vt86um5zzGo8nVQd_MIfm3CHLUts353X4MQOUIABFBDqHZkDk9RaZJInzX6LssNWxl2kbZdmJqlKckx3GzjN5lEiexlt9p-aKnQdRzH8CusBcNg4e5bHb_ANWY4bZWrPY7fowr3k/s1600-h/10.PNG"><img style="cursor: pointer; width: 320px; height: 217px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9EE7Vt86um5zzGo8nVQd_MIfm3CHLUts353X4MQOUIABFBDqHZkDk9RaZJInzX6LssNWxl2kbZdmJqlKckx3GzjN5lEiexlt9p-aKnQdRzH8CusBcNg4e5bHb_ANWY4bZWrPY7fowr3k/s320/10.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884154726724706" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click File -> import -> Existing projects into workspace:</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-d-7PTSHoyegsAO3vXVdMCV1xAmLc7ay_8cN7Ocyor6unF8A532dPmdLBIW-Z4MjLqedinMg26lIm3_21hhJf9OY7NJMHgwB4oED92jfuQATeByM9caAFsEBxNYgXd6oHeXIW4Mll_e0/s1600-h/11.PNG"><img style="cursor: pointer; width: 274px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-d-7PTSHoyegsAO3vXVdMCV1xAmLc7ay_8cN7Ocyor6unF8A532dPmdLBIW-Z4MjLqedinMg26lIm3_21hhJf9OY7NJMHgwB4oED92jfuQATeByM9caAFsEBxNYgXd6oHeXIW4Mll_e0/s320/11.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884327065864242" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click next -> select archive file -> browse and select the workspaces.zip which you can downloaded from </p> <p class="MsoNormal"><a href="https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=301845">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=301845</a></p> <p class="MsoNormal">Download OSGiEAPattern.zip</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Deselect galang.research.<b style="">rcp</b>.hello and click finish </p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxnvxESrsV0T0Lgml6tsepI6KBYb0hxRWcjKyd5J9p9SpBmH5dLkKHNP9uimNf7RLiye2CkgfAvaI7QYhYPnH3pIxh242iDO3nLGtPQlZnsbtWuXH1DWDytgsFiIo_p0JhMdjDRqw1epY/s1600-h/12.PNG"><img style="cursor: pointer; width: 274px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxnvxESrsV0T0Lgml6tsepI6KBYb0hxRWcjKyd5J9p9SpBmH5dLkKHNP9uimNf7RLiye2CkgfAvaI7QYhYPnH3pIxh242iDO3nLGtPQlZnsbtWuXH1DWDytgsFiIo_p0JhMdjDRqw1epY/s320/12.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884326603649938" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Right click galang.research.rap.hello.launch</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt2pYfYw92PbtuHhDp7IGgeDdsns23VmYJHWOdrHdUr5jYLEdr2AETcwUofcxWgDi-r8gr3ptMVOmegBCYAKDqzY9jerRwI5SeFQtEx1ENTLcWak4zPqiD2Uhprxm677RTM-MtGDSGJrI/s1600-h/13.PNG"><img style="cursor: pointer; width: 320px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt2pYfYw92PbtuHhDp7IGgeDdsns23VmYJHWOdrHdUr5jYLEdr2AETcwUofcxWgDi-r8gr3ptMVOmegBCYAKDqzY9jerRwI5SeFQtEx1ENTLcWak4zPqiD2Uhprxm677RTM-MtGDSGJrI/s320/13.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884333372056930" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">type in your name click Call web service</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz79oOaPIymn71BFlW6q4HBrFI-13j65QF5_1ZRunM-RWmTCt09_cM7-Q_9XfhaIY8uvLohBOjBaFqclq_iK-Fw8NK0AFtK86qhDe7rIuxqvR1BSkAiOXFPoWXy2wDf2uzF7RB6gYf8i8/s1600-h/14.PNG"><img style="cursor: pointer; width: 320px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz79oOaPIymn71BFlW6q4HBrFI-13j65QF5_1ZRunM-RWmTCt09_cM7-Q_9XfhaIY8uvLohBOjBaFqclq_iK-Fw8NK0AFtK86qhDe7rIuxqvR1BSkAiOXFPoWXy2wDf2uzF7RB6gYf8i8/s320/14.PNG" alt="" id="BLOGGER_PHOTO_ID_5276884337286657138" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">If you have any questions or want to work with me to implement a strategy for this pattern based on your java technology stack feel free to drop me a line (<a href="mailto:glenn.galang@gmail.com">glenn.galang@gmail.com</a>).</p> <p class="MsoNormal"><br /><span style="font-weight: bold;">Related Articles:</span></p> <p style="font-weight: bold;" class="MsoNormal"><o:p> </o:p></p> <p style="font-weight: bold;" class="MsoNormal">OSGi</p> <p class="MsoNormal"><a href="http://ggalangblog.blogspot.com/2008/11/ggblog-light-weight-reporting-server-on.html">http://ggalangblog.blogspot.com/2008/11/ggblog-light-weight-reporting-server-on.html</a></p> <p style="font-weight: bold;" class="MsoNormal">RAP</p> <p class="MsoNormal"><a href="http://ggalangblog.blogspot.com/2008/11/ggblog-chat-on-rap.html">http://ggalangblog.blogspot.com/2008/11/ggblog-chat-on-rap.html</a></p> <p style="font-weight: bold;" class="MsoNormal">RCP</p> <p class="MsoNormal"><a href="http://ggalangblog.blogspot.com/2008/11/ggblog-dynamic-jface-xml-tableviewer.html">http://ggalangblog.blogspot.com/2008/11/ggblog-dynamic-jface-xml-tableviewer.html</a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"> <!--[if !supportLineBreakNewLine]--> <!--[endif]--></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p>Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-81372690754082971482008-11-28T23:18:00.000-08:002008-11-28T23:35:01.502-08:00GGBLOG – Light weight reporting server on Equinox OSGi<!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves>false</w:TrackMoves> <w:trackformatting/> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>EN-US</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>X-NONE</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; mso-themecolor:hyperlink; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {mso-style-noshow:yes; mso-style-priority:99; color:purple; mso-themecolor:followedhyperlink; text-decoration:underline; text-underline:single;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} </style> <![endif]--> <p class="MsoNormal">I’ve been building software for quite a few years now and as software programming techniques have advanced, so has the number of layers. </p> <p class="MsoNormal">Every once in a while a technology comes along which changes the way we think. Of late I’ve been hearing a lot about how cloud computing will allow us to scale our applications out. I think OSGi can give us similar results at a micro level by removing the traditional boundaries and layers on which our java applications are currently built.</p> <p class="MsoNormal">OSGi heavily encourages the breaking up of our applications into bundles or modular components which can be readily plugged into mobile, desktop and server architectures.</p> <p class="MsoNormal">I’m forever trying to update my 90’s programming style, so in attempt to get up to speed with OSGi I’ve put together a light weight reporting server based on Equinox OSGi and Jasper Reports 3.1.2.<span style=""> </span></p> <p class="MsoNormal">If you’d like to have a look at code and get the demo running feel free to follow the steps below.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Running the Demo</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Download the the LWJSOSGi.zip file from: </p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a href="https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=300872">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=300872</a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Once downloaded, unzip it onto your local pc and open Eclipse 3.4 and select the directory which you unzipped to.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTVVJUmyh1xhNJyo7ECX4y6uRzX2lyrDoAu8OStHF9ACOTwU7gLf18cnZhubQ-30XLx1xFIlyf5fkuL74P4Q-zMjV2uMpEykzmoDVCL1Pc8lMO_KpK5yej2BEnOjZo19fyJewX9UZ71E/s1600-h/1.JPG"><img style="cursor: pointer; width: 320px; height: 132px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTVVJUmyh1xhNJyo7ECX4y6uRzX2lyrDoAu8OStHF9ACOTwU7gLf18cnZhubQ-30XLx1xFIlyf5fkuL74P4Q-zMjV2uMpEykzmoDVCL1Pc8lMO_KpK5yej2BEnOjZo19fyJewX9UZ71E/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5273976712265892754" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click the down arrow next to the run button and select Run Light Weight Jasper Server</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhElaHph7B0k84Tzb8MztsOySD3XDK1Jn0T3rY-az3nWKLQVXq4xddIYdsbweFd5-b5Aj0KV1gPm8LTJui5rTqM6AMyTKN-tZ1WX_U-MjAsDh9dg1wrNIBt3xqDB5jwOUjphYQwL1WO7w/s1600-h/2.JPG"><img style="cursor: pointer; width: 320px; height: 226px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhElaHph7B0k84Tzb8MztsOySD3XDK1Jn0T3rY-az3nWKLQVXq4xddIYdsbweFd5-b5Aj0KV1gPm8LTJui5rTqM6AMyTKN-tZ1WX_U-MjAsDh9dg1wrNIBt3xqDB5jwOUjphYQwL1WO7w/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5273976713435413794" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">If you see the following the server is now running.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmEO3QBpenQEZjQMAL3vewv-ZU8OAHSOfAL76MyWkyuVONNU6AriAUoY0HBROA2nEtH-jKtyqPK50zXOx9ZqpUFq8CQL3yeZNhh8lAZjMdlraQLEofEKuqIdukWcldpDYurJ6pSetZA_I/s1600-h/3.JPG"><img style="cursor: pointer; width: 320px; height: 242px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmEO3QBpenQEZjQMAL3vewv-ZU8OAHSOfAL76MyWkyuVONNU6AriAUoY0HBROA2nEtH-jKtyqPK50zXOx9ZqpUFq8CQL3yeZNhh8lAZjMdlraQLEofEKuqIdukWcldpDYurJ6pSetZA_I/s320/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5273976711673703058" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Copy test.jasper, test.jrxml and test.xml from LWJOSGi.zip file to /temp/ (c:\temp on windows).</p> <p class="MsoNormal">Open up a web browser and paste the following url.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a href="http://localhost/reportInput?INPUT_XML=/temp/test.xml&JASPER_FILE=/temp/test.jasper&PARENT_XPATH=/RowCollection/Row&EXPORT_TYPE=pdf">http://localhost/reportInput?INPUT_XML=/temp/test.xml&JASPER_FILE=/temp/test.jasper&PARENT_XPATH=/RowCollection/Row&EXPORT_TYPE=pdf</a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">You should get a prompt like the following.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMDbLewagqHW1QH3CWZnxhwOIK2sFZobtZHUCY4tknWmg0BZOsGgrN4aQcuaCw3Y6JFleIjc7_YtQg7Y24QCjgbiD_gC904legYic4PXtNKW6LsQYaNml7_1M4oWcvCKzIVcLtjlseXg/s1600-h/4.JPG"><img style="cursor: pointer; width: 320px; height: 270px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMDbLewagqHW1QH3CWZnxhwOIK2sFZobtZHUCY4tknWmg0BZOsGgrN4aQcuaCw3Y6JFleIjc7_YtQg7Y24QCjgbiD_gC904legYic4PXtNKW6LsQYaNml7_1M4oWcvCKzIVcLtjlseXg/s320/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5273976722187545250" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Open with adobe reader and if you see the following pdf, you have the demo successfully running.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOU2UI9O8YbtiKQqVW4w_T3epUZbbxzlQdEkheafIiVRxM5eIn1qhE02K3XlrY3Gn07F5ZLWzXbRebnkqn6_BQvQtno6YCd-tx3UBu7H3Yo2ULvCLV6L9g7j9YdrA-CfEfENthEt_2AyU/s1600-h/5.JPG"><img style="cursor: pointer; width: 320px; height: 265px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOU2UI9O8YbtiKQqVW4w_T3epUZbbxzlQdEkheafIiVRxM5eIn1qhE02K3XlrY3Gn07F5ZLWzXbRebnkqn6_BQvQtno6YCd-tx3UBu7H3Yo2ULvCLV6L9g7j9YdrA-CfEfENthEt_2AyU/s320/5.JPG" alt="" id="BLOGGER_PHOTO_ID_5273976722373429186" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Optional Step: if you want to change the report download iReport 3.1.2 and open up /temp/test.jrxml and compile the report back to /temp/test.jasper, no need to restart the server after you recompile the jrxml.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_cg5T8IzyCkps-ov8KZ2VUQlOPrcnIsRKYTOGxoJKTvfm0V6hhbFddcn4fkyFXwSKkZcILvuGN4uPaKNCecyE6K-DmlHFcoGFjTVIHwTZRwK4-GpHxVVZOXAjTJ5BiXtJJ6BHjI-SSBs/s1600-h/8.JPG"><img style="cursor: pointer; width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_cg5T8IzyCkps-ov8KZ2VUQlOPrcnIsRKYTOGxoJKTvfm0V6hhbFddcn4fkyFXwSKkZcILvuGN4uPaKNCecyE6K-DmlHFcoGFjTVIHwTZRwK4-GpHxVVZOXAjTJ5BiXtJJ6BHjI-SSBs/s320/8.JPG" alt="" id="BLOGGER_PHOTO_ID_5273977894219895186" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Performance</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">I ran a quick burn test and right out of the box with no tweaking or tuning, the server managed to generate 56 pdfs/second or 3,358 pdfs/minute on a Core 2 Duo 2.4 ghz with 2 gig ram (Win XP).</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZHbzVRffNYXjfrjiTlSGcnWTkNXjDbv6S7dGeDeHbTPWqAkAnMeoYsjCqxZv69LteojRm605QJPiSLzlMbofQJhItuvIlSGbJtJKsa43IQgXaXV3CspK515Uf4m9g6xJ1qVVzk4h6iv0/s1600-h/7.JPG"><img style="cursor: pointer; width: 320px; height: 217px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZHbzVRffNYXjfrjiTlSGcnWTkNXjDbv6S7dGeDeHbTPWqAkAnMeoYsjCqxZv69LteojRm605QJPiSLzlMbofQJhItuvIlSGbJtJKsa43IQgXaXV3CspK515Uf4m9g6xJ1qVVzk4h6iv0/s320/7.JPG" alt="" id="BLOGGER_PHOTO_ID_5273977891458776306" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">If I ever need upgrade/dowgrade the jasper distribution I simply create a new jasper reports bundle and configure the runtime dependencies via Equinox. If this were a traditional webapp I’d have to worry about breaking other modules that live inside WEB-INF/lib or within the shared app server lib directory.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJo8_Hh_nYxPIqiWfP-AA1qWEhAMGiAQUgaGEYG7DnVt35PPPqd3KHP_mVQcIr4uZCRvB_WhXpWg23rlId6zEpt9ukh0RNHB0zf8gTJv0emQub_ddp7BVLxu7g8NI31KCnmSV3uBmDPwU/s1600-h/6.JPG"><img style="cursor: pointer; width: 320px; height: 217px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJo8_Hh_nYxPIqiWfP-AA1qWEhAMGiAQUgaGEYG7DnVt35PPPqd3KHP_mVQcIr4uZCRvB_WhXpWg23rlId6zEpt9ukh0RNHB0zf8gTJv0emQub_ddp7BVLxu7g8NI31KCnmSV3uBmDPwU/s320/6.JPG" alt="" id="BLOGGER_PHOTO_ID_5273976812664875218" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">If you have any troubles/questions with the demo or want to know a bit more detail on any specific area feel free to drop me a line (glenn.galang@gmail.com). </p>Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com2tag:blogger.com,1999:blog-3962282826612954775.post-23009106967604140642008-11-23T02:26:00.000-08:002008-11-23T03:15:41.604-08:00GGBLOG – Chat on the RAPI thought I’d check out the rich Ajax platform and see how well my RCP skills carry across. My first impressions are that I’m feeling pretty much at home on the RAP. <p class="MsoNormal">The vision of single sourcing is upon us and has huge potential to vastly reduce the amount of code we need to write where similar functionality is to be delivered on both a web browser and a rich desktop client.</p> <p class="MsoNormal">I’ve put together a fairly primitive chat room that uses the rich ajax platform we’ve all been hearing a lot about.<span style=""> </span>If you’d like to install it and have a look at the code you can follow the steps below.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Install the rich ajax platform, taken from http://www.eclipse.org/rap/gettingstarted.php:</p><br /><p><strong>For Eclipse 3.4 or later...</strong> </p><ul style="margin-left: 10px;"><li>With Eclipse up and running, select the <strong>Help</strong> > <strong>Software Updates...</strong> menu entry.</li><li>Select the <strong>Available Software</strong> tab and click the <strong>Add Site...</strong> button.</li><li>In the upcoming <strong>Add Site</strong> dialog, enter enter the RAP Update Site URL <strong>http://download.eclipse.org/technology/rap/update-site</strong>. Click <strong>OK</strong> to create the new update site entry.</li><li>The entry you just created now appears in the update site list. Select its check box and click <strong>Install...</strong>.</li><li>The <strong>Install</strong> wizard will let you review the selected items to install, confirm with <strong>Next</strong> to continue the installation. </li><li>Accept the terms in the license agreement and click the <strong>Finish</strong> button.</li><li>The feature and plug-ins will now be downloaded from the site and installed locally. Note that you may be prompted to confirm if it is ok to install unsigned jar files.</li><li>Confirm the following prompt to restart Eclipse.</li></ul> <p>After Eclipse restarts, a welcome page is displayed. Select the <strong>Rich Ajax Platform (RAP)</strong> section and choose <strong>Install Target Platform</strong> on the following page. In the upcoming dialog confirm the default values, which starts the target installation process. </p><br /><br /><p class="MsoNormal" style="margin-left: 9.35pt; text-indent: -0.25in; line-height: normal;"><span style=";font-family:";font-size:12;" ><o:p></o:p></span></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Once RAP is installed into eclipse, download and import galang.research.rap.app.zip <span style=""> </span>from<br /></p><p class="MsoNormal"><a href="https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=300103.">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=300103.</a></p> <p class="MsoNormal">- Click file -> import -> Existing Projects into workspace</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVPwXci4Itr9PW6IF3DtgXY4MK6LfXV5fferlzGU4B8_y3d6bEB9GpS318-iALj0cwtdtzXzU7yQMHz9EbaVWnjcBGKpXL5QoN2zFGBaqDxtn10WRuPgSo9ZcgIzZLZoFN-BuBSTOXBOY/s1600-h/1.JPG"><img style="cursor: pointer; width: 274px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVPwXci4Itr9PW6IF3DtgXY4MK6LfXV5fferlzGU4B8_y3d6bEB9GpS318-iALj0cwtdtzXzU7yQMHz9EbaVWnjcBGKpXL5QoN2zFGBaqDxtn10WRuPgSo9ZcgIzZLZoFN-BuBSTOXBOY/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5271798087094845714" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Select archive file, Click browse, lockate galang.research.rap.app.zip on your local pc, click finish:</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDEMmYckPI7UHQIv8QGXlajPAy9MlJo4ZmziERAXUrsAWbr9sgaFeLnreGRDkCxNRhSqP6N8AZWqLX7valbA-GQgWiGN2fvTJy-_0teiyLH2izP27JvdKJfgg4ONKXGftyCPte0ydviLs/s1600-h/2.JPG"><img style="cursor: pointer; width: 274px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDEMmYckPI7UHQIv8QGXlajPAy9MlJo4ZmziERAXUrsAWbr9sgaFeLnreGRDkCxNRhSqP6N8AZWqLX7valbA-GQgWiGN2fvTJy-_0teiyLH2izP27JvdKJfgg4ONKXGftyCPte0ydviLs/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5271798089463104018" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Your eclipse should look something like this after the import has finished:</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTrHsZUd24JLCovgDvF7Tn1ldOQQoTSZmFqukquhfc-wDVFVyw2d0bidILq3rq1itN2eh4t9hN4a4WnH7S4XDxqWolXinc7QiXrIFSmTsJ7ZATQnBpEapHYJoGusWCSiIdm2UKTezx4K0/s1600-h/3.JPG"><img style="cursor: pointer; width: 320px; height: 218px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTrHsZUd24JLCovgDvF7Tn1ldOQQoTSZmFqukquhfc-wDVFVyw2d0bidILq3rq1itN2eh4t9hN4a4WnH7S4XDxqWolXinc7QiXrIFSmTsJ7ZATQnBpEapHYJoGusWCSiIdm2UKTezx4K0/s320/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5271798090864625218" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Right click the galang.research.rap.app.launch , click run as , click galang.research.rap.app, click send message and you should get the following. Notice the validation messages working just like they do in RCP.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi54oiE_pv1J94Unbl5U_ReOGTgH_2HYDugnnRZhhHcuk3nc2hs3NhbKlptRUmv4YNDM3cSibrWOaQa-BUFUK9HOqtdEjxvm3oQeCjwB9bcCyA0ijxSnsg8GogGlDEiJVNeA95XgOoJXQc/s1600-h/4.JPG"><img style="cursor: pointer; width: 320px; height: 225px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi54oiE_pv1J94Unbl5U_ReOGTgH_2HYDugnnRZhhHcuk3nc2hs3NhbKlptRUmv4YNDM3cSibrWOaQa-BUFUK9HOqtdEjxvm3oQeCjwB9bcCyA0ijxSnsg8GogGlDEiJVNeA95XgOoJXQc/s320/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5271798093809044834" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Start up Internet Explorer/Other, copy and paste the url and append &theme=org.eclipse.rap.dw.demotheme to see RAP themes in action <span style=""> </span>and to simulate another chat client. Feel free to leave a comment if you have any trouble installing. Ill try to answer as soon as I can.<br /></p><o:p></o:p><o:p></o:p> <p class="MsoNormal"><o:p><br /></o:p></p> <p class="MsoNormal"><o:p> </o:p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_A31JJg4ytIKZxiz1KteplSC_2Nm0qdZYWXe6svy1L3En7DV1DZrP4ifqZ3qlylwieObRqE4dI1Zh6HSBrnAVisOxBquYZIdDqCzoMaM6JdHytUBOc4XLtq49xYVXh_VxwcPz4zz65Y/s1600-h/5.JPG"><img style="cursor: pointer; width: 320px; height: 132px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_A31JJg4ytIKZxiz1KteplSC_2Nm0qdZYWXe6svy1L3En7DV1DZrP4ifqZ3qlylwieObRqE4dI1Zh6HSBrnAVisOxBquYZIdDqCzoMaM6JdHytUBOc4XLtq49xYVXh_VxwcPz4zz65Y/s320/5.JPG" alt="" id="BLOGGER_PHOTO_ID_5271798314885962722" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p>Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-8951172466942577032008-11-20T02:05:00.001-08:002008-11-20T02:09:12.868-08:00GGBLOG - Format the Nebula<p>The <a href="http://www.eclipse.org/nebula/" mce_href="http://www.eclipse.org/nebula/">nebula project</a> has a cool set of widgets for SWT which can be readily used in a RCP application.<br /><br />I was playing around with nebula <a href="http://www.eclipse.org/nebula/widgets/calendarcombo/calendarcombo.php" mce_href="http://www.eclipse.org/nebula/widgets/calendarcombo/calendarcombo.php">CalendarCombo</a> and wanted to give it my own date format. As usual I started to read the source code and found that all you need to do is to define your own settings class, override getDateFormat and give it to the <a href="http://www.eclipse.org/nebula/widgets/calendarcombo/calendarcombo.php" mce_href="http://www.eclipse.org/nebula/widgets/calendarcombo/calendarcombo.php">CalendarCombo</a> constructor<br /><br />eg:</p><pre><blockquote>new CalendarCombo(parent, SWT.NONE, new Settings(), null).</blockquote></pre><pre><br /></pre><pre>Settings class example below.<span style="font-family: Georgia,serif;"><br /><br /><blockquote> public class Settings extends DefaultSettings {<br /><br /> public Locale getLocale() {<br /><br /> return Locale.ENGLISH;<br /><br /> }<br /><br /> public String getDateFormat() {<br /><br /> return "dd/MM/yyyy";<br /><br /> } <br /><br /> }</blockquote><br /></span></pre><pre><span style="font-size:100%;"></span></pre><blockquote><pre><span style="font-size:100%;"></span></pre></blockquote><pre><span style="font-size:100%;"></span></pre>Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-63785772921612235342008-11-14T17:49:00.000-08:002008-11-14T18:31:44.904-08:00GGBLOG - Dynamic jface XML TableViewer TutorialThe following tutorial will show you how to build a dynamic jface TableViewer <span style=""> </span>driven from an xml file. The beauty of this solution is that your data model is decoupled from view logic so when the xml data changes you don’t need to change the concrete code. <p class="MsoNormal"><br />It’s a pretty simple tutorial which should take around 5 – 10 minutes to complete. </p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Step 1. Create a new project in eclipse 3.4</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Open Eclipse -> Click File -> new Plug-in project -> Next</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivzCI0chOmqMnX8LD4Wh6Zk12611QguGS6ojzMZ_TwMBPcz3eyjeVoYw5xdMivGzyGABET1rxzRxwqIhVUvShPpGeOjnkX6Wea6mj5G6eJ5dIQiwKz2wrZ-KvJQH7GLtby06rp3ysVvts/s1600-h/1.JPG"><img style="cursor: pointer; width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivzCI0chOmqMnX8LD4Wh6Zk12611QguGS6ojzMZ_TwMBPcz3eyjeVoYw5xdMivGzyGABET1rxzRxwqIhVUvShPpGeOjnkX6Wea6mj5G6eJ5dIQiwKz2wrZ-KvJQH7GLtby06rp3ysVvts/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704162578071538" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">To keep the examples simple type galang.research in the project name and click next. You can type any name you want though you’ll need to factor this into all the code samples I will provide.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN4hSr4QBjjxuXdUA4zf21ADZlyeiJdqrYWRv-ygWVLVG83J8mJx_AAWB8NN4fnsLlp-g0XbdFbNWie7iAJWGhzQdLNtVCPQ65EWqp2M47ssz0EYDVFhJbHmfC-4ObLz5Od6QbJQ17uQo/s1600-h/2.JPG"><img style="cursor: pointer; width: 279px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN4hSr4QBjjxuXdUA4zf21ADZlyeiJdqrYWRv-ygWVLVG83J8mJx_AAWB8NN4fnsLlp-g0XbdFbNWie7iAJWGhzQdLNtVCPQ65EWqp2M47ssz0EYDVFhJbHmfC-4ObLz5Od6QbJQ17uQo/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704161351776866" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Select Yes in the Rich Client Application section, click next.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ugb-CF44X_78CKzwz8i_f1k0-ifs0M18g_zkLqYSKjVACddDAnzvMEf9-UAcGIOzW_Kb8u4OJW1c-2zX_w4IZS_ceqksdDyPJzSVb_7_ceGl_xcp6zrxTLPzM1F3gDiq-tMjKgggtCI/s1600-h/3.JPG"><img style="cursor: pointer; width: 279px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ugb-CF44X_78CKzwz8i_f1k0-ifs0M18g_zkLqYSKjVACddDAnzvMEf9-UAcGIOzW_Kb8u4OJW1c-2zX_w4IZS_ceqksdDyPJzSVb_7_ceGl_xcp6zrxTLPzM1F3gDiq-tMjKgggtCI/s320/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704193328334674" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Select RCP application with a view, click next.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglV2rkQr7MFD6lx7d_O1Vqri4iZmq7w79bhK0nWuXEULWd_ZJ0uX7lKsdMfe8N6lKS631qOnWzKEMG511ospqTp1jQ9JzWUMgLTR9ED434PKPGDNQcFCakAUkNEXZEifBDmMCRCj08mgQ/s1600-h/4.JPG"><img style="cursor: pointer; width: 279px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglV2rkQr7MFD6lx7d_O1Vqri4iZmq7w79bhK0nWuXEULWd_ZJ0uX7lKsdMfe8N6lKS631qOnWzKEMG511ospqTp1jQ9JzWUMgLTR9ED434PKPGDNQcFCakAUkNEXZEifBDmMCRCj08mgQ/s320/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704196355023826" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Select Add Branding.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCv_gznH2yo8OcHv32L4C9GsgwzGNBmTLDqrUzG5sOXnvbCIeEXYiZZVgQb3k2FD8D8ho0jGwn_LE9YoNcdned-VIOcdw6iwruAQoAN_QPu2eTrNqWKQa89XnJcg2HrVaEpSAtpcMJx6w/s1600-h/5.JPG"><img style="cursor: pointer; width: 279px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCv_gznH2yo8OcHv32L4C9GsgwzGNBmTLDqrUzG5sOXnvbCIeEXYiZZVgQb3k2FD8D8ho0jGwn_LE9YoNcdned-VIOcdw6iwruAQoAN_QPu2eTrNqWKQa89XnJcg2HrVaEpSAtpcMJx6w/s320/5.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704203371961586" border="0" /></a></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Click finish, then Yes.</p> <p class="MsoNormal">Unzip the file located at the URL below and save the test.xml within the <span style=""> </span>zip file as /temp/test.xml to your local pc.</p> <p class="MsoNormal"><a href="https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=299144&release_id=640558">https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=299144&release_id=640558</a></p> <p class="MsoNormal">Right click project and configure build path, link source, then click browse and select the src location to where you have unzipped the file above.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Enter srcExt fo folder name</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtNkGMAmSS3d4Z3icxzmBLM7JxV2-bO3JUBKTvi4BEy0YhrZmWD_AkrgMDvFCklJuvkESJtiBVC5AhGR9Emmpnd-WcyZAL_rUhYbcg61wE1M01yi7V6_oXut6Gju3fY6wlzKJ3DWl2b-E/s1600-h/6.JPG"><img style="cursor: pointer; width: 281px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtNkGMAmSS3d4Z3icxzmBLM7JxV2-bO3JUBKTvi4BEy0YhrZmWD_AkrgMDvFCklJuvkESJtiBVC5AhGR9Emmpnd-WcyZAL_rUhYbcg61wE1M01yi7V6_oXut6Gju3fY6wlzKJ3DWl2b-E/s320/6.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704387848429746" border="0" /></a></p> <p class="MsoNormal">Your package explorer should look like this.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlN_EMmCG_7dpL2LW45RgA4OUG_psF13r6UVWoVlwOisJmDzYxIPvecYFpHUjOxxKlsDLlKORwVqrxz35L1sMrGcgvxAnCy7Os0jvY8lPocq2IskyJzQ_jjUOa2IsFa8JMbIqlAg_lFNM/s1600-h/7.JPG"><img style="cursor: pointer; width: 255px; height: 278px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlN_EMmCG_7dpL2LW45RgA4OUG_psF13r6UVWoVlwOisJmDzYxIPvecYFpHUjOxxKlsDLlKORwVqrxz35L1sMrGcgvxAnCy7Os0jvY8lPocq2IskyJzQ_jjUOa2IsFa8JMbIqlAg_lFNM/s320/7.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704414952087810" border="0" /></a></p> <p class="MsoNormal">Modfy View.java in the galang.research package <span style=""> </span>with the following code.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:10;color:black;" ><span style=""> </span></span><span style=";font-family:";font-size:10;" ></span></p><div style="text-align: left;"><blockquote><p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;" >/**</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;" >*</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >This</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >is</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >a</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style="font-size:78%;"><u><span style=";font-family:";" >callback</span></u></span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >that</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >will</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >allow</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >us</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >to</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >create</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >the</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >viewer</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >and</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >initialize</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span><span style=""> </span></span><span style=";font-family:";font-size:78%;" >*</span><span style=";font-family:";font-size:78%;color:black;" > </span><span style=";font-family:";font-size:78%;" >it.</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span><span style=""> </span></span><span style=";font-family:";font-size:78%;" >*/</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span></span><span style="font-size:78%;"><b><span style=";font-family:";" >public</span></b></span><span style=";font-family:";font-size:78%;color:black;" > </span><span style="font-size:78%;"><b><span style=";font-family:";" >void</span></b></span><span style=";font-family:";font-size:78%;color:black;" > createPartControl(Composite parent) {</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span></span><span style=";font-family:";font-size:78%;" >viewer</span><span style=";font-family:";font-size:78%;color:black;" > = </span><span style="font-size:78%;"><b><span style=";font-family:";" >new</span></b></span><span style=";font-family:";font-size:78%;color:black;" > TableViewer(parent, SWT.</span><span style="font-size:78%;"><i><span style=";font-family:";" >MULTI</span></i></span><span style=";font-family:";font-size:78%;color:black;" > | SWT.</span><span style="font-size:78%;"><i><span style=";font-family:";" >H_SCROLL</span></i></span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span>| SWT.</span><span style="font-size:78%;"><i><span style=";font-family:";" >V_SCROLL</span></i></span><span style=";font-family:";font-size:78%;color:black;" >);</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p><br /><p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;" ></span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span></span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span></span><span style=";font-family:";font-size:78%;" >viewer</span><span style=";font-family:";font-size:78%;color:black;" >.setContentProvider(</span><span style="font-size:78%;"><b><span style=";font-family:";" >new</span></b></span><span style=";font-family:";font-size:78%;color:black;" > RowContentProvider());</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span>RowLabelProvider labelProvider = </span><span style="font-size:78%;"><b><span style=";font-family:";" >new</span></b></span><span style=";font-family:";font-size:78%;color:black;" > RowLabelProvider();</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span>labelProvider.createColumns(</span><span style=";font-family:";font-size:78%;" >viewer</span><span style=";font-family:";font-size:78%;color:black;" >);</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span></span><span style=";font-family:";font-size:78%;" >viewer</span><span style=";font-family:";font-size:78%;color:black;" >.setLabelProvider(labelProvider);</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style=";font-family:";font-size:78%;color:black;" ><span style=""> </span><span style=""> </span></span><span style=";font-family:";font-size:78%;" >viewer</span><span style=";font-family:";font-size:78%;color:black;" >.setInput(getViewSite());<span style=""> </span></span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-family:";font-size:78%;color:black;" ><span style=""> </span>}</span></p></blockquote></div><p class="MsoNormal"><span style="line-height: 115%;font-family:";font-size:10;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal"><span style="line-height: 115%;font-family:";font-size:10;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal">And add the following imports to View.java</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size:78%;"><b><span style=";font-family:";" >import</span></b></span><span style=";font-family:";font-size:78%;color:black;" > galang.research.jface.RowContentProvider;</span><span style=";font-family:";font-size:78%;" ><o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:78%;"><b><span style="line-height: 115%;font-family:";" >import</span></b></span><span style="line-height: 115%;font-family:";font-size:78%;color:black;" > galang.research.jface.RowLabelProvider;</span></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Double click plugin-xml and click the Lanch eclipse application. </p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjevstQp4kQgNUpqzJdsP7NZXQ11NFJVeaLyKVhmtQkBuEIfIu67WhWLztrRmevuh9E3u7kybCxuEpdPSmLo8fGkSww466cYnxVR_bgivHcpuTpEkX6rTo_cusvAYDHva1QPPSKKRekcG4/s1600-h/8.JPG"><img style="cursor: pointer; width: 320px; height: 183px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjevstQp4kQgNUpqzJdsP7NZXQ11NFJVeaLyKVhmtQkBuEIfIu67WhWLztrRmevuh9E3u7kybCxuEpdPSmLo8fGkSww466cYnxVR_bgivHcpuTpEkX6rTo_cusvAYDHva1QPPSKKRekcG4/s320/8.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704418480464338" border="0" /></a></p> <p class="MsoNormal">Congratulations, you’ve just completed this tutorial. Have a play around with the /test/temp.xml and see how it dynamically impacts the RCP application after restarting it.</p> <p class="MsoNormal"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhph6CcCscjgTW1F-QiKmS7XQBzGlWH58VPx2Gpodm7pUEIpmM5u-jqL2RhgKuBnBnTFpvHVsdENIW5JYAqjulZHZFuGcd0uiXp3zrflBXbWN5o0XgXSpURd8P386ODXBLaTbV5h4oBdPI/s1600-h/9.JPG"><img style="cursor: pointer; width: 320px; height: 241px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhph6CcCscjgTW1F-QiKmS7XQBzGlWH58VPx2Gpodm7pUEIpmM5u-jqL2RhgKuBnBnTFpvHVsdENIW5JYAqjulZHZFuGcd0uiXp3zrflBXbWN5o0XgXSpURd8P386ODXBLaTbV5h4oBdPI/s320/9.JPG" alt="" id="BLOGGER_PHOTO_ID_5268704422033821186" border="0" /></a></p>Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-71354922812566376992008-11-12T23:41:00.000-08:002008-11-12T23:46:33.592-08:00GGBLOG - Stringy ComboIf you ever find yourself writing some RCP code and end up struggling with the standard ComboBoxCellEditor, I highly recomend you try out the the excellent editor published by John Mason, see below<br /><br />http://dev.eclipse.org/newslists/news.eclipse.platform/msg61820.html<br /><br />It basically does away with the awful mapping to and from selection index and deals with plain old java strings (POJS) :).<br /><br />Have fun!Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-73298769695858694472008-11-03T23:37:00.000-08:002008-11-03T23:49:54.921-08:00GGBLOG - Border DisputeI've been playing around with Eclipse RCP lately and have found the eclipse forms a great way to prevent your application looking like ye olde VB app.<br /><br />If you ever start using eclipse forms and find your text boxes don't have borders see if you have this line of code at the bottom of your eclipse form code.<br /><br />toolkit.paintBordersFor(form.getBody());<br /><br />If you don't have this your text boxes will apear invisible against the default white background colour.Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-72872724966241598402008-10-28T01:41:00.000-07:002008-10-28T03:27:12.262-07:00GGBLOG - Befriending the TrendI'm currently reading <a href="http://www.tradersworld.com/Merchant2/merchant.mvc?Screen=PROD&Store_Code=TW&Product_Code=1-891159-04-6&Category_Code=F">Trading with DiNapoli Levels by Joe DiNapoli.</a><br /><br />Pretty cool book and finding very entertaining. Joe is a funny guy and often makes jokes about programmers that he's worked with over the years.<br /><br />Whether your like Warren Buffet and trade based on fundamentals or like Joe who trades based on statistical analysis, I'm finding it all boils down to:<br /><br /><span style="color: rgb(51, 51, 204); font-style: italic;font-family:Arial;font-size:180%;" >“ trade with the trend, the trend is your friend</span><span style="color: rgb(51, 51, 204); font-style: italic;font-family:Arial;font-size:180%;" >“</span><br /><br />If you want to beat Warren at his own game you could try <a href="http://worldbeta.blogspot.com/2007/01/beating-dow-with-dogs-flyers-bonds-and.html">this</a>. As soon as I get some data I'd love to run a simulation on the ASX 50.Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-58395955148449585642008-10-27T00:54:00.000-07:002008-10-27T01:48:19.816-07:00GGBLOG - Thinking in SchemaHave you ever wanted to generate an xml schema (XSD) from a java class?<br /><br />Took me a little while to track this down and hopefully google will rank it a little bit higher by me blogging about it for others out there.<br /><br />https://jaxb.dev.java.net/guide/Invoking_schemagen_programatically.html<br /><br />JAXB has a nice little utility which will take a java class and generate a xml schema and can be run in ant/maven, run through the CLI or programatically.<br /><br />I personally find it easier being a java guy to think in java over xsd. :)<br /><br />Enjoy!Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-54587402859177455642008-10-25T01:03:00.000-07:002008-10-25T01:24:35.410-07:00GGBLOG - Trading Time<span style="font-family: arial;">Just got back from from the <a href="http://tradingandinvestingexpo.com.au/trading/sydney.htm">Trading and Investing Expo</a> here in Sydney</span> and boy was that the best $15 that I've spent in a while.<br /><br />There were some pretty heavy hitting speakers throughout the day below are a few that really caught my attention:<br /><br />1) Larry Williams<br /><br />Larry is a high profile American speaker who has<br />traded futures & commodities for over 40 years. He is<br />the creator of the “Darlings of the Dow” concept and<br />fund. He is the winner of the World Cup real time<br />Trading Championship with +11,000%<br /><br />2) Joe DiNapoli<br /><br />Joe’s exhaustive investigations into Displaced Moving<br />Averages, his creation of the proprietary Oscillator Predictor and MACD Predictor and in particular, his practical and unique method of applying Fibonacci<br />ratios to the price axis, makes him one of today’s most<br />sought after experts.<br /><br />What does this have to do with technology?<br /><br />In the financial markets industry a couple of milliseconds can mean the difference between winning or loosing millions of dollars. I really think cloud computing and grid technologies have a great use case in this domain.<br /><br />My goal is to learn how to think and breath like the best traders in the world and then marry that up with my technology skills. I'm already finding in my early financial markets learning that I already possess some analytical skills which I can leverage.Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0tag:blogger.com,1999:blog-3962282826612954775.post-40577852319841125592008-10-24T04:02:00.000-07:002008-10-24T04:29:40.791-07:00GGBLOG - In The CloudsToday I'd like to talk about EC2 (elastic compute cloud) which is Amazons implementation of a compute cloud which really just a bunch of computers linked together (a cluster). <p>Where things start to get interesting over other plain old compute clusters is the E (elastic) part.</p> <p>Amazon gives you a nice set of tools to bring computing nodes online on demand which is why they call it elastic.</p> <p>I remember back in my days as a web developer when the 911 attacks occurred, even though we had 12 servers in our cluster to do static content serving, there was such a spike in load that the poor operations guy had to rush down to our hardware vendor and pick up some new machines and plug them into the cluster. This whole process took hours, It would have been pretty nice to have EC2 back then to bring the nodes online through a nifty little firefox extension.</p><p><br />There is alot of energy around grid based frameworks like Grid Gain, Hadoop, Coherence and Gigaspaces. These frameworks come into play by allowing you to take advantage of EC2 by allowing you to scale your applications up and out and providing linear scalability.<br /></p> <p>What does this mean?<br /></p> Most applications out there are built on tiered and layered architectures. As a example (see pic below) a j2ee app is typically has a web browser, webserver, app server, integration server then back end server. Thats an awful lot of services/servers to go through to get any work done.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.insitechinc.com/what-is/pics/architecture-j2ee.jpg%20"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 383px; height: 340px;" src="http://www.insitechinc.com/what-is/pics/architecture-j2ee.jpg" alt="" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />In my experience the biggest problem to this architecture that there is always a glass ceiling when it comes to the scalability of these solutions, eg. the database or sap runs out of capacity<br /><br />Grid based frameworks attempt to turn this on its head by allowing you break your applications into a structure which fully supports parallel processing.Glenn:http://www.blogger.com/profile/10350458361675254139noreply@blogger.com0