blob: fc9140c08bb646888e8f63547e3c59d892d4d4d5 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.0.0-rc3/javadoc/org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" />
<!-- Generated by javadoc (version 1.7.0_21) on Tue Mar 24 10:27:33 MSK 2015 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>UriDeploymentSpi (Ignite 1.0.0-RC3)</title>
<meta name="date" content="2015-03-24">
<link rel="stylesheet" type="text/css" href="../../../../../../javadoc.css" title="Style">
<link rel='shortcut icon' href='http://gridgain.com/wp-content/uploads/2014/09/favicon.ico'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css'/>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shCore.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shLegacy.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJava.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPlain.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJScript.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushBash.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushXml.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushScala.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushGroovy.js'></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="UriDeploymentSpi (Ignite 1.0.0-RC3)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/UriDeploymentSpi.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em>Apache Ignite - In-Memory Data Fabric</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" target="_top">Frames</a></li>
<li><a href="UriDeploymentSpi.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite.spi.deployment.uri</div>
<h2 title="Class UriDeploymentSpi" class="title">Class UriDeploymentSpi</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">org.apache.ignite.spi.IgniteSpiAdapter</a></li>
<li>
<ul class="inheritance">
<li>org.apache.ignite.spi.deployment.uri.UriDeploymentSpi</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment">DeploymentSpi</a>, <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri">UriDeploymentSpiMBean</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html" title="interface in org.apache.ignite.spi">IgniteSpiManagementMBean</a></dd>
</dl>
<hr>
<br>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiMultipleInstancesSupport.html" title="annotation in org.apache.ignite.spi">@IgniteSpiMultipleInstancesSupport</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiMultipleInstancesSupport.html#value()">value</a>=true)
<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConsistencyChecked.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConsistencyChecked</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConsistencyChecked.html#optional()">optional</a>=false)
public class <span class="strong">UriDeploymentSpi</span>
extends <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a>
implements <a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment">DeploymentSpi</a>, <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri">UriDeploymentSpiMBean</a></pre>
<div class="block">Implementation of <a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment"><code>DeploymentSpi</code></a> which can deploy tasks from
different sources like file system folders, FTP, email and HTTP.
There are different ways to deploy tasks in grid and every deploy method
depends on selected source protocol. This SPI is configured to work
with a list of URI's. Every URI contains all data about protocol/transport
plus configuration parameters like credentials, scan frequency, and others.
<p>
When SPI establishes a connection with an URI, it downloads deployable units
to the temporary directory in order to prevent it from any changes while
scanning. Use method <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setTemporaryDirectoryPath(java.lang.String)"><code>setTemporaryDirectoryPath(String)</code></a>)
to set custom temporary folder for downloaded deployment units. SPI will
create folder under the path with name identical to local node ID.
<p>
SPI tracks all changes of every given URI. This means that if any file is
changed or deleted, SPI will re-deploy or delete corresponding tasks.
Note that the very first apply to <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#findResource(java.lang.String)"><code>findResource(String)</code></a> findClassLoader(String)}
is blocked until SPI finishes scanning all URI's at least once.
<p>
There are several deployable unit types supported:
<ul>
<li>GAR file.</li>
<li>Local disk folder with structure of unpacked GAR file.</li>
<li>Local disk folder containing only compiled Java classes.</li>
</ul>
<h1 class="header">GAR file</h1>
GAR file is a deployable unit. GAR file is based on <a href="http://www.gzip.org/zlib/">ZLIB</a>
compression format like simple JAR file and its structure is similar to WAR archive.
GAR file has <code>'.gar'</code> extension.
<p>
GAR file structure (file or directory ending with <code>'.gar'</code>):
<pre class="snippet">
META-INF/
|
- ignite.xml
- ...
lib/
|
-some-lib.jar
- ...
xyz.class
...</pre>
<ul>
<li>
<code>META-INF/</code> entry may contain <code>ignite.xml</code> file which is a
task descriptor file. The purpose of task descriptor XML file is to specify
all tasks to be deployed. This file is a regular
<a href="http://www.springframework.org/documentation">Spring</a> XML
definition file. <code>META-INF/</code> entry may also contain any other file
specified by JAR format.
</li>
<li>
<code>lib/</code> entry contains all library dependencies.
</li>
<li>Compiled Java classes must be placed in the root of a GAR file.</li>
</ul>
GAR file may be deployed without descriptor file. If there is no descriptor file, SPI
will scan all classes in archive and instantiate those that implement
<a href="../../../../../../org/apache/ignite/compute/ComputeTask.html" title="interface in org.apache.ignite.compute"><code>ComputeTask</code></a> interface. In that case, all grid task classes must have a
public no-argument constructor. Use <a href="../../../../../../org/apache/ignite/compute/ComputeTaskAdapter.html" title="class in org.apache.ignite.compute"><code>ComputeTaskAdapter</code></a> adapter for
convenience when creating grid tasks.
<p>
By default, all downloaded GAR files that have digital signature in <code>META-INF</code>
folder will be verified and deployed only if signature is valid.
<p>
<h1 class="header">URI</h1>
This SPI uses a hierarchical URI definition. For more information about standard URI
syntax refer to <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net"><code>java.net.URI</code></a> documentation.
<blockquote class="snippet">
[<i>scheme</i><tt><b>:</b></tt>][<tt><b>//</b></tt><i>authority</i>][<i>path</i>][<tt><b>?</b></tt><i>query</i>][<tt><b>#</b></tt><i>fragment</i>]
</blockquote>
<p>
Every URI defines its own deployment repository which will be scanned for any changes.
URI itself has all information about protocol, connectivity, scan intervals and other
parameters.
<p>
URI's may contain special characters, like spaces. If <code>encodeUri</code>
flag is set to <code>true</code> (see <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setEncodeUri(boolean)"><code>setEncodeUri(boolean)</code></a>), then
URI 'path' field will be automatically encoded. By default this flag is
set to <code>true</code>.
<p>
<h1 class="header">Configuration</h1>
<code>UriDeploymentSpi</code> has the following optional configuration
parameters (there are no mandatory parameters):
<ul>
<li>
Temporary directory path where scanned GAR files and directories are
copied to (see <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setTemporaryDirectoryPath(java.lang.String)"><code>setTemporaryDirectoryPath(String)</code></a>).
</li>
<li>
List of URIs to scan (see <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setUriList(java.util.List)"><code>setUriList(List)</code></a>). If not
specified, then URI specified by <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_DEPLOY_DIR"><code>DFLT_DEPLOY_DIR</code></a> is used.
</li>
<li>
Flag to control encoding of the <code>'path'</code> portion of URI
(see <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setEncodeUri(boolean)"><code>setEncodeUri(boolean)</code></a>).
</li>
</ul>
<h1 class="header">Protocols</h1>
Following protocols are supported in SPI:
<ul>
<li><a href="#file">file://</a> - File protocol</li>
<li><a href="#classes">classes://</a> - Custom File protocol.</li>
<li><a href="#ftp">ftp://</a> - File transfer protocol</li>
<li><a href="#http">http://</a> - HTTP protocol</li>
<li><a href="#http">https://</a> - Secure HTTP protocol</li>
</ul>
In addition to SPI configuration parameters, all necessary configuration
parameters for selected URI should be defined in URI. Different protocols
have different configuration parameters described below. Parameters are
separated by '<code>;</code>' character.
<p>
<a name="file"></a>
<h1 class="header">File</h1>
For this protocol SPI will scan folder specified by URI on file system and
download any GAR files or directories that end with .gar from source
directory defined in URI. For file system URI must have scheme equal to <code>file</code>.
<p>
Following parameters are supported for FILE protocol:
<table class="doctable">
<tr>
<th>Parameter</th>
<th>Description</th>
<th>Optional</th>
<th>Default</th>
</tr>
<tr>
<td>freq</td>
<td>File directory scan frequency in milliseconds.</td>
<td>Yes</td>
<td><code>5000</code> ms specified in <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_DISK_SCAN_FREQUENCY"><code>DFLT_DISK_SCAN_FREQUENCY</code></a>.</td>
</tr>
</table>
<h2 class="header">File URI Example</h2>
The following example will scan <code>'c:/Program files/ignite/deployment'</code>
folder on local box every <code>'5000'</code> milliseconds. Note that since path
has spaces, <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setEncodeUri(boolean)"><code>setEncodeUri(boolean)</code></a> parameter must
be set to <code>true</code> (which is default behavior).
<blockquote class="snippet">
<code>file://freq=5000@localhost/c:/Program files/ignite/deployment</code>
</blockquote>
<a name="classes"></a>
<h1 class="header">Classes</h1>
For this protocol SPI will scan folder specified by URI on file system
looking for compiled classes that implement <a href="../../../../../../org/apache/ignite/compute/ComputeTask.html" title="interface in org.apache.ignite.compute"><code>ComputeTask</code></a> interface.
This protocol comes very handy during development, as it allows developer
to specify IDE compilation output folder as URI and all task classes
in that folder will be deployed automatically.
<p>
Following parameters are supported for CLASSES protocol:
<table class="doctable">
<tr>
<th>Parameter</th>
<th>Description</th>
<th>Optional</th>
<th>Default</th>
</tr>
<tr>
<td>freq</td>
<td>File directory scan frequency in milliseconds.</td>
<td>Yes</td>
<td><code>5000</code> ms specified in <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_DISK_SCAN_FREQUENCY"><code>DFLT_DISK_SCAN_FREQUENCY</code></a>.</td>
</tr>
</table>
<h2 class="header">Classes URI Example</h2>
The following example will scan <code>'c:/Program files/ignite/deployment'</code>
folder on local box every <code>'5000'</code> milliseconds. Note that since path
has spaces, <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setEncodeUri(boolean)"><code>setEncodeUri(boolean)</code></a> parameter must
be set to <code>true</code> (which is default behavior).
<blockquote class="snippet">
<code>classes://freq=5000@localhost/c:/Program files/ignite/deployment</code>
</blockquote>
<a name="ftp"></a>
<h1 class="header">FTP</h1>
For FTP protocol SPI will scan and download only GAR files from source
directory defined in URI. SPI doesn't scan FTP folders recursively.
The following parameters are supported for FTP protocol:
<table class="doctable">
<tr>
<th>Parameter</th>
<th>Description</th>
<th>Optional</th>
<th>Default</th>
</tr>
<tr>
<td>freq</td>
<td>FTP location scan frequency in milliseconds.</td>
<td>Yes</td>
<td><code>300000</code> ms specified in <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_FTP_SCAN_FREQUENCY"><code>DFLT_FTP_SCAN_FREQUENCY</code></a>.</td>
</tr>
<tr>
<td>username:password</td>
<td>
FTP username and password specified in standard URI server-based
authority format.
</td>
<td>No</td>
<td>---</td>
</tr>
</table>
<h2 class="header">FTP URI Example</h2>
Here is an example of an FTP URI that connects identified as
<code>username:password</code> to <code>'localhost'</code> on port <code>'21'</code>,
with initial path set to <code>'ignite/deployment'</code>
<blockquote class="snippet">
ftp://username:password;freq=10000@localhost:21/ignite/deployment
</blockquote>
<p>
<h2 class="header">HTTP URI Example</h2>
The following example will scan <code>'ignite/deployment'</code> folder with
on site <code>'www.mysite.com'</code> using authentication
<code>'username:password'</code> every <code>'10000'</code> milliseconds.
<blockquote class="snippet">
<code>http://username:password;freq=10000@www.mysite.com:110/ignite/deployment</code>
</blockquote>
<h2 class="header">Java Example</h2>
UriDeploymentSpi needs to be explicitly configured to override default local deployment SPI.
<pre name="code" class="java">
UriDeploymentSpi deploySpi = new UriDeploymentSpi();
GridConfiguration cfg = new GridConfiguration();
List&lt;String&gt; uris = new ArrayList&lt;String&gt;(5);
uris.add("http://www.site.com/tasks");
uris.add("ftp://ftpuser:password;freq=10000@localhost:21/gg-test/deployment");
uris.add("file://freq=20000@localhost/c:/Program files/gg-deployment");
uris.add("classes:///c:/Java_Projects/myproject/out");
// Set URIs.
deploySpi.setUriList(uris);
// Override temporary directory path.
deploySpi.setTemporaryDirectoryPath("c:/tmp/grid");
// Override default deployment SPI.
cfg.setDeploymentSpi(deploySpi);
// Start grid.
G.start(cfg);
</pre>
<p>
<h2 class="header">Spring Example</h2>
UriDeploymentSpi can be configured from Spring XML configuration file:
<pre name="code" class="xml">
&lt;bean id="grid.custom.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" singleton="true"&gt;
...
&lt;property name="deploymentSpi"&gt;
&lt;bean class="org.apache.ignite.grid.spi.deployment.uri.UriDeploymentSpi"&gt;
&lt;property name="temporaryDirectoryPath" value="c:/tmp/grid"/&gt;
&lt;property name="uriList"&gt;
&lt;list&gt;
&lt;value&gt;http://www.site.com/tasks&lt;/value&gt;
&lt;value&gt;ftp://ftpuser:password;freq=10000@localhost:21/gg-test/deployment&lt;/value&gt;
&lt;value&gt;file://freq=20000@localhost/c:/Program files/gg-deployment&lt;/value&gt;
&lt;value&gt;classes:///c:/Java_Projects/myproject/out&lt;/value&gt;
&lt;/list&gt;
&lt;/property&gt;
&lt;/bean&gt;
&lt;/property&gt;
...
&lt;/bean&gt;
</pre>
<p>
<img src="http://ignite.incubator.apache.org/images/spring-small.png">
<br>
For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a></div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment"><code>DeploymentSpi</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DEPLOY_TMP_ROOT_NAME">DEPLOY_TMP_ROOT_NAME</a></strong></code>
<div class="block">Default temporary directory name relative to file path
<a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setTemporaryDirectoryPath(java.lang.String)"><code>setTemporaryDirectoryPath(String)</code></a>} (value is <code>gg.uri.deployment.tmp</code>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_DEPLOY_DIR">DFLT_DEPLOY_DIR</a></strong></code>
<div class="block">Default deployment directory where SPI will pick up GAR files.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_DISK_SCAN_FREQUENCY">DFLT_DISK_SCAN_FREQUENCY</a></strong></code>
<div class="block">Default scan frequency for <code>file://</code> and <code>classes://</code> protocols (value is <code>5000</code>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_FTP_SCAN_FREQUENCY">DFLT_FTP_SCAN_FREQUENCY</a></strong></code>
<div class="block">Default scan frequency for <code>ftp://</code> protocol (value is <code>300000</code>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_HTTP_SCAN_FREQUENCY">DFLT_HTTP_SCAN_FREQUENCY</a></strong></code>
<div class="block">Default scan frequency for <code>http://</code> protocol (value is <code>300000</code>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#XML_DESCRIPTOR_PATH">XML_DESCRIPTOR_PATH</a></strong></code>
<div class="block">Default task description file path and name (value is <code>META-INF/ignite.xml</code>).</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.ignite.spi.IgniteSpiAdapter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#ignite">ignite</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#UriDeploymentSpi()">UriDeploymentSpi</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentResource.html" title="interface in org.apache.ignite.spi.deployment">DeploymentResource</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#findResource(java.lang.String)">findResource</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rsrcName)</code>
<div class="block">Finds class loader for the given class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#getTemporaryDirectoryPath()">getTemporaryDirectoryPath</a></strong>()</code>
<div class="block">Gets temporary directory path.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#getUriList()">getUriList</a></strong>()</code>
<div class="block">Gets list of URIs that are processed by SPI.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#isCheckMd5()">isCheckMd5</a></strong>()</code>
<div class="block">Gets <code>checkMd5</code> property.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#register(java.lang.ClassLoader, java.lang.Class)">register</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><span class='angle_bracket'>&lt;</span>?<span class='angle_bracket'>&gt;</span>&nbsp;rsrc)</code>
<div class="block">Registers a class loader with this SPI.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setCheckMd5(boolean)">setCheckMd5</a></strong>(boolean&nbsp;checkMd5)</code>
<div class="block">If set to <code>true</code> then SPI should exclude files with same md5s from deployment.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setEncodeUri(boolean)">setEncodeUri</a></strong>(boolean&nbsp;encodeUri)</code>
<div class="block">Indicates that URI must be encoded before usage.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setListener(org.apache.ignite.spi.deployment.DeploymentListener)">setListener</a></strong>(<a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentListener.html" title="interface in org.apache.ignite.spi.deployment">DeploymentListener</a>&nbsp;lsnr)</code>
<div class="block">Sets or unsets deployment event listener.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setTemporaryDirectoryPath(java.lang.String)">setTemporaryDirectoryPath</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tmpDirPath)</code>
<div class="block">Sets absolute path to temporary directory which will be used by
deployment SPI to keep all deployed classes in.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setUriList(java.util.List)">setUriList</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span>&nbsp;uriList)</code>
<div class="block">Sets list of URI which point to GAR file and which should be
scanned by SPI for the new tasks.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#spiStart(java.lang.String)">spiStart</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;gridName)</code>
<div class="block">This method is called to start SPI.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#spiStop()">spiStop</a></strong>()</code>
<div class="block">This method is called to stop SPI.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#toString()">toString</a></strong>()</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#unregister(java.lang.String)">unregister</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rsrcName)</code>
<div class="block">Unregisters all class loaders that have a class with given name or have
a class with give <a href="../../../../../../org/apache/ignite/compute/ComputeTaskName.html" title="annotation in org.apache.ignite.compute"><code>ComputeTaskName</code></a> value.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.ignite.spi.IgniteSpiAdapter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#assertParameter(boolean, java.lang.String)">assertParameter</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#checkConfigurationConsistency0(org.apache.ignite.spi.IgniteSpiContext, org.apache.ignite.cluster.ClusterNode, boolean)">checkConfigurationConsistency0</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#configInfo(java.lang.String, java.lang.Object)">configInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#createSpiAttributeName(java.lang.String)">createSpiAttributeName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getConsistentAttributeNames()">getConsistentAttributeNames</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getExceptionRegistry()">getExceptionRegistry</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getIgniteHome()">getIgniteHome</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getLocalNodeId()">getLocalNodeId</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getName()">getName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getNodeAttributes()">getNodeAttributes</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getSpiContext()">getSpiContext</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getStartTimestamp()">getStartTimestamp</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getStartTimestampFormatted()">getStartTimestampFormatted</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getUpTime()">getUpTime</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getUpTimeFormatted()">getUpTimeFormatted</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#injectables()">injectables</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextDestroyed()">onContextDestroyed</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextDestroyed0()">onContextDestroyed0</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextInitialized(org.apache.ignite.spi.IgniteSpiContext)">onContextInitialized</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextInitialized0(org.apache.ignite.spi.IgniteSpiContext)">onContextInitialized0</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#registerMBean(java.lang.String, T, java.lang.Class)">registerMBean</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#setName(java.lang.String)">setName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#startInfo()">startInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#startStopwatch()">startStopwatch</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#stopInfo()">stopInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#unregisterMBean()">unregisterMBean</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.ignite.spi.IgniteSpi">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#getName()">getName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#getNodeAttributes()">getNodeAttributes</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onContextDestroyed()">onContextDestroyed</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onContextInitialized(org.apache.ignite.spi.IgniteSpiContext)">onContextInitialized</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.ignite.spi.IgniteSpiManagementMBean">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html" title="interface in org.apache.ignite.spi">IgniteSpiManagementMBean</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html#getIgniteHome()">getIgniteHome</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html#getLocalNodeId()">getLocalNodeId</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html#getName()">getName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html#getStartTimestamp()">getStartTimestamp</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html#getStartTimestampFormatted()">getStartTimestampFormatted</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html#getUpTime()">getUpTime</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiManagementMBean.html#getUpTimeFormatted()">getUpTimeFormatted</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DFLT_DEPLOY_DIR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_DEPLOY_DIR</h4>
<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DFLT_DEPLOY_DIR</pre>
<div class="block">Default deployment directory where SPI will pick up GAR files. Note that this path is relative to
<code>IGNITE_HOME/work</code> folder if <code>IGNITE_HOME</code> system or environment variable specified,
otherwise it is relative to <code>work</code> folder under system <code>java.io.tmpdir</code> folder.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/ignite/configuration/IgniteConfiguration.html#getWorkDirectory()"><code>IgniteConfiguration.getWorkDirectory()</code></a>,
<a href="../../../../../../constant-values.html#org.apache.ignite.spi.deployment.uri.UriDeploymentSpi.DFLT_DEPLOY_DIR">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DFLT_DISK_SCAN_FREQUENCY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_DISK_SCAN_FREQUENCY</h4>
<pre>public static final&nbsp;int DFLT_DISK_SCAN_FREQUENCY</pre>
<div class="block">Default scan frequency for <code>file://</code> and <code>classes://</code> protocols (value is <code>5000</code>).</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.deployment.uri.UriDeploymentSpi.DFLT_DISK_SCAN_FREQUENCY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DFLT_FTP_SCAN_FREQUENCY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_FTP_SCAN_FREQUENCY</h4>
<pre>public static final&nbsp;int DFLT_FTP_SCAN_FREQUENCY</pre>
<div class="block">Default scan frequency for <code>ftp://</code> protocol (value is <code>300000</code>).</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.deployment.uri.UriDeploymentSpi.DFLT_FTP_SCAN_FREQUENCY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DFLT_HTTP_SCAN_FREQUENCY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_HTTP_SCAN_FREQUENCY</h4>
<pre>public static final&nbsp;int DFLT_HTTP_SCAN_FREQUENCY</pre>
<div class="block">Default scan frequency for <code>http://</code> protocol (value is <code>300000</code>).</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.deployment.uri.UriDeploymentSpi.DFLT_HTTP_SCAN_FREQUENCY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="XML_DESCRIPTOR_PATH">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>XML_DESCRIPTOR_PATH</h4>
<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> XML_DESCRIPTOR_PATH</pre>
<div class="block">Default task description file path and name (value is <code>META-INF/ignite.xml</code>).</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.deployment.uri.UriDeploymentSpi.XML_DESCRIPTOR_PATH">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DEPLOY_TMP_ROOT_NAME">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEPLOY_TMP_ROOT_NAME</h4>
<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DEPLOY_TMP_ROOT_NAME</pre>
<div class="block">Default temporary directory name relative to file path
<a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setTemporaryDirectoryPath(java.lang.String)"><code>setTemporaryDirectoryPath(String)</code></a>} (value is <code>gg.uri.deployment.tmp</code>).</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.deployment.uri.UriDeploymentSpi.DEPLOY_TMP_ROOT_NAME">Constant Field Values</a></dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="UriDeploymentSpi()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>UriDeploymentSpi</h4>
<pre>public&nbsp;UriDeploymentSpi()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setTemporaryDirectoryPath(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemporaryDirectoryPath</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional()">optional</a>=true)
public&nbsp;void&nbsp;setTemporaryDirectoryPath(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tmpDirPath)</pre>
<div class="block">Sets absolute path to temporary directory which will be used by
deployment SPI to keep all deployed classes in.
<p>
If not provided, default value is <code>java.io.tmpdir</code> system property value.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>tmpDirPath</code> - Temporary directory path.</dd></dl>
</li>
</ul>
<a name="setUriList(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUriList</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional()">optional</a>=true)
public&nbsp;void&nbsp;setUriList(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span>&nbsp;uriList)</pre>
<div class="block">Sets list of URI which point to GAR file and which should be
scanned by SPI for the new tasks.
<p>
If not provided, default value is list with
<code>file://${IGNITE_HOME}/work/deployment/file</code> element.
Note that system property <code>IGNITE_HOME</code> must be set.
For unknown <code>IGNITE_HOME</code> list of URI must be provided explicitly.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>uriList</code> - GAR file URIs.</dd></dl>
</li>
</ul>
<a name="setCheckMd5(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCheckMd5</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional()">optional</a>=true)
public&nbsp;void&nbsp;setCheckMd5(boolean&nbsp;checkMd5)</pre>
<div class="block">If set to <code>true</code> then SPI should exclude files with same md5s from deployment.
Otherwise it should try to load new unit regardless to possible file duplication.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>checkMd5</code> - new value for the property</dd></dl>
</li>
</ul>
<a name="isCheckMd5()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCheckMd5</h4>
<pre>public&nbsp;boolean&nbsp;isCheckMd5()</pre>
<div class="block">Gets <code>checkMd5</code> property.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html#isCheckMd5()">isCheckMd5</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri">UriDeploymentSpiMBean</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>value of the <code>checkMd5</code> property.</dd></dl>
</li>
</ul>
<a name="setEncodeUri(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEncodeUri</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional()">optional</a>=true)
public&nbsp;void&nbsp;setEncodeUri(boolean&nbsp;encodeUri)</pre>
<div class="block">Indicates that URI must be encoded before usage. Encoding means replacing
all occurrences of space with '%20', percent sign with '%25'
and semicolon with '%3B'.
<p>
If not provided, default value is <code>true</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>encodeUri</code> - <code>true</code> if every URI should be encoded and
<code>false</code> otherwise.</dd></dl>
</li>
</ul>
<a name="getTemporaryDirectoryPath()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemporaryDirectoryPath</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getTemporaryDirectoryPath()</pre>
<div class="block">Gets temporary directory path.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html#getTemporaryDirectoryPath()">getTemporaryDirectoryPath</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri">UriDeploymentSpiMBean</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>Temporary directory path.</dd></dl>
</li>
</ul>
<a name="getUriList()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUriList</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span>&nbsp;getUriList()</pre>
<div class="block">Gets list of URIs that are processed by SPI.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html#getUriList()">getUriList</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri">UriDeploymentSpiMBean</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>List of URIs.</dd></dl>
</li>
</ul>
<a name="setListener(org.apache.ignite.spi.deployment.DeploymentListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setListener</h4>
<pre>public&nbsp;void&nbsp;setListener(@Nullable
<a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentListener.html" title="interface in org.apache.ignite.spi.deployment">DeploymentListener</a>&nbsp;lsnr)</pre>
<div class="block">Sets or unsets deployment event listener. Grid implementation will use this listener
to properly add and remove various deployments.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html#setListener(org.apache.ignite.spi.deployment.DeploymentListener)">setListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment">DeploymentSpi</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>lsnr</code> - Listener for deployment events. <code>null</code> to unset the listener.</dd></dl>
</li>
</ul>
<a name="spiStop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spiStop</h4>
<pre>public&nbsp;void&nbsp;spiStop()
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">This method is called to stop SPI. After this method returns kernel
assumes that this SPI is finished and all resources acquired by it
are released.
<p>
<b>
Note that this method can be called at any point including during
recovery of failed start. It should make no assumptions on what state SPI
will be in when this method is called.
</b></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#spiStop()">spiStop</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Thrown in case of any error during SPI stop.</dd></dl>
</li>
</ul>
<a name="spiStart(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spiStart</h4>
<pre>public&nbsp;void&nbsp;spiStart(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;gridName)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">This method is called to start SPI. After this method returns
successfully kernel assumes that SPI is fully operational.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#spiStart(java.lang.String)">spiStart</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>gridName</code> - Name of grid instance this SPI is being started for
(<code>null</code> for default grid).</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Throws in case of any error during SPI start.</dd></dl>
</li>
</ul>
<a name="findResource(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findResource</h4>
<pre>@Nullable
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentResource.html" title="interface in org.apache.ignite.spi.deployment">DeploymentResource</a>&nbsp;findResource(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rsrcName)</pre>
<div class="block">Finds class loader for the given class.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html#findResource(java.lang.String)">findResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment">DeploymentSpi</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>rsrcName</code> - Class name or class alias to find class loader for.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Deployed class loader, or <code>null</code> if not deployed.</dd></dl>
</li>
</ul>
<a name="register(java.lang.ClassLoader, java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>register</h4>
<pre>public&nbsp;boolean&nbsp;register(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><span class='angle_bracket'>&lt;</span>?<span class='angle_bracket'>&gt;</span>&nbsp;rsrc)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">Registers a class loader with this SPI. This method exists
to be able to add external class loaders to deployment SPI.
Deployment SPI may also have its own class loaders. For example,
in case of GAR deployment, every GAR file is loaded and deployed
with a separate class loader maintained internally by the SPI.
<p>
The array of classes passed in should be checked for presence of
<a href="../../../../../../org/apache/ignite/compute/ComputeTaskName.html" title="annotation in org.apache.ignite.compute"><code>ComputeTaskName</code></a> annotations. The classes that have this annotation
should be accessible by this name from <a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html#findResource(java.lang.String)"><code>DeploymentSpi.findResource(String)</code></a> method.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html#register(java.lang.ClassLoader, java.lang.Class)">register</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment">DeploymentSpi</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>ldr</code> - Class loader to register.</dd><dd><code>rsrc</code> - Class that should be checked for aliases.
Currently the only alias in the system is <a href="../../../../../../org/apache/ignite/compute/ComputeTaskName.html" title="annotation in org.apache.ignite.compute"><code>ComputeTaskName</code></a> for
task classes; in future, there may be others.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>True</code> if resource was registered.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - If registration failed.</dd></dl>
</li>
</ul>
<a name="unregister(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregister</h4>
<pre>public&nbsp;boolean&nbsp;unregister(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rsrcName)</pre>
<div class="block">Unregisters all class loaders that have a class with given name or have
a class with give <a href="../../../../../../org/apache/ignite/compute/ComputeTaskName.html" title="annotation in org.apache.ignite.compute"><code>ComputeTaskName</code></a> value.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html#unregister(java.lang.String)">unregister</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentSpi.html" title="interface in org.apache.ignite.spi.deployment">DeploymentSpi</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>rsrcName</code> - Either class name or <a href="../../../../../../org/apache/ignite/compute/ComputeTaskName.html" title="annotation in org.apache.ignite.compute"><code>ComputeTaskName</code></a> value for a class
whose class loader needs to be unregistered.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>True</code> if resource was unregistered.</dd></dl>
</li>
</ul>
<a name="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/UriDeploymentSpi.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em>Apache Ignite - In-Memory Data Fabric</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" target="_top">Frames</a></li>
<li><a href="UriDeploymentSpi.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://incubator.apache.org/projects/ignite.html"><nobr>2015 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Apache Ignite Fabric</b> </td> <td>:&nbsp;&nbsp; ver. <strong>1.0.0-RC3</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; March 24 2015 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
<!--FOOTER--><script type='text/javascript'>SyntaxHighlighter.all();dp.SyntaxHighlighter.HighlightAll('code');</script>
</body>
</html>