<!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/JobDefinitions,SMILA/Documentation/JobParameters,SMILA/Documentation/JobRuns" />
		<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/JobDefinitions - 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/JobDefinitions";
var wgTitle = "SMILA/Documentation/JobDefinitions";
var wgAction = "view";
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
var wgArticleId = "32422";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "287306";
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 "/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";
/*]]>*/
</style><link rel="stylesheet" type="text/css" href="JobDefinitions.html" />	</head>
<body  class="mediawiki ns-0 ltr page-SMILA_Documentation_JobDefinitions">
	<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/JobDefinitions">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/JobDefinitions">What links here</a></li>
				<li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/JobDefinitions">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/JobDefinitions&amp;printable=yes">Printable version</a></li>				<li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/JobDefinitions&amp;oldid=287306">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="JobDefinitions.html"><span class="tab">Page</span></a></li>
                                                         <li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/JobDefinitions&amp;action=edit"><span class="tab">Discussion</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/JobDefinitions&amp;action=edit"><span class="tab">View source</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/JobDefinitions&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/JobDefinitions"><span class="tab">Edit</span></a></li>
                  </ul>
        </div>


          <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
            <h1 class="firstHeading">SMILA/Documentation/JobDefinitions</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="JobDefinitions.html#column-one">navigation</a>, <a href="JobDefinitions.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="JobDefinitions.html#Job_definitions"><span class="tocnumber">1</span> <span class="toctext">Job definitions</span></a>
<ul>
<li class="toclevel-2"><a href="JobDefinitions.html#Job_properties_in_detail"><span class="tocnumber">1.1</span> <span class="toctext">Job properties in detail</span></a></li>
<li class="toclevel-2"><a href="JobDefinitions.html#Example"><span class="tocnumber">1.2</span> <span class="toctext">Example</span></a></li>
<li class="toclevel-2"><a href="JobDefinitions.html#List.2C_create.2C_modify_jobs"><span class="tocnumber">1.3</span> <span class="toctext">List, create, modify jobs</span></a>
<ul>
<li class="toclevel-3"><a href="JobDefinitions.html#All_jobs"><span class="tocnumber">1.3.1</span> <span class="toctext">All jobs</span></a></li>
<li class="toclevel-3"><a href="JobDefinitions.html#Specific_job"><span class="tocnumber">1.3.2</span> <span class="toctext">Specific job</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="Job_definitions"></a><h1> <span class="mw-headline"> Job definitions </span></h1>
<p>To run a certain workflow in SMILA, you will have to create a job definition first that references a workflow and sets the desired parameters. With a job definition alone, the system is not yet doing anything. First, the job must be started to get a so called <a href="JobRuns.html" title="SMILA/Documentation/JobRuns">job run</a>. For job runs in "standard" mode, the actual job processing is triggered with every new object that is dropped into the bucket connected to the start action of the respective workflow. The triggering continues with new objects until the job run is finished manually. Job runs in "runOnce" mode, by contrast, do not react on new objects but process all objects currently contained in the respective input bucket and then finish automatically.
Jobs can also be predefined in the system, in which case they are located at <tt>configuration/org.eclipse.smila.jobmanager/jobs.json</tt> and are marked with <tt>"readOnly": true</tt>. Predefined jobs cannot be modified and in contrast to user-defined jobs do not contain a <tt>timestamp</tt> element.
</p><p>Please note that job names must conform to the job manager naming convention:
</p>
<ul><li> names must inly consist of the following characters: <b>a-zA-Z._-</b>
</li></ul>
<p>If they do not conform, they won't be accessible in SMILA.
</p>
<ul><li> Pushing elements with invalid names will result in a 400 Bad Request,
</li><li> predefined elements with invalid names won't be loaded, a warning will be logged in the SMILA.log file.
</li></ul>
<p>E.g.
</p>
<div dir="ltr" style="text-align: left;"><pre class="source-text">... WARN  ...  internal.DefinitionPersistenceImpl            - Error parsing predefined jobs from configuration area
  org.eclipse.smila.common.exceptions.InvalidDefinitionException: Value 'indexInsert/Update' in field 'name'
  is not valid: A name must match pattern ^[a-zA-Z0-9-_\.]+$.</pre></div>
<a name="Job_properties_in_detail"></a><h2> <span class="mw-headline"> Job properties in detail </span></h2>
<ul><li> <tt>name</tt>: Required. Defines the name of the job. 
</li><li> <tt>modes</tt>: Optional. Restricts the modes the job can be started in and defines the default mode. Possible modes are <span style="font-family:monospace;">standard</span> and <span style="font-family:monospace;">runOnce</span>.
<ul><li> the first mode in this list will be used as the default job run mode (i.e. if no mode is provided during job start).
</li><li> If a <tt>modes</tt> section in the workflow is already set, the <tt>modes</tt> section in the job definition can not add modes to the list of available modes defined in the workflow definition. Adding a job definition that violates the workflow definition concerning modes will result in a <tt>400 Bad Request</tt> error. See <a href="JobRuns.html#Job_modes" title="SMILA/Documentation/JobRuns">Job modes</a> for more information.
</li></ul>
</li><li> <tt>parameters</tt>: Optional. Defines the <a href="JobParameters.html" title="SMILA/Documentation/JobParameters">job parameters</a> that will be resolved in the workflow to configure the participating workers and to instantiate the buckets. All parameter (variables) that are declared in the used data object types and workers and that have not yet been set in the workflow or bucket definitions must be set here at the latest. Otherwise an error will occur when trying to create the job.
</li><li> <tt>workflow</tt>: Required. Gives the name of the desired workflow. 
</li></ul>
<p>Job definitions can include additional information (e.g. comments or additional for external tools, etc.), but a GET request will return only relevant information (i.e. the above attributes). If you want to retrieve the additional info that is present in the json file or has been posted with the definition, add returnDetails=true as request parameter.
</p>
<a name="Example"></a><h2> <span class="mw-headline"> Example </span></h2>
<p>An exemplary job definition: 
</p>
<pre>
{
  &quot;name&quot;:&quot;myJob&quot;,
  &quot;modes&quot;: [&quot;standard&quot;],
  &quot;parameters&quot;:{
    &quot;index&quot;: &quot;wikipedia&quot;,
    &quot;store&quot;: &quot;wikidocs&quot;
   },
  &quot;workflow&quot;:&quot;myWorkflow&quot;
}
</pre>
<a name="List.2C_create.2C_modify_jobs"></a><h2> <span class="mw-headline"> List, create, modify jobs </span></h2>
<a name="All_jobs"></a><h3> <span class="mw-headline"> All jobs </span></h3>
<p>Use a GET request to retrieve a list of all job definitions. Use POST for adding or updating a job definition.
</p><p><b>Supported operations:</b> 
</p>
<ul><li>GET: Get a list of all job definitions and details about latest job run. Switch off details with <tt>returnDetails=false</tt> as a URL parameter. If there are no jobs defined, you will get an empty list.
</li><li>POST: Create a new job definition or update an existing one. If the job already exists, it will be updated after successful validation. However, the changes will not apply until the next job run, i.e. the current job run is not influenced by the changes.
</li></ul>
<p><b>Usage:</b> 
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/jobmanager/jobs/</tt>
</li><li>Allowed methods: 
<ul><li>GET
</li><li>POST
</li></ul>
</li><li>Response status codes: 
<ul><li>200 OK: Upon successful execution (GET). 
</li><li>201 CREATED: Upon successful execution (POST).
</li><li>400 Bad Request: If you reference undefined workflows, if not all parameters were resolved, if mandatory fields are missing, the job name is invalid or if validation finds errors (POST).
</li></ul>
</li></ul>
<p><b>Examples:</b> 
</p><p>To get all job definitions:
</p>
<pre>
GET /smila/jobmanager/jobs/
</pre>
<p>The result would be: 
</p>
<pre>
HTTP/1.x 200 OK

{
  &quot;jobs&quot;&nbsp;: [ {
    &quot;name&quot;&nbsp;: &quot;myJob&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/jobmanager/jobs/myJob/&quot;
  } ]
}
</pre>
<p>To create a job:
</p>
<pre>
POST /smila/jobmanager/jobs/

{
  &quot;name&quot;:&quot;myJob&quot;,
  &quot;parameters&quot;:{
    &quot;index&quot;: &quot;wikipedia&quot;,
    &quot;store&quot;: &quot;wikidocs&quot;
   },
  &quot;workflow&quot;:&quot;myWorkflow&quot;
}
</pre>
<p>The result would be: 
</p>
<pre>
HTTP/1.x 201 CREATED

{
  &quot;name&quot;&nbsp;: &quot;myJob&quot;,
  &quot;timestamp&quot;: &quot;2011-08-12T14:49:48.862+0200&quot;,
  &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/jobmanager/jobs/myJob/&quot;
}
</pre>
<a name="Specific_job"></a><h3> <span class="mw-headline"> Specific job </span></h3>
<p>Use a GET request to retrieve the definition of a specific job and an overview of job runs (current job run, if running, and a history of any previous job runs). Use DELETE to delete a job.
</p><p><b>Supported operations:</b> 
</p>
<ul><li>GET: get the definition of the given job.
<ul><li> You can set the URL parameter <tt>returnDetails</tt> to <tt>true</tt> to return additional information that might have been provided when creating the job. If the parameter is ommitted or set to <tt>false</tt> only the relevant information (see above) is gathered.
</li><li> You can set the URL parameter <tt>returnRuns</tt> to <tt>false</tt> to hide the job run lists. This should make the request faster, if you don't need this information. If the parameter is ommitted or set to <tt>true</tt>, the job run list is included.
</li></ul>
</li><li>DELETE: delete the given job definition.
</li><li>POST: start a job run, see <a href="JobRuns.html#Start_job_run" title="SMILA/Documentation/JobRuns">SMILA/Documentation/JobRuns#Start_job_run</a>
</li></ul>
<p><b>Usage:</b> 
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/jobmanager/jobs/&lt;job-name&gt;/</tt>
</li><li>Allowed methods: 
<ul><li>GET
</li><li>DELETE
</li><li>POST: see <a href="JobRuns.html#Start_job_run" title="SMILA/Documentation/JobRuns">SMILA/Documentation/JobRuns#Start_job_run</a>
</li></ul>
</li><li>Response status codes: 
<ul><li>200 OK: Upon successful execution (GET, DELETE). If the job definition to be deleted does not exist you will get a 200 anyway. 
</li><li>400 Bad Request: If a job run mode has been requested that is not allowed by workflow or job definition.
</li><li>404 Server Error: If an undefined name is used, an HTTP 404 Server Error including an error message in the response body will be returned.
</li></ul>
</li></ul>
<p><b>Examples:</b> 
</p><p>To get a specific job definition:
</p>
<pre>
GET /smila/jobmanager/jobs/myJob/
</pre>
<p>The result would be:
</p>
<pre>
HTTP/1.x 200 OK

{
  &quot;definition&quot;: {
    &quot;name&quot;:&quot;myJob&quot;,
    &quot;timestamp&quot;: &quot;2011-08-12T14:49:48.862+0200&quot;,
    &quot;parameters&quot;:{
      &quot;index&quot;: &quot;wikipedia&quot;,
      &quot;store&quot;: &quot;wikidocs&quot;
     },
    &quot;workflow&quot;:&quot;myWorkflow&quot;
  }, 
  &quot;runs&quot;: {
    &quot;current&quot;&nbsp;: {
      &quot;jobId&quot;&nbsp;: &quot;20110930-121108155498&quot;,
      &quot;state&quot;&nbsp;: &quot;RUNNING&quot;,
      &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/jobmanager/jobs/myJob/20110930-121108155498/&quot;
    },
    &quot;history&quot;&nbsp;: [ {
      &quot;jobId&quot;&nbsp;: &quot;20110930-121054946584&quot;,
      &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/jobmanager/jobs/myJob/20110930-121054946584/&quot;
    }, {
      &quot;jobId&quot;&nbsp;: &quot;20110930-121042898813&quot;,
      &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/jobmanager/jobs/myJob/20110930-121042898813/&quot;
    } ]
  }
}
</pre>
<p>If the job is currently not running, the "current" map will be empty, if there are no finished job runs, the "history" sequence will be empty. If "returnRuns=false" has been set in the URL, the complete "runs" part will be missing:
</p>
<pre>
GET /smila/jobmanager/jobs/myJob/?returnRuns=false

--&gt; 

HTTP/1.x 200 OK
{
  &quot;definition&quot;: {
    &quot;name&quot;:&quot;myJob&quot;,
    &quot;timestamp&quot;: &quot;2011-08-12T14:49:48.862+0200&quot;,
    &quot;parameters&quot;:{
      &quot;index&quot;: &quot;wikipedia&quot;,
      &quot;store&quot;: &quot;wikidocs&quot;
     },
    &quot;workflow&quot;:&quot;myWorkflow&quot;
  }
}
</pre>

<!-- 
NewPP limit report
Preprocessor node count: 70/1000000
Post-expand include size: 103/2097152 bytes
Template argument size: 15/2097152 bytes
#ifexist count: 0/100
-->

<!-- Saved in parser cache with key wikidb:pcache:idhash:32422-0!1!0!!en!2!edit=0 and timestamp 20120203101124 -->
<div class="printfooter">
Retrieved from "<a href="JobDefinitions.html">http://wiki.eclipse.org/SMILA/Documentation/JobDefinitions</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 09:57, 30 January 2012 by <a href="http://wiki.eclipse.org/User:Andreas.schank.attensity.com" title="User:Andreas.schank.attensity.com">A. Schank</a>. Based on work by <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>, <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> and <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> and <a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/JobDefinitions&amp;action=credits" title="SMILA/Documentation/JobDefinitions">others</a>.</p>
	      <p id="footerviews">This page has been accessed 686 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.132 secs. --></body></html>
