<!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/Importing/DeltaCheck,SMILA/Documentation/Importing/Concept" />
		<link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Documentation/Importing/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/Importing/DeltaCheck - 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/Importing/DeltaCheck";
var wgTitle = "SMILA/Documentation/Importing/DeltaCheck";
var wgAction = "view";
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
var wgArticleId = "34786";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "291266";
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>
<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 "http://wiki.eclipse.org/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";
/*]]>*/
</style><style type="text/css">/*<![CDATA[*/
.source-javascript {line-height: normal; font-size: medium;}
.source-javascript li {line-height: normal;}
/**
 * GeSHi Dynamically Generated Stylesheet
 * --------------------------------------
 * Dynamically generated stylesheet for javascript
 * CSS class: source-javascript, CSS id: 
 * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter)
 */
.source-javascript .de1, .source-javascript .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;}
.source-javascript  {}
.source-javascript .head {}
.source-javascript .foot {}
.source-javascript .imp {font-weight: bold; color: red;}
.source-javascript .ln-xtra {color: #cc0; background-color: #ffc;}
.source-javascript li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;}
.source-javascript li.li2 {font-weight: bold;}
.source-javascript .kw1 {color: #000066; font-weight: bold;}
.source-javascript .kw2 {color: #003366; font-weight: bold;}
.source-javascript .kw3 {color: #000066;}
.source-javascript .co1 {color: #009900; font-style: italic;}
.source-javascript .coMULTI {color: #009900; font-style: italic;}
.source-javascript .es0 {color: #000099; font-weight: bold;}
.source-javascript .br0 {color: #66cc66;}
.source-javascript .st0 {color: #3366CC;}
.source-javascript .nu0 {color: #CC0000;}
.source-javascript .me1 {color: #006600;}
.source-javascript .sc0 {}
.source-javascript .sc1 {}
.source-javascript .sc2 {}
.source-javascript .sc3 {}
.source-javascript .re0 {color: #0066FF;}

/*]]>*/
</style>
<style type="text/css">/*<![CDATA[*/
@import "http://wiki.eclipse.org/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";
/*]]>*/
</style><link rel="stylesheet" type="text/css" href="DeltaCheck.html" />	</head>
<body  class="mediawiki ns-0 ltr page-SMILA_Documentation_Importing_DeltaCheck">
	<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/Importing/DeltaCheck">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/Importing/DeltaCheck">What links here</a></li>
				<li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/Importing/DeltaCheck">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/Importing/DeltaCheck&amp;printable=yes">Printable version</a></li>				<li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Importing/DeltaCheck&amp;oldid=291266">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="DeltaCheck.html"><span class="tab">Page</span></a></li>
                                                         <li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/Importing/DeltaCheck&amp;action=edit"><span class="tab">Discussion</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Importing/DeltaCheck&amp;action=edit"><span class="tab">View source</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Importing/DeltaCheck&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/Importing/DeltaCheck"><span class="tab">Edit</span></a></li>
                  </ul>
        </div>


          <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
            <h1 class="firstHeading">SMILA/Documentation/Importing/DeltaCheck</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="DeltaCheck.html#column-one">navigation</a>, <a href="DeltaCheck.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="DeltaCheck.html#Workers_for_Importing:_Delta_Check"><span class="tocnumber">1</span> <span class="toctext">Workers for Importing: Delta Check</span></a>
<ul>
<li class="toclevel-2"><a href="DeltaCheck.html#Worker_Description"><span class="tocnumber">1.1</span> <span class="toctext">Worker Description</span></a></li>
<li class="toclevel-2"><a href="DeltaCheck.html#ObjectStoreDeltaService"><span class="tocnumber">1.2</span> <span class="toctext">ObjectStoreDeltaService</span></a>
<ul>
<li class="toclevel-3"><a href="DeltaCheck.html#Entry_key_calculation_and_configuration"><span class="tocnumber">1.2.1</span> <span class="toctext">Entry key calculation and configuration</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="DeltaCheck.html#DeltaService_ReST_API"><span class="tocnumber">1.3</span> <span class="toctext">DeltaService ReST API</span></a>
<ul>
<li class="toclevel-3"><a href="DeltaCheck.html#Show_active_sources"><span class="tocnumber">1.3.1</span> <span class="toctext">Show active sources</span></a></li>
<li class="toclevel-3"><a href="DeltaCheck.html#Clear_all_sources"><span class="tocnumber">1.3.2</span> <span class="toctext">Clear all sources</span></a></li>
<li class="toclevel-3"><a href="DeltaCheck.html#Get_info_about_sources"><span class="tocnumber">1.3.3</span> <span class="toctext">Get info about sources</span></a></li>
<li class="toclevel-3"><a href="DeltaCheck.html#Clear_a_single_source"><span class="tocnumber">1.3.4</span> <span class="toctext">Clear a single source</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="Workers_for_Importing:_Delta_Check"></a><h2> <span class="mw-headline"> Workers for Importing: Delta Check </span></h2>
<p>Delta Checking is about determining if a record has changed since the last import run and needs to be sent to the processing job again, e.g. to update the index.
</p>
<a name="Worker_Description"></a><h3> <span class="mw-headline"> Worker Description </span></h3>
<ul><li> Worker name: <tt>deltaChecker</tt>
</li><li> Parameters: 
<ul><li> <tt>deltaImportStrategy</tt>: configures usage of DeltaService. It has four possible values that select one of two behaviours for this worker (see <a href="Concept.html#Delta_Delete" title="SMILA/Documentation/Importing/Concept">DeltaDelete</a> for an overview):
<ul><li> <tt>disabled</tt> or <tt>initial</tt>: DeltaService is not used at all by this worker, the input records are just written to the output unchanged. Actually, the worker could be removed from the workflow completely in this case, but for convenience it is possible to let the worker remain it in the workflow, if performance is not that critical, although the worker won't actually do any useful work in these modes.
</li><li> <tt>additive</tt> or <tt>full</tt>: Perform normal operation: check state of input records, don't write unchanged records to output.
</li></ul>
</li></ul>
</li><li> Input Slot: <tt>recordsToCheck</tt>, a recordBulks bucket
</li><li> Output Slot: 
<ul><li> <tt>updatedRecords</tt>, a recordBulks bucket. Output can be empty, if no record needs an update.
</li><li> <tt>updatedCompounds</tt>, an optional recordBulks bucket. If connected, compound objects (records with attribute <tt>_isCompound</tt> set to true) are not written to <tt>updatedRecord</tt> but to this slot instead. Output can be empty, of course, if no changed or new compound objects were crawled.
</li></ul>
</li></ul>
<p>The worker calls the DeltaService for each incoming record. The job run id is taken from a task property, while the source ID, record ID and hash code are taken from the record itself. The hash code is expected to be in attribute <tt>"_deltaHash"</tt> which can contain a single value. Cases are:
</p>
<ul><li> DeltaService reports record as UPTODATE: record is not added to the output.
</li><li> DeltaService reports record as NEW: record is added to the output.
</li><li> DeltaService reports record as CHANGED: attribute <tt>"_update"</tt> is set to true and the record is added to the output.
</li><li> <tt>"_deltaHash"</tt> not set: DeltaService is not called and the record is added to the output.
</li><li> Error in DeltaService: record is not written to output.
</li></ul>
<a name="ObjectStoreDeltaService"></a><h3> <span class="mw-headline"> ObjectStoreDeltaService </span></h3>
<p>The DeltaCheck worker makes use of a DeltaService to check and update the state of a record. The bundle <tt>org.eclipse.smila.importing.state.objectstore</tt> provides an implementation of this service putting those state entries in the ObjectStore (and hence as separate files in a filesystem, if the filesystem implementation of objectstore is used), which should work well enough for a limited number of records per source. 
</p><p>The keys of the entries are created from the source ID, a '/' character and an entry key created from a digest calculated from the record ID. A small configuration file allows to customize this entry key, which may be necessary to manage a greater number of documents or to make use of advanced features of more sophisticated ObjectStore implementation.
</p><p>The service uses store <tt>deltaservice</tt>.
</p>
<a name="Entry_key_calculation_and_configuration"></a><h4> <span class="mw-headline"> Entry key calculation and configuration </span></h4>
<p>Entries are stored in different "shards". This "sharding" is necessary to make it possible to parallelize the checking for deleted records after the import run has finished: For each shard one task will be generated to find the entries in this shard that have not been visited in this run. The shard part of the entry key is determined by taking the first <tt>shard.length</tt> characters of the record ID digest. The longer this shard part is the more shards can be created and the more the delete check can be parallelized. The default <tt>shard.length</tt> is 2 (which yields 256 shards, because the digest is a hexadecimal number).
</p><p>The rest of the digest can be "segmented", i.e. additional '/' can be added so that not all entries of a shard are stored in a single directory. By default, 1 additional '/' is added after the second character of the digest.
</p><p>The configuration file is <tt>org.eclipse.smila.importing.state.objectstore/deltastore.properties</tt>:
</p>
<div dir="ltr" style="text-align: left;"><pre class="source-text"># Object ID configuration for delta entries in object store.
shard.length=2
segment.count=2
segment.length=1
&nbsp;
# first argument: shard (first characters of record ID digest)
# second argument: segmented record ID digest
key.pattern=%s/%s</pre></div>
<p>See the test case <a href="https://dev.eclipse.org/svnroot/rt/org.eclipse.smila/trunk/core/org.eclipse.smila.importing.state.objectstore.test/code/src/org/eclipse/smila/importing/state/objectstore/test/TestStateStoreConfiguration.java" class="external text" title="https://dev.eclipse.org/svnroot/rt/org.eclipse.smila/trunk/core/org.eclipse.smila.importing.state.objectstore.test/code/src/org/eclipse/smila/importing/state/objectstore/test/TestStateStoreConfiguration.java" rel="nofollow">TestStateStoreConfiguration.java</a> for examples of the effects of these settings.
</p>
<a name="DeltaService_ReST_API"></a><h3> <span class="mw-headline"> DeltaService ReST API </span></h3>
<p>Currently there is only a simple REST API for DeltaService that allows to show which sources have currently entries and delete entries of a single source or all entries.
</p>
<a name="Show_active_sources"></a><h4> <span class="mw-headline"> Show active sources </span></h4>
<ul><li> URL: <tt>/smila/importing/delta</tt>
</li><li> Method: <tt>GET</tt>
</li><li> Response Code: <tt>200 OK</tt>, if successful, 
</li><li> Response JSON:
</li></ul>
<div dir="ltr" style="text-align: left;"><pre class="source-javascript"><span class="br0">&#123;</span><span class="st0">&quot;sources&quot;</span>: <span class="br0">&#91;</span>
  <span class="br0">&#123;</span>
    <span class="st0">&quot;id&quot;</span>: <span class="st0">&quot;web&quot;</span>,
    <span class="st0">&quot;url&quot;</span>: <span class="st0">&quot;http://localhost:8080/smila/importing/delta/web&quot;</span>
  <span class="br0">&#125;</span>,
  <span class="br0">&#123;</span>
    <span class="st0">&quot;id&quot;</span>: <span class="st0">&quot;file&quot;</span>,
    <span class="st0">&quot;url&quot;</span>: <span class="st0">&quot;http://localhost:8080/smila/importing/delta/file&quot;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#93;</span><span class="br0">&#125;</span></pre></div>
<a name="Clear_all_sources"></a><h4> <span class="mw-headline"> Clear all sources </span></h4>
<ul><li> URL: <tt>/smila/importing/delta</tt>
</li><li> Method: <tt>DELETE</tt>
</li><li> Response Code: <tt>200 OK</tt>, if successful
</li><li> Response JSON: none
</li></ul>
<a name="Get_info_about_sources"></a><h4> <span class="mw-headline"> Get info about sources </span></h4>
<ul><li> URL: <tt>/smila/importing/delta/&lt;sourcename&gt;</tt>
</li><li> Method: <tt>GET</tt>
</li><li> Response Code: 
<ul><li> <tt>200 OK</tt>, if successful, 
</li><li> <tt>404 NOT FOUND</tt>, if source does not have entries currently. 
</li></ul>
</li></ul>
<ul><li> Response JSON: 
</li></ul>
<p>Contains the ID of the source and the number of entries. If there are more than 10000 entries, the number is only estimated because exact counting could take a long time. To force an exact count, add <tt>?countExact=true</tt> to the request URL.
</p>
<div dir="ltr" style="text-align: left;"><pre class="source-javascript"><span class="br0">&#123;</span>
  <span class="st0">&quot;id&quot;</span>: <span class="st0">&quot;web&quot;</span>,
  <span class="st0">&quot;count&quot;</span>: <span class="st0">&quot;123456&quot;</span>
<span class="br0">&#125;</span></pre></div>
<a name="Clear_a_single_source"></a><h4> <span class="mw-headline"> Clear a single source </span></h4>
<ul><li> URL: <tt>/smila/importing/delta/&lt;sourcename&gt;</tt>
</li><li> Method: <tt>DELETE</tt>
</li><li> Response Code: <tt>200 OK</tt>, if successful
</li><li> Response JSON: none
</li></ul>

<!-- 
NewPP limit report
Preprocessor node count: 52/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:34786-0!1!0!!en!2!edit=0 and timestamp 20120710041357 -->
<div class="printfooter">
Retrieved from "<a href="DeltaCheck.html">http://wiki.eclipse.org/SMILA/Documentation/Importing/DeltaCheck</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 &copy; 2012 The Eclipse Foundation. All Rights Reserved</span>
	      <p id="footercredit">This page was last modified 13:59, 20 February 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/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&amp;action=edit" class="new" title="User:Daniel.stucky.attensity.com">Daniel Stucky</a> and <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>.</p>
	      <p id="footerviews">This page has been accessed 1,102 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.065 secs. --></body></html>
