| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta name="keywords" content="SMILA/Documentation/HowTo/How to implement an agent,SMILA/Development Guidelines/Create a bundle (plug-in),SMILA/Development Guidelines/How to integrate new bundle into build process,SMILA/Development Guidelines/How to integrate test bundle into build process,SMILA/Development Guidelines/Setup for JAXB code generation,SMILA/Documentation/AgentController,SMILA/Glossary,SMILA/Howto integrate a component in SMILA" /> |
| <link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Development_Guidelines/favicon.ico" /> |
| <link rel="search" type="application/opensearchdescription+xml" href="http://wiki.eclipse.org/opensearch_desc.php" title="Eclipsepedia (English)" /> |
| <link rel="alternate" type="application/rss+xml" title="Eclipsepedia RSS Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&feed=rss" /> |
| <link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&feed=atom" /> |
| |
| |
| <title>SMILA/Documentation/HowTo/How to implement an agent - Eclipsepedia</title> |
| |
| <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "/skins/eclipsenova/novaWide.css?116"; /*]]>*/</style> |
| <link rel="stylesheet" type="text/css" media="print" href="http://wiki.eclipse.org/skins/eclipsenova/eclipsenovaPrint.css?116" /> |
| <link rel="stylesheet" type="text/css" media="handheld" href="http://wiki.eclipse.org/skins/eclipsenova/handheld.css?116" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/header.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/tabs.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/visual.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/layout.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/footer.css" media="screen" /> |
| <!--[if IE]><link rel="stylesheet" type="text/css" href="/skins/eclipsenova/IEpngfix.css" media="screen" /><![endif]--> |
| <!--[if lt IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE50Fixes.css?116";</style> <![endif]--> |
| <!--[if IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE55Fixes.css?116";</style><![endif]--> |
| <!--[if IE 6]><style type="text/css">@import "/skins/eclipsenova/IE60Fixes.css?116";</style><![endif]--> |
| <!--[if IE 7]><style type="text/css">@import "/skins/eclipsenova/IE70Fixes.css?116";</style><![endif]--> |
| <!--[if lt IE 7]><script type="text/javascript" src="/skins/common/IEFixes.js?116"></script> |
| <meta http-equiv="imagetoolbar" content="no" /><![endif]--> |
| <script type= "text/javascript">/*<![CDATA[*/ |
| var skin = "eclipsenova"; |
| var stylepath = "/skins"; |
| var wgArticlePath = "/$1"; |
| var wgScriptPath = ""; |
| var wgScript = "/index.php"; |
| var wgServer = "http://wiki.eclipse.org"; |
| var wgCanonicalNamespace = ""; |
| var wgCanonicalSpecialPageName = false; |
| var wgNamespaceNumber = 0; |
| var wgPageName = "SMILA/Documentation/HowTo/How_to_implement_an_agent"; |
| var wgTitle = "SMILA/Documentation/HowTo/How to implement an agent"; |
| var wgAction = "view"; |
| var wgRestrictionEdit = []; |
| var wgRestrictionMove = []; |
| var wgArticleId = "19444"; |
| var wgIsArticle = true; |
| var wgUserName = null; |
| var wgUserGroups = null; |
| var wgUserLanguage = "en"; |
| var wgContentLanguage = "en"; |
| var wgBreakFrames = false; |
| var wgCurRevisionId = "286127"; |
| var wgVersion = "1.12.0"; |
| var wgEnableAPI = true; |
| var wgEnableWriteAPI = false; |
| /*]]>*/</script> |
| |
| <script type="text/javascript" src="http://wiki.eclipse.org/skins/common/wikibits.js?116"><!-- wikibits js --></script> |
| |
| <!-- Performance mods similar to those for bug 166401 --> |
| <script type="text/javascript" src="http://wiki.eclipse.org/index.php?title=-&action=raw&gen=js&useskin=eclipsenova"><!-- site js --></script> |
| |
| <!-- Head Scripts --> |
| <script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script> |
| <style type="text/css">/*<![CDATA[*/ |
| .source-text {line-height: normal; font-size: medium;} |
| .source-text li {line-height: normal;} |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for text |
| * CSS class: source-text, CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) |
| */ |
| .source-text .de1, .source-text .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;} |
| .source-text {} |
| .source-text .head {} |
| .source-text .foot {} |
| .source-text .imp {font-weight: bold; color: red;} |
| .source-text .ln-xtra {color: #cc0; background-color: #ffc;} |
| .source-text li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;} |
| .source-text li.li2 {font-weight: bold;} |
| |
| /*]]>*/ |
| </style> |
| <style type="text/css">/*<![CDATA[*/ |
| @import "/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; |
| /*]]>*/ |
| </style><style type="text/css">/*<![CDATA[*/ |
| .source-xml {line-height: normal; font-size: medium;} |
| .source-xml li {line-height: normal;} |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for xml |
| * CSS class: source-xml, CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) |
| */ |
| .source-xml .de1, .source-xml .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;} |
| .source-xml {} |
| .source-xml .head {} |
| .source-xml .foot {} |
| .source-xml .imp {font-weight: bold; color: red;} |
| .source-xml .ln-xtra {color: #cc0; background-color: #ffc;} |
| .source-xml li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;} |
| .source-xml li.li2 {font-weight: bold;} |
| .source-xml .coMULTI {color: #808080; font-style: italic;} |
| .source-xml .es0 {color: #000099; font-weight: bold;} |
| .source-xml .br0 {color: #66cc66;} |
| .source-xml .st0 {color: #ff0000;} |
| .source-xml .nu0 {color: #cc66cc;} |
| .source-xml .sc0 {color: #00bbdd;} |
| .source-xml .sc1 {color: #ddbb00;} |
| .source-xml .sc2 {color: #339933;} |
| .source-xml .sc3 {color: #009900;} |
| .source-xml .re0 {color: #000066;} |
| .source-xml .re1 {font-weight: bold; color: black;} |
| .source-xml .re2 {font-weight: bold; color: black;} |
| |
| /*]]>*/ |
| </style> |
| <style type="text/css">/*<![CDATA[*/ |
| @import "/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; |
| /*]]>*/ |
| </style><style type="text/css">/*<![CDATA[*/ |
| .source-java {line-height: normal; font-size: medium;} |
| .source-java li {line-height: normal;} |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for java |
| * CSS class: source-java, CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) |
| */ |
| .source-java .de1, .source-java .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;} |
| .source-java {} |
| .source-java .head {} |
| .source-java .foot {} |
| .source-java .imp {font-weight: bold; color: red;} |
| .source-java .ln-xtra {color: #cc0; background-color: #ffc;} |
| .source-java li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;} |
| .source-java li.li2 {font-weight: bold;} |
| .source-java .kw1 {color: #7F0055; font-weight: bold;} |
| .source-java .kw2 {color: #7F0055; font-weight: bold;} |
| .source-java .kw3 {color: #000000; font-weight: normal} |
| .source-java .kw4 {color: #7F0055; font-weight: bold;} |
| .source-java .co1 {color: #3F7F5F; font-style: italic;} |
| .source-java .co2 {color: #3F7F5F;} |
| .source-java .co3 {color: #3F7F5F; font-style: italic; font-weight: bold;} |
| .source-java .coMULTI {color: #3F5FBF; font-style: italic;} |
| .source-java .es0 {color: #000000;} |
| .source-java .br0 {color: #000000;} |
| .source-java .st0 {color: #2A00ff;} |
| .source-java .nu0 {color: #000000;} |
| .source-java .me1 {color: #000000;} |
| .source-java .me2 {color: #000000;} |
| |
| /*]]>*/ |
| </style> |
| <style type="text/css">/*<![CDATA[*/ |
| @import "/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; |
| /*]]>*/ |
| </style><link rel="stylesheet" type="text/css" href="How_to_implement_an_agent.html" /> </head> |
| <body class="mediawiki ns-0 ltr page-SMILA_Documentation_HowTo_How_to_implement_an_agent"> |
| <div id="globalWrapper"> |
| |
| |
| <div id="column-one"> |
| <!-- Eclipse Additions for the Top Nav start here M. Ward--> |
| |
| <div id="header"> |
| <div id="header-graphic"> |
| <img src="http://wiki.eclipse.org/skins/eclipsenova/eclipse.png" alt="Eclipse Wiki"> |
| </div> |
| <!-- Pulled 101409 Mward --> |
| |
| <div class="portlet" id="p-personal"> |
| <div class="pBody"> |
| <ul> |
| <li id="pt-login"><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&returnto=SMILA/Documentation/HowTo/How_to_implement_an_agent">Log in</a></li> |
| </ul> |
| </div> |
| </div> |
| |
| <div id="header-icons"> |
| <div id="sites"> |
| <ul id="sitesUL"> |
| <li><a href="http://www.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/eclipseIcon.png" width="28" height="28" alt="Eclipse Foundation" title="Eclipse Foundation" /><div>Eclipse Foundation</div></a></li> |
| <li><a href="http://marketplace.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/marketplace.png" width="28" height="28" alt="Eclipse Marketplace" title="Eclipse Marketplace" /><div>Eclipse Marketplace</div></a></li> |
| <li><a href="https://bugs.eclipse.org/bugs"><img src="http://dev.eclipse.org/custom_icons/system-search-bw.png" width="28" height="28" alt="Bugzilla" title="Bugzilla" /><div>Bugzilla</div></a></li> |
| <li><a href="http://live.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/audio-input-microphone-bw.png" width="28" height="28" alt="Live" title="Live" /><div>Eclipse Live</div></a></li> |
| <li><a href="http://planeteclipse.org"><img src="http://dev.eclipse.org/large_icons/devices/audio-card.png" width="28" height="28" alt="PlanetEclipse" title="Planet" /><div>Planet Eclipse</div></a></li> |
| <li><a href="http://portal.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/preferences-system-network-proxy-bw.png" width="28" height="28" alt="Portal" title="Portal" /><div>My Foundation Portal</div></a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| <!-- NEW HEADER STUFF HERE --> |
| <div id="header-menu"> |
| <div id="header-nav"> |
| <ul> <li><a class="first_one" href="http://wiki.eclipse.org/" target="_self">Home</a></li> <li><a href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li> |
| <li><a href="http://www.eclipse.org/users/" target="_self">Users</a></li> |
| <li><a href="http://www.eclipse.org/membership/" target="_self">Members</a></li> |
| <li><a href="http://wiki.eclipse.org/index.php/Development_Resources" target="_self">Committers</a></li> |
| <li><a href="http://www.eclipse.org/resources/" target="_self">Resources</a></li> |
| <li><a href="http://www.eclipse.org/projects/" target="_self">Projects</a></li> |
| <li><a href="http://www.eclipse.org/org/" target="_self">About Us</a></li> |
| </ul> |
| </div> |
| <div id="header-utils"> |
| <!-- moved the search window here --> |
| <form action="http://wiki.eclipse.org/Special:Search" > |
| <input class="input" name="search" type="text" accesskey="f" value="" /> |
| <input type='submit' onclick="this.submit();" name="go" id="searchGoButton" class="button" title="Go to a page with this exact name if one exists" value="Go" /> |
| <input type='submit' onclick="this.submit();" name="fulltext" class="button" id="mw-searchButton" title="Search Eclipsepedia for this text" value="Search" /> |
| </form> |
| </div> |
| </div> |
| |
| |
| <!-- Eclipse Additions for the Header stop here --> |
| <!-- Additions and mods for leftside nav Start here --> |
| |
| <!--Started nav rip here--> |
| <!-- these are the nav controls main page, changes etc --> |
| <div id="novaContent" class="faux"> |
| <div id="leftcol"> |
| <ul id="leftnav"> |
| <!-- these are the page controls, edit history etc --> |
| <li class="separator"><a class="separator">Navigation   </li> |
| <li id="n-mainpage"><a href="http://wiki.eclipse.org/Main_Page">Main Page</a></li> |
| <li id="n-portal"><a href="http://wiki.eclipse.org/Eclipsepedia:Community_Portal">Community portal</a></li> |
| <li id="n-currentevents"><a href="http://wiki.eclipse.org/Eclipsepedia:Current_events">Current events</a></li> |
| <li id="n-recentchanges"><a href="http://wiki.eclipse.org/Special:Recentchanges">Recent changes</a></li> |
| <li id="n-randompage"><a href="http://wiki.eclipse.org/Special:Random">Random page</a></li> |
| <li id="n-help"><a href="http://wiki.eclipse.org/Help:Contents">Help</a></li> |
| <li class="separator"><a class="separator">Toolbox   </a></li> |
| |
| <li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Documentation/HowTo/How_to_implement_an_agent">What links here</a></li> |
| <li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/HowTo/How_to_implement_an_agent">Related changes</a></li> |
| <!-- This is the toolbox section --> |
| <li id="t-upload"><a href="http://wiki.eclipse.org/Special:Upload">Upload file</a></li> |
| <li id="t-specialpages"><a href="http://wiki.eclipse.org/Special:Specialpages">Special pages</a></li> |
| <li id="t-print"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HowTo/How_to_implement_an_agent&printable=yes">Printable version</a></li> <li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HowTo/How_to_implement_an_agent&oldid=286127">Permanent link</a></li> </ul> |
| </div> |
| |
| |
| <!-- Additions and mods for leftside nav End here --> |
| |
| |
| <div id="column-content"> |
| <div id="content"> |
| <a name="top" id="top"></a> |
| |
| <div id="tabs"> |
| <ul class="primary"> |
| <li class="active"><a href="../Documentation/HowTo/How_to_implement_an_agent.html"><span class="tab">Page</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/HowTo/How_to_implement_an_agent&action=edit"><span class="tab">Discussion</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HowTo/How_to_implement_an_agent&action=edit"><span class="tab">View source</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HowTo/How_to_implement_an_agent&action=history"><span class="tab">History</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&returnto=SMILA/Documentation/HowTo/How%20to%20implement%20an%20agent"><span class="tab">Edit</span></a></li> |
| </ul> |
| </div> |
| |
| |
| <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script> |
| <h1 class="firstHeading">SMILA/Documentation/HowTo/How to implement an agent</h1> |
| <div id="bodyContent"> |
| <h3 id="siteSub">From Eclipsepedia</h3> |
| <div id="contentSub"><span class="subpages">< <a href="../../SMILA.html" title="SMILA">SMILA</a> | <a href="../Documentation.1.html" title="SMILA/Documentation">Documentation</a> | <a href="../Documentation/HowTo.html" title="SMILA/Documentation/HowTo">HowTo</a></span>(Redirected from <a href="http://wiki.eclipse.org/index.php?title=SMILA/Development_Guidelines/How_to_implement_an_agent&redirect=no" title="SMILA/Development Guidelines/How to implement an agent">SMILA/Development Guidelines/How to implement an agent</a>)</div> |
| <div id="jump-to-nav">Jump to: <a href="How_to_implement_an_agent.html#column-one">navigation</a>, <a href="How_to_implement_an_agent.html#searchInput">search</a></div> <!-- start content --> |
| <div class="messagebox" style="background-color: #def3fe; border: 1px solid #c5d7e0; color: black; padding: 5px; margin: 1ex 0; min-height: 35px; padding-left: 45px;"> |
| <div style="float: left; margin-left: -40px;"><a href="http://wiki.eclipse.org/Image:Note.png" class="image" title="Note.png"><img alt="" src="http://wiki.eclipse.org/images/c/cc/Note.png" width="35" height="35" border="0" /></a></div> |
| <div><b>This is deprecated for SMILA 1.0, the connectivity framework is still functional but will aimed to be replaced by scalable import based on SMILAs job management.</b><br /></div> |
| </div> |
| <p>This page explains how to implement an <a href="../Glossary.html#A" title="SMILA/Glossary">Agent</a> and <a href="../Howto_integrate_a_component_in_SMILA.html" class="mw-redirect" title="SMILA/Howto integrate a component in SMILA">add its functionality</a> to SMILA. |
| </p> |
| <table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div> |
| <ul> |
| <li class="toclevel-1"><a href="How_to_implement_an_agent.html#Prepare_bundle_and_manifest"><span class="tocnumber">1</span> <span class="toctext">Prepare bundle and manifest</span></a></li> |
| <li class="toclevel-1"><a href="How_to_implement_an_agent.html#Prepare_DataSourceConnect_schema_and_classes"><span class="tocnumber">2</span> <span class="toctext">Prepare DataSourceConnect schema and classes</span></a></li> |
| <li class="toclevel-1"><a href="How_to_implement_an_agent.html#OSGi_and_Declarative_Service_requirements"><span class="tocnumber">3</span> <span class="toctext">OSGi and Declarative Service requirements</span></a></li> |
| <li class="toclevel-1"><a href="How_to_implement_an_agent.html#Implement_your_agent"><span class="tocnumber">4</span> <span class="toctext">Implement your agent</span></a></li> |
| <li class="toclevel-1"><a href="How_to_implement_an_agent.html#Activate_your_agent"><span class="tocnumber">5</span> <span class="toctext">Activate your agent</span></a> |
| <ul> |
| <li class="toclevel-2"><a href="How_to_implement_an_agent.html#Activation_SMILA_in_eclipse"><span class="tocnumber">5.1</span> <span class="toctext">Activation SMILA in eclipse</span></a></li> |
| <li class="toclevel-2"><a href="How_to_implement_an_agent.html#Activation_SMILA_application"><span class="tocnumber">5.2</span> <span class="toctext">Activation SMILA application</span></a></li> |
| </ul> |
| </li> |
| <li class="toclevel-1"><a href="How_to_implement_an_agent.html#Run_your_agent"><span class="tocnumber">6</span> <span class="toctext">Run your agent</span></a></li> |
| </ul> |
| </li> |
| </ul> |
| </td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script> |
| <a name="Prepare_bundle_and_manifest"></a><h2> <span class="mw-headline"> Prepare bundle and manifest </span></h2> |
| <ul><li> Create a new bundle that will contain your agent. Follow the instructions on <a href="Create_a_bundle_(plug-in).html" class="mw-redirect" title="SMILA/Development Guidelines/Create a bundle (plug-in)">How to create a bundle</a> and use the prefix <tt>org.eclipse.smila.connectivity.framework.agent</tt> for the name of your project. |
| </li><li> Edit the manifest file and add the following packages to the <i>Import-Package</i> section. |
| <ul><li> <tt>javax.xml.bind;version="2.1.0"</tt> |
| </li><li> <tt>javax.xml.bind.annotation;version="2.1.0"</tt> |
| </li><li> <tt>javax.xml.bind.annotation.adapters;version="2.1.0"</tt> |
| </li><li> <tt>javax.xml.stream;version="1.0.1"</tt> |
| </li><li> <tt>org.apache.commons.logging;version="1.0.4"</tt> |
| </li><li> <tt>org.eclipse.smila.connectivity;version="1.0.0"</tt> |
| </li><li> <tt>org.eclipse.smila.connectivity.framework;version="1.0.0"</tt> |
| </li><li> <tt>org.eclipse.smila.connectivity.framework.schema;version="1.0.0"</tt> |
| </li><li> <tt>org.eclipse.smila.connectivity.framework.schema.config;version="1.0.0"</tt> |
| </li><li> <tt>org.eclipse.smila.connectivity.framework.schema.config.interfaces;version="1.0.0"</tt> |
| </li><li> <tt>org.eclipse.smila.connectivity.framework.schema.tools;version="1.0.0"</tt> |
| </li><li> <tt>org.eclipse.smila.connectivity.framework.util;version="1.0.0"</tt> |
| </li><li> <tt>org.eclipse.smila.datamodel;version="1.0.0"</tt> |
| </li></ul> |
| </li><li> you will have to add additional packages to fill you agent with business logic ! |
| </li></ul> |
| <a name="Prepare_DataSourceConnect_schema_and_classes"></a><h2> <span class="mw-headline"> Prepare DataSourceConnect schema and classes </span></h2> |
| <ul><li> create an additional source folder <tt>code/gen</tt> to contain the generated schema sources |
| <ul><li> Right-click your bundle and click <i>New > Source Folder</i>. |
| </li><li> Enter "code/gen" as the folder name. |
| </li><li> edit build.properties and add folder <tt>code/gen</tt> to the source folders. |
| </li></ul> |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-text">source.. = code/src/,\ |
| code/gen/ |
| output.. = code/bin/</pre></div> |
| <p><br /> |
| </p> |
| <ul><li> create schema definition |
| <ul><li> create a folder <tt>schema</tt> in your bundle |
| </li><li> create file <tt>schemas\MYAGENTDataSourceConnectionConfigSchema.xsd</tt> to contain the XSD schema for the agent configuration based on the abstract XSD schema "RootDataSourceConnectionConfigSchema" |
| </li><li> therin you have to provide definitions of "Process" and "Attribute" nodes for agent specific information |
| </li><li> the following code snippet can be used as a template |
| </li></ul> |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1"><xs:schema</span> <span class="re0">elementFormDefault</span>=<span class="st0">"qualified"</span> <span class="re0">attributeFormDefault</span>=<span class="st0">"unqualified"</span> <span class="re0">xmlns:xs</span>=<span class="st0">"http://www.w3.org/2001/XMLSchema"</span><span class="re2">></span></span> |
| <span class="sc3"><span class="re1"><xs:redefine</span> <span class="re0">schemaLocation</span>=<span class="st0">"../../org.eclipse.smila.connectivity.framework.schema/schemas/RootDataSourceConnectionConfigSchema.xsd"</span><span class="re2">></span></span> |
| <span class="sc3"><span class="re1"><xs:complexType</span> <span class="re0">name</span>=<span class="st0">"Process"</span><span class="re2">></span></span> |
| <span class="sc3"><span class="re1"><xs:annotation<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><xs:documentation<span class="re2">></span></span></span>Process Specification<span class="sc3"><span class="re1"></xs:documentation<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></xs:annotation<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><xs:complexContent<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><xs:extension</span> <span class="re0">base</span>=<span class="st0">"Process"</span><span class="re2">></span></span> |
| |
| <span class="sc3"><span class="re1"><</span>\!--define agent specific process here --<span class="re2">></span></span> |
| |
| <span class="sc3"><span class="re1"></xs:extension<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></xs:complexContent<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></xs:complexType<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><xs:complexType</span> <span class="re0">name</span>=<span class="st0">"Attribute"</span><span class="re2">></span></span> |
| <span class="sc3"><span class="re1"><xs:complexContent<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><xs:extension</span> <span class="re0">base</span>=<span class="st0">"Attribute"</span><span class="re2">></span></span> |
| |
| <span class="sc3"><span class="re1"><</span>\!--define agent specific attributes here --<span class="re2">></span></span> |
| |
| <span class="sc3"><span class="re1"></xs:extension<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></xs:complexContent<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></xs:complexType<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></xs:redefine<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></xs:schema<span class="re2">></span></span></span></pre></div> |
| <ul><li> create JAXB mapping |
| <ul><li> create file <tt>schemas\MYAGENTDataSourceConnectionConfigSchema.jxb</tt> to contain the JAXB mappings used for generating configuration classes. |
| </li><li> Here is an example for the <tt>MockAgent</tt> JXB file you can use as a template, just rename the "schemaLocation" and "package name": |
| </li></ul> |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1"><jxb:bindings</span> <span class="re0">version</span>=<span class="st0">"1.0"</span> |
| <span class="re0">xmlns:jxb</span>=<span class="st0">"http://java.sun.com/xml/ns/jaxb"</span> |
| <span class="re0">xmlns:xs</span>=<span class="st0">"http://www.w3.org/2001/XMLSchema"</span> |
| <span class="re2">></span></span> |
| <span class="sc3"><span class="re1"><jxb:bindings</span> <span class="re0">schemaLocation</span>=<span class="st0">"MockDataSourceConnectionConfigSchema.xsd"</span> <span class="re0">node</span>=<span class="st0">"/xs:schema"</span><span class="re2">></span></span> |
| <span class="sc3"><span class="re1"><jxb:schemaBindings<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><jxb:package</span> <span class="re0">name</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.agent.mock.messages"</span><span class="re2">/></span></span> |
| <span class="sc3"><span class="re1"></jxb:schemaBindings<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><jxb:globalBindings<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><jxb:javaType</span> <span class="re0">name</span>=<span class="st0">"java.util.Date"</span> <span class="re0">xmlType</span>=<span class="st0">"xs:dateTime"</span> <span class="re0">printMethod</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.schema.tools.SimpleDateFormatter.print"</span> <span class="re0">parseMethod</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.schema.tools.SimpleDateFormatter.parse"</span><span class="re2">/></span></span> |
| <span class="sc3"><span class="re1"><jxb:javaType</span> <span class="re0">name</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.schema.config.MimeTypeAttributeType"</span> <span class="re0">xmlType</span>=<span class="st0">"MimeTypeAttributeType"</span> <span class="re0">parseMethod</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.schema.config.MimeTypeAttributeType.fromValue"</span> <span class="re0">printMethod</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.schema.config.MimeTypeAttributeType.toValue"</span><span class="re2">/></span></span> |
| <span class="sc3"><span class="re1"><jxb:serializable</span> <span class="re0">uid</span>=<span class="st0">"1"</span><span class="re2">/></span></span> |
| <span class="sc3"><span class="re1"></jxb:globalBindings<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></jxb:bindings<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></jxb:bindings<span class="re2">></span></span></span></pre></div> |
| <p><br /> |
| </p> |
| <ul><li> Add a schema location reference in the plug-in implementation |
| <ul><li> Create a new class (<tt>DataSourceConnectionConfigPluginImpl</tt>) which implements the interface <tt>DataSourceConnectionConfigPlugin</tt>. |
| </li><li> Use the method <tt>String getSchemaLocation()</tt> to return "schemas/MYAGENTDataSourceConnectionConfigSchema.xsd". |
| </li><li> Use the method <tt>String getMessagesPackage()</tt> to return package name"org.eclipse.smila.connectivity.framework.agent.MYAGENT.messages". |
| </li></ul> |
| </li></ul> |
| <p>Here is an example implementation for the <tt>MockAgent</tt> you can use as a template: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-java"><span class="kw1">package</span> org.<span class="me1">eclipse</span>.<span class="me1">smila</span>.<span class="me1">connectivity</span>.<span class="me1">framework</span>.<span class="me1">agent</span>.<span class="me1">mock</span>; |
| |
| <span class="kw1">import</span> org.<span class="me1">eclipse</span>.<span class="me1">smila</span>.<span class="me1">connectivity</span>.<span class="me1">framework</span>.<span class="me1">schema</span>.<span class="me1">DataSourceConnectionConfigPlugin</span>; |
| |
| <span class="coMULTI">/** |
| * The Class DataSourceConnectionConfigPluginImpl. |
| */</span> |
| <span class="kw1">public</span> <span class="kw1">class</span> DataSourceConnectionConfigPluginImpl <span class="kw1">implements</span> DataSourceConnectionConfigPlugin <span class="br0">{</span> |
| |
| <span class="coMULTI">/** |
| * {@inheritDoc} |
| * |
| * @see org.eclipse.smila.connectivity.framework.schema.DataSourceConnectionConfigPlugin#getSchemaLocation() |
| */</span> |
| <span class="kw1">public</span> <span class="kw3">String</span> getSchemaLocation<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> |
| <span class="kw1">return</span> <span class="st0">"schemas/MockDataSourceConnectionConfigSchema.xsd"</span>; |
| <span class="br0">}</span> |
| |
| <span class="coMULTI">/** |
| * {@inheritDoc} |
| * |
| * @see org.eclipse.smila.connectivity.framework.schema.DataSourceConnectionConfigPlugin#getMessagesPackage() |
| */</span> |
| <span class="kw1">public</span> <span class="kw3">String</span> getMessagesPackage<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> |
| <span class="kw1">return</span> <span class="st0">"org.eclipse.smila.connectivity.framework.agent.mock.messages"</span>; |
| <span class="br0">}</span> |
| |
| <span class="br0">}</span></pre></div> |
| <ul><li> create new file <tt>plugin.xml</tt> |
| <ul><li> define the extension for <tt>org.eclipse.smila.connectivity.framework.schema.extension</tt>, using the bundle name as ID and NAME. |
| </li><li> set the schema class to your implmenetation of interface <tt>DataSourceConnectionConfigPlugin</tt> |
| </li><li> Here is an example for the <tt>MockAgent</tt> <tt>plugin.xml</tt> file you can use as a template: |
| </li></ul> |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-java"><plugin> |
| <extension |
| id=<span class="st0">"org.eclipse.smila.connectivity.framework.agent.mock"</span> |
| name=<span class="st0">"org.eclipse.smila.connectivity.framework.agent.mock"</span> |
| point=<span class="st0">"org.eclipse.smila.connectivity.framework.schema.extension"</span>> |
| <schema |
| <span class="kw1">class</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.agent.mock.DataSourceConnectionConfigPluginImpl"</span>> |
| </schema> |
| </extension> |
| </plugin></pre></div> |
| <p><br /> |
| </p> |
| <ul><li> Compile schema into JAXB classes by using <tt>ant</tt> |
| <ul><li> create a new file <tt>build.xml</tt> to contain JXB build information |
| </li><li> Launch <tt>ant -Dlib.dir=../lib</tt> from a cmd console to create the java files or to see any error messages. |
| </li><li> See <a href="Setup_for_JAXB_code_generation.html" title="SMILA/Development Guidelines/Setup for JAXB code generation">SMILA/Development_Guidelines/Setup for JAXB code generation</a> for instruction on how to setup the JAXB generation tools. |
| </li><li> Use the following template as the content for file <tt>build.xml</tt> and rename the property value accordingly: |
| </li></ul> |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1"><project</span> <span class="re0">name</span>=<span class="st0">"sub-build"</span> <span class="re0">default</span>=<span class="st0">"compile-schema-and-decorate"</span> <span class="re0">basedir</span>=<span class="st0">"."</span><span class="re2">></span></span> |
| |
| <span class="sc3"><span class="re1"><property</span> <span class="re0">name</span>=<span class="st0">"schema.name"</span> <span class="re0">value</span>=<span class="st0">"MYAGENTDataSourceConnectionConfigSchema"</span> <span class="re2">/></span></span> |
| |
| <span class="sc3"><span class="re1"><import</span> <span class="re0">file</span>=<span class="st0">"../SMILA.builder/xjc/build.xml"</span> <span class="re2">/></span></span> |
| |
| <span class="sc3"><span class="re1"></project<span class="re2">></span></span></span></pre></div> |
| <p><br /> |
| <b>Note:</b> If you rename the schema file name, make sure to update the following locations: |
| </p> |
| <ul><li> Plug-in implementation classes |
| </li><li> <tt>MYAGENTDataSourceConnectionConfigSchema.jxb</tt> (it also should be renamed with the same name as schema) |
| </li><li> <tt>build.xml</tt> |
| </li></ul> |
| <a name="OSGi_and_Declarative_Service_requirements"></a><h2> <span class="mw-headline"> OSGi and Declarative Service requirements </span></h2> |
| <ul><li> It is not required to implement a BundleActivator. |
| </li><li> Create the top level folder <tt>OSGI-INF</tt>. |
| </li><li> Create a Component Description file in <tt>OSGI-INF</tt>. You can name the file as you like, but it is good practice to name it like the agent. Therein you have to provide a unique component name, it should be the same as the agent's class name. Then you have to provide your implementation class and the service interface class, which is always <tt>org.eclipse.smila.connectivity.framework.Agent</tt>. Here is an example for the <tt>MockAgent</tt> component description file you can use as a teemplate: |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1"><component</span> <span class="re0">name</span>=<span class="st0">"MockAgent"</span> <span class="re0">immediate</span>=<span class="st0">"false"</span> <span class="re0">factory</span>=<span class="st0">"AgentFactory"</span><span class="re2">></span></span> |
| <span class="sc3"><span class="re1"><implementation</span> <span class="re0">class</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.agent.mock.MockAgent"</span> <span class="re2">/></span></span> |
| <span class="sc3"><span class="re1"><service<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"><provide</span> <span class="re0">interface</span>=<span class="st0">"org.eclipse.smila.connectivity.framework.Agent"</span><span class="re2">/></span></span> |
| <span class="sc3"><span class="re1"></service<span class="re2">></span></span></span> |
| <span class="sc3"><span class="re1"></component<span class="re2">></span></span></span></pre></div> |
| <ul><li> Add a <i>Service-Component</i> entry to your manifest file, e.g.: |
| </li></ul> |
| <pre> |
| Service-Component: OSGI-INF/mockagent.xml |
| </pre> |
| <ul><li> Open <tt>build.properties</tt> and change the binary build: Add the folders <tt>OSGI-INF</tt> and <tt>schemas</tt> as well as the file <tt>plugin.xml</tt>. |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-xml">bin.includes = META-INF/,\ |
| .,\ |
| plugin.xml,\ |
| schemas/,\ |
| OSGI-INF/</pre></div> |
| <p><br /> |
| </p> |
| <a name="Implement_your_agent"></a><h2> <span class="mw-headline"> Implement your agent </span></h2> |
| <ul><li> Implement your agent in a new class extending <tt>org.eclipse.smila.connectivity.framework.AbstractAgent</tt>. |
| <ul><li> this base class already provides implementations for all interface methods except for method <tt>run()</tt> of interface <tt>Runnable</tt> |
| </li><li> you should use the following code snippet as a template for the run method. It already includes checking if the agent was stopped as well as error handling. You only have to fill in the agent business logic. |
| </li></ul> |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-java"><span class="coMULTI">/** |
| * {@inheritDoc} |
| * |
| * @see java.lang.Runnable#run() |
| */</span> |
| <span class="kw1">public</span> <span class="kw4">void</span> run<span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> |
| <span class="kw1">try</span> <span class="br0">{</span> |
| <span class="kw1">while</span> <span class="br0">(</span>!isStopThread<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span> <span class="br0">{</span> |
| |
| <span class="co1">// fille in the agent business logic</span> |
| |
| <span class="br0">}</span> <span class="co1">// while</span> |
| <span class="br0">}</span> <span class="kw1">catch</span> <span class="br0">(</span><span class="kw3">Throwable</span> t<span class="br0">)</span> <span class="br0">{</span> |
| getAgentState<span class="br0">(</span><span class="br0">)</span>.<span class="me1">setLastError</span><span class="br0">(</span>t<span class="br0">)</span>; |
| getAgentState<span class="br0">(</span><span class="br0">)</span>.<span class="me1">setState</span><span class="br0">(</span>AgentThreadState.<span class="me1">Aborted</span><span class="br0">)</span>; |
| <span class="kw1">throw</span> <span class="kw1">new</span> <span class="kw3">RuntimeException</span><span class="br0">(</span>t<span class="br0">)</span>; |
| <span class="br0">}</span> <span class="kw1">finally</span> <span class="br0">{</span> |
| <span class="kw1">try</span> <span class="br0">{</span> |
| stopThread<span class="br0">(</span><span class="br0">)</span>; |
| <span class="br0">}</span> <span class="kw1">catch</span> <span class="br0">(</span><span class="kw3">Exception</span> e<span class="br0">)</span> <span class="br0">{</span> |
| <span class="kw1">throw</span> <span class="kw1">new</span> <span class="kw3">RuntimeException</span><span class="br0">(</span>e<span class="br0">)</span>; |
| <span class="br0">}</span> |
| <span class="br0">}</span> |
| <span class="br0">}</span></pre></div> |
| <ul><li> inside your business logic you will have to create new <tt>Id</tt> and <tt>Record</tt> objects. You are encouraged to use the utility classes <tt>ConnectivityIdFactory</tt> and <tt>ConnectivityHashFactory</tt> to create Ids and hashes using your agent configuration. To send add or delete request use method <tt>getControllerCallback()</tt> provided by <tt>org.eclipse.smila.connectivity.framework.AbstractAgent</tt> to get a callback reference to the AgentController. For example |
| </li></ul> |
| <div dir="ltr" style="text-align: left;"><pre class="source-java"><span class="co1">// add records</span> |
| Record<span class="br0">[</span><span class="br0">]</span> records = <span class="br0">{</span>...<span class="br0">}</span>; <span class="co1">// first the agent has to create some records</span> |
| getControllerCallback<span class="br0">(</span><span class="br0">)</span>.<span class="me1">add</span><span class="br0">(</span>records<span class="br0">)</span>; |
| |
| <span class="co1">// delete ids</span> |
| Id<span class="br0">[</span><span class="br0">]</span> ids = <span class="br0">{</span>...<span class="br0">}</span>; <span class="co1">// first the agent has to create some ids</span> |
| getControllerCallback<span class="br0">(</span><span class="br0">)</span>.<span class="me1">delete</span><span class="br0">(</span>ids<span class="br0">)</span>;</pre></div> |
| <ul><li> Integrate your new agent bundle into the build process: Refer to the page <a href="How_to_integrate_new_bundle_into_build_process.html" class="mw-redirect" title="SMILA/Development Guidelines/How to integrate new bundle into build process">How to integrate new bundle into build process</a> for further instructions. |
| </li></ul> |
| <p>[optional] |
| </p> |
| <ul><li> Create a JUnit test bundle for this agent e.g. <tt>org.eclipse.smila.connectivity.framework.agent.mock.test</tt>. |
| </li><li> Integrate your test bundle into the build process: Refer to the page <a href="How_to_integrate_test_bundle_into_build_process.html" class="mw-redirect" title="SMILA/Development Guidelines/How to integrate test bundle into build process">How to integrate test bundle into build process</a>) for further instructions. |
| </li></ul> |
| <a name="Activate_your_agent"></a><h2> <span class="mw-headline"> Activate your agent </span></h2> |
| <a name="Activation_SMILA_in_eclipse"></a><h3> <span class="mw-headline"> Activation SMILA in eclipse </span></h3> |
| <ul><li> Open the <i>Run</i> dialog, switch to the configuration page of <i>Bundles</i>, select your bundle and set the parameter <i>Default Auto-Start</i> to <i>true</i>. |
| </li><li> Launch <tt>SMILA.launch</tt>. |
| </li></ul> |
| <a name="Activation_SMILA_application"></a><h3> <span class="mw-headline"> Activation SMILA application </span></h3> |
| <ul><li> Insert your bundle , e.g. <tt>org.eclipse.smila.connectivity.framework.agent.mock@4:start</tt>, to the <tt>config.ini</tt> file. |
| </li><li> Launch SMILA by calling either <tt>SMILA.exe</tt> or <tt>eclipse.exe -console</tt> |
| </li></ul> |
| <a name="Run_your_agent"></a><h2> <span class="mw-headline"> Run your agent </span></h2> |
| <p>Information on how to start and run an Agent can be found in the <a href="../Documentation/AgentController.html" title="SMILA/Documentation/AgentController">AgentController</a> documentation. |
| </p> |
| <!-- |
| NewPP limit report |
| Preprocessor node count: 137/1000000 |
| Post-expand include size: 1045/2097152 bytes |
| Template argument size: 515/2097152 bytes |
| #ifexist count: 0/100 |
| --> |
| |
| <!-- Saved in parser cache with key wikidb:pcache:idhash:19444-0!1!0!!en!2!edit=0 and timestamp 20120203001849 --> |
| <div class="printfooter"> |
| Retrieved from "<a href="../Documentation/HowTo/How_to_implement_an_agent.html">http://wiki.eclipse.org/SMILA/Documentation/HowTo/How_to_implement_an_agent</a>"</div> |
| <div id="catlinks"><p class='catlinks'><a href="http://wiki.eclipse.org/Special:Categories" title="Special:Categories">Category</a>: <span dir='ltr'><a href="http://wiki.eclipse.org/Category:SMILA" title="Category:SMILA">SMILA</a></span></p></div> <!-- end content --> |
| <div class="visualClear"></div> |
| </div> |
| </div> |
| |
| |
| </div> |
| |
| |
| <!-- Yoink of toolbox for phoenix moved up --> |
| |
| |
| </div> |
| </div> |
| <div id="clearFooter"/> |
| <div id="footer" > |
| <ul id="footernav"> |
| <li class="first"><a href="http://www.eclipse.org/">Home</a></li> |
| <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li> |
| <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li> |
| <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li> |
| <li><a href="http://www.eclipse.org/org/foundation/contact.php">Contact</a></li> |
| <li><a href="http://wiki.eclipse.org/Eclipsepedia:About" title="Eclipsepedia:About">About Eclipsepedia</a></li> |
| </ul> |
| <span id="copyright">Copyright © 2012 The Eclipse Foundation. All Rights Reserved</span> |
| <p id="footercredit">This page was last modified 13:29, 24 January 2012 by <a href="http://wiki.eclipse.org/index.php?title=User:Juergen.schumacher.attensity.com&action=edit" class="new" title="User:Juergen.schumacher.attensity.com">Juergen Schumacher</a>. Based on work by <a href="http://wiki.eclipse.org/User:Andreas.schank.attensity.com" title="User:Andreas.schank.attensity.com">A. Schank</a>, <a href="http://wiki.eclipse.org/index.php?title=User:Daniel.stucky.attensity.com&action=edit" class="new" title="User:Daniel.stucky.attensity.com">Daniel Stucky</a> and <a href="http://wiki.eclipse.org/index.php?title=User:Juergen.Schumacher.empolis.com&action=edit" class="new" title="User:Juergen.Schumacher.empolis.com">Juergen Schumacher</a> and <a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HowTo/How_to_implement_an_agent&action=credits" title="SMILA/Documentation/HowTo/How to implement an agent">others</a>.</p> |
| <p id="footerviews">This page has been accessed 2,661 times.</p> |
| </div> |
| |
| <script type="text/javascript"> |
| var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); |
| document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); |
| </script> |
| <script type="text/javascript"> |
| var pageTracker = _gat._getTracker("UA-910670-4"); |
| pageTracker._trackPageview(); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| <!-- <div class="visualClear"></div> --> |
| |
| <script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script> |
| </div> |
| |
| <!-- Served in 0.055 secs. --></body></html> |