blob: 704ee55198659998a388043cae8a84ba638859c6 [file] [log] [blame]
<!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/Bulkbuilder,SMILA/Documentation/JettyHttpServer,SMILA/Documentation/JobManager,SMILA/Glossary" />
<link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Documentation/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&amp;feed=rss" />
<link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=atom" />
<title>SMILA/Documentation/Bulkbuilder - Eclipsepedia</title>
<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "http://wiki.eclipse.org/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/Bulkbuilder";
var wgTitle = "SMILA/Documentation/Bulkbuilder";
var wgAction = "view";
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
var wgArticleId = "32865";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "285834";
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=-&amp;action=raw&amp;gen=js&amp;useskin=eclipsenova"><!-- site js --></script>
<!-- Head Scripts -->
<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script>
<link rel="stylesheet" type="text/css" href="Bulkbuilder.html" /> </head>
<body class="mediawiki ns-0 ltr page-SMILA_Documentation_Bulkbuilder">
<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&amp;returnto=SMILA/Documentation/Bulkbuilder">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" />&nbsp;
<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 &#160;&#160;</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 &#160;&#160;</a></li>
<li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Documentation/Bulkbuilder">What links here</a></li>
<li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/Bulkbuilder">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/Bulkbuilder&amp;printable=yes">Printable version</a></li> <li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Bulkbuilder&amp;oldid=285834">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="Bulkbuilder.html"><span class="tab">Page</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/Bulkbuilder&amp;action=edit"><span class="tab">Discussion</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Bulkbuilder&amp;action=edit"><span class="tab">View source</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Bulkbuilder&amp;action=history"><span class="tab">History</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Documentation/Bulkbuilder"><span class="tab">Edit</span></a></li>
</ul>
</div>
<script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
<h1 class="firstHeading">SMILA/Documentation/Bulkbuilder</h1>
<div id="bodyContent">
<h3 id="siteSub">From Eclipsepedia</h3>
<div id="contentSub"><span class="subpages">&lt; <a href="../../SMILA.html" title="SMILA">SMILA</a> | <a href="../Documentation.1.html" title="SMILA/Documentation">Documentation</a></span></div>
<div id="jump-to-nav">Jump to: <a href="Bulkbuilder.html#column-one">navigation</a>, <a href="Bulkbuilder.html#searchInput">search</a></div> <!-- start content -->
<table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="Bulkbuilder.html#Bulkbuilder_.28bundle_org.eclipse.smila.bulkbuilder.29"><span class="tocnumber">1</span> <span class="toctext">Bulkbuilder (bundle org.eclipse.smila.bulkbuilder)</span></a>
<ul>
<li class="toclevel-2"><a href="Bulkbuilder.html#JavaDoc"><span class="tocnumber">1.1</span> <span class="toctext">JavaDoc</span></a></li>
<li class="toclevel-2"><a href="Bulkbuilder.html#Configuration"><span class="tocnumber">1.2</span> <span class="toctext">Configuration</span></a></li>
<li class="toclevel-2"><a href="Bulkbuilder.html#Bulk_Builder_definition_in_workers.json"><span class="tocnumber">1.3</span> <span class="toctext">Bulk Builder definition in workers.json</span></a></li>
<li class="toclevel-2"><a href="Bulkbuilder.html#Record_push_REST_API"><span class="tocnumber">1.4</span> <span class="toctext">Record push REST API</span></a>
<ul>
<li class="toclevel-3"><a href="Bulkbuilder.html#push_a_single_record_or_push_a_request_to_delete_a_single_record"><span class="tocnumber">1.4.1</span> <span class="toctext">push a single record or push a request to delete a single record</span></a></li>
<li class="toclevel-3"><a href="Bulkbuilder.html#push_a_micro_bulk"><span class="tocnumber">1.4.2</span> <span class="toctext">push a micro bulk</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<a name="Bulkbuilder_.28bundle_org.eclipse.smila.bulkbuilder.29"></a><h1> <span class="mw-headline"> Bulkbuilder (bundle org.eclipse.smila.bulkbuilder) </span></h1>
<p>The <a href="../Glossary.html#B" title="SMILA/Glossary">Bulkbuilder</a> is the standard entry <a href="../Glossary.html#W" title="SMILA/Glossary">worker</a> for data to an <a href="../Glossary.html#W" title="SMILA/Glossary">asynchronous workflow</a> in SMILA.
</p><p>The Bulk Builder receives single records or <a href="../Glossary.html#M" title="SMILA/Glossary">micro bulks</a> and combines them into one single bulk for further processing in an asynchronous workflow.
The bulks are created on a time and/or bulk size basis (either specified by a configuration file or with job parameters) to create new bulks from the incoming records as follows:
</p>
<ul><li> a record or micro bulk is sent to the Bulkbuilder, either immediately by another Java component in the same VM or by an external client via the HTTP API.
</li><li> if the Bulk Builder has no current task for this job, a new initial task will be requested from the <a href="../Glossary.html#T" title="SMILA/Glossary">Taskmanager</a>
</li><li> a record or a micro bulk will be appended to the bulk file specified by the worker's current task.
</li><li> attachments will be added to the record in the bulks, not written separately to binary storage.
</li><li> if the bulk exceeds the configured bulk size, the bulk will be committed (i.e. the task will be finished and the bulk can be processed by follow-up workers), if not, the task will remain active and the bulk will remain in progress by the Bulk Builder worker.
</li><li> open bulks will be examined regularly if they exceed their time constraints, i.e. if the bulk's age exceeds the maximum age configured. If so, the current bulk will be committed and the task finished.
</li></ul>
<a name="JavaDoc"></a><h2> <span class="mw-headline"> JavaDoc </span></h2>
<p>This page gives only a rough overview of the service. Please refer to the <a href="http://build.eclipse.org/rt/smila/javadoc/current/index.html?org/eclipse/smila/bulkbuilder/package-summary.html" class="external text" title="http://build.eclipse.org/rt/smila/javadoc/current/index.html?org/eclipse/smila/bulkbuilder/package-summary.html" rel="nofollow">Bulkbuilder JavaDoc</a> for detailed information about the Java components.
</p>
<a name="Configuration"></a><h2> <span class="mw-headline"> Configuration </span></h2>
<p>The Bulk Builder can be configured via a configuration file named <tt>bulkbuilder.properties</tt>.
</p><p>The file looks like follows:
</p>
<pre>
# configuration of Bulk Builder
# maximum number of micro bulks that can be processed in parallel.
# Default is -1 (unlimited)
maxParallelMicroBulks=-1
# maximum size after which to close a pending bulk
# Default is 10m = 10 Mebibytes
bulkLimitSize=10m
# maximum time after which to close a pending bulk in seconds
# Default is 120.
bulkLimitTime=120
</pre>
<p>Description of parameters:
</p>
<ul><li>maxParallelMicroBulks
<ul><li>the number of maximum allowed parallel micro bulks. Unlimited (-1) by default.
<ul><li> Since micro bulks will be parsed in memory, a large amount of micro bulks can cause <tt>OutOfMemoryException</tt>s, so the user should be careful about the amount of data confined in a micro bulk as well as the number of parallel clients pushing micro bulks.
</li></ul>
</li></ul>
</li><li>bulkLimitSize
<ul><li>the size limit for bulks
</li><li>if the bulk size exceeds this limit after a record or micro bulk has been appended to this bulk, the task is finished and the next request will cause a new bulk to be created
</li><li>default size is 10 Mebibytes
</li></ul>
</li><li>bulkLimitTime
<ul><li>if the age of a bulk exceeds <tt>bulkLimitTime</tt> seconds, the bulk will be committed, the task will be finished and any future request will cause a new task and bulk to be generated.
</li><li>default age of a bulk is 120 seconds.
</li></ul>
</li></ul>
<p>These configured <tt>bulkLimitSize</tt> and <tt>bulkLimitTime</tt> configuration values can be overridden by job properties, so the limits can be fine tuned to the expected record sizes or frequencies of the different jobs and thus behave different for each job.
</p>
<a name="Bulk_Builder_definition_in_workers.json"></a><h2> <span class="mw-headline"> Bulk Builder definition in workers.json </span></h2>
<pre>
{
&quot;name&quot;&nbsp;: &quot;bulkbuilder&quot;,
&quot;modes&quot;&nbsp;: [&quot;bulkSource&quot;, &quot;autoCommit&quot;],
&quot;output&quot;&nbsp;: [{
&quot;name&quot;&nbsp;: &quot;insertedRecords&quot;,
&quot;type&quot;&nbsp;: &quot;recordBulks&quot;,
&quot;group&quot;&nbsp;: &quot;recordBulks&quot;,
&quot;modes&quot;&nbsp;: [&quot;optional&quot;]
}, {
&quot;name&quot;&nbsp;: &quot;deletedRecords&quot;,
&quot;type&quot;&nbsp;: &quot;indexDeletes&quot;,
&quot;group&quot;&nbsp;: &quot;recordBulks&quot;,
&quot;modes&quot;&nbsp;: [&quot;optional&quot;]
}
]
}
</pre>
<p>After flushing a bulk (either automatically via timing or sizing constraints or triggered by the user), the task is finished and tasks will be generated for the workers connected to the <tt>insertedRecords</tt> and <tt>deletedRecords</tt> slots, so they can process the created bulk of records and/or delete requests pushed into the system.
</p><p>See <a href="JobManager.html" title="SMILA/Documentation/JobManager">JobManager</a> for more information on job processing.
</p>
<a name="Record_push_REST_API"></a><h2> <span class="mw-headline"> Record push REST API </span></h2>
<p>Note that records will only be processed for active jobs. If a job is not in the state "RUNNING" it will not accept new records or micro bulks.
</p><p>Notes:
</p>
<ul><li> a record must contain a <tt>_recordid</tt> metadata attribute.
</li></ul>
<a name="push_a_single_record_or_push_a_request_to_delete_a_single_record"></a><h3> <span class="mw-headline"> push a single record or push a request to delete a single record </span></h3>
<p>Use a POST request to push a record to a specific job.
Use a DELETE request to request deletion of a specific record in a specific job.
</p><p>Adding records with attachments is supported by using Multipart POST requests, see <a href="JettyHttpServer.html#Attachments" title="SMILA/Documentation/JettyHttpServer">SMILA/Documentation/JettyHttpServer#Attachments</a> for details and code example.
</p><p><b>Supported operations:</b>
</p>
<ul><li>POST: push a single record or commit the current bulk.
<ul><li>if a request body is present, this is interpreted as the JSON representation of a record and pushed into the system.
</li><li>if no request body is present the current bulks (i.e. the records and delte requests added to the system) will be flushed and the current task finished.
</li></ul>
</li><li>DELETE: request deletion of a single record
<ul><li>if the <tt>_recordid</tt> request parameter is present, then a delete request for the record with this id is appended to the DELETE bulk of the Bulk Builder
</li><li>if <tt>_recordid</tt> request parameter is not present, the current bulks will be flushed and the current task will be finished.
</li></ul>
</li></ul>
<p><b>Usage:</b>
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/job/&lt;job-name&gt;/record/</tt>.
</li><li>Allowed methods:
<ul><li>POST
</li><li>DELETE
</li></ul>
</li><li>Response status codes:
<ul><li>202 ACCEPTED: Upon successful execution.
</li><li>404 NOT FOUND + JSON Body with error message: If the specified job cannot be found or has not the status <tt>RUNNING</tt>.
</li><li>400 BAD REQUEST + JSON Body with error message: If the pushed record/delete request has no <tt>_recordid</tt> or the record is invalid in another way (e.g. invalid JSON syntax).
</li></ul>
</li></ul>
<a name="push_a_micro_bulk"></a><h3> <span class="mw-headline"> push a micro bulk </span></h3>
<p>Note: a micro bulk consists of a JSON record per line and is thus in itself not valid JSON. <i>Record attachments are not supported in micro bulks.</i>
</p><p>E.g.
</p>
<pre>
{&quot;_recordid&quot;: &quot;id1&quot;, &quot;attribute1&quot;: &quot;attribute1&quot;, ...}
{&quot;_recordid&quot;: &quot;id2&quot;, &quot;attribute1&quot;: &quot;attribute2&quot;, ...}
{&quot;_recordid&quot;: &quot;id3&quot;, &quot;attribute1&quot;: &quot;attribute3&quot;, ...}
</pre>
<p>Use a POST request to push a micro bulk to a specific job.
</p><p><b>Supported operations:</b>
</p>
<ul><li>POST: push a micro bulk.
<ul><li>if a request body is present, this is interpreted as the JSON representation of a record and pushed into the system.
</li><li>if no request body is present, an error will be generated. A micro bulk can be committed using the <tt>record</tt> API (see above).
</li></ul>
</li></ul>
<p><b>Usage:</b>
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/job/&lt;job-name&gt;/bulk/</tt>.
</li><li>Allowed methods:
<ul><li>POST
</li></ul>
</li><li>Response status codes:
<ul><li>202 ACCEPTED: Upon successful execution.
</li><li>404 NOT FOUND + JSON Body with error message: If the specified job cannot be found or has not the status <tt>RUNNING</tt>.
</li><li>400 BAD REQUEST + JSON Body with error message: If one the pushed records in the micro bulk has no <tt>_recordid</tt> or the micro bulk is invalid in another way (e.g. invalid JSON syntax of a single record, or a record spans over multiple lines of the input).
</li></ul>
</li></ul>
<!--
NewPP limit report
Preprocessor node count: 40/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
#ifexist count: 0/100
-->
<!-- Saved in parser cache with key wikidb:pcache:idhash:32865-0!1!0!!en!2!edit=0 and timestamp 20120710135639 -->
<div class="printfooter">
Retrieved from "<a href="Bulkbuilder.html">http://wiki.eclipse.org/SMILA/Documentation/Bulkbuilder</a>"</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 &copy; 2012 The Eclipse Foundation. All Rights Reserved</span>
<p id="footercredit">This page was last modified 15:50, 23 January 2012 by <a href="http://wiki.eclipse.org/index.php?title=User:Juergen.schumacher.attensity.com&amp;action=edit" class="new" title="User:Juergen.schumacher.attensity.com">Juergen Schumacher</a>. Based on work by <a href="http://wiki.eclipse.org/index.php?title=User:Nadine.auslaender.attensity.com&amp;action=edit" class="new" title="User:Nadine.auslaender.attensity.com"> </a>, <a href="http://wiki.eclipse.org/User:Tmenzel.brox.de" title="User:Tmenzel.brox.de">thomas menzel</a> and <a href="http://wiki.eclipse.org/User:Andreas.Weber.empolis.com" title="User:Andreas.Weber.empolis.com">Andreas Weber</a> and <a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Bulkbuilder&amp;action=credits" title="SMILA/Documentation/Bulkbuilder">others</a>.</p>
<p id="footerviews">This page has been accessed 929 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.089 secs. --></body></html>