blob: 6982de64572f675bdfae1cdc12029ad637555e55 [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>
<!-- Generated by javadoc (1.8.0_261) on Mon Dec 20 14:15:53 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>UriDeploymentSpi (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="UriDeploymentSpi (Ignite 2.11.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;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="https://docs.oracle.com/javase/8/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/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</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="typeNameLabel">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></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, 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>
is blocked until SPI finishes scanning all URI's at least once.
<p>
There are several deployable unit types supported:
<ul>
<li>JAR file.</li>
<li>GAR file.</li>
<li>Local disk folder with structure of an unpacked deployment archive.</li>
<li>Local disk folder containing only compiled Java classes.</li>
</ul>
<h1 class="header">Deployment package</h1>
Deployment package can be represented as a regular JAR file with a specific structure similar to WAR format.
Package files can have <code>'.jar'</code> or <code>'.gar'</code> extension.
<p>
Package structure:
<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="https://spring.io/docs">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 package file.</li>
</ul>
A package may be deployed without a 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 packages 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="https://docs.oracle.com/javase/8/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">Code Example</h1>
The following example demonstrates how the deployment SPI can be used. It expects that you have a package file
in 'home/username/ignite/work/my_deployment/file' folder which contains 'myproject.HelloWorldTask' class.
<pre name="code" class="java">
IgniteConfiguration cfg = new IgniteConfiguration();
DeploymentSpi deploymentSpi = new UriDeploymentSpi();
deploymentSpi.setUriList(Arrays.asList("file:///home/username/ignite/work/my_deployment/file"));
cfg.setDeploymentSpi(deploymentSpi);
try (Ignite ignite = Ignition.start(cfg)) {
ignite.compute().execute("myproject.HelloWorldTask", "my args");
}
</pre>
<h1 class="header">Configuration</h1>
<code>UriDeploymentSpi</code> has the following optional configuration
parameters (there are no mandatory parameters):
<ul>
<li>
Array of <code>UriDeploymentScanner</code>-s which will be used to deploy resources
(see <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setScanners-org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner...-"><code>setScanners(UriDeploymentScanner...)</code></a>). If not specified, preconfigured <code>UriDeploymentFileScanner</code>
and <code>UriDeploymentHttpScanner</code> are used. You can implement your own scanner
by implementing <code>UriDeploymentScanner</code> interface.
</li>
<li>
Temporary directory path where scanned packages 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 by this SPI out of the box:
<ul>
<li><a href="#file">file://</a> - File protocol</li>
<li><a href="#http">http://</a> - HTTP protocol</li>
<li><a href="#http">https://</a> - Secure HTTP protocol</li>
</ul>
<strong>Custom Protocols.</strong>
<p>
You can add support for additional protocols if needed. To do this implement UriDeploymentScanner interface and
plug your implementation into the SPI via <a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setScanners-org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner...-"><code>setScanners(UriDeploymentScanner...)</code></a> method.
<p>
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>
<h1 class="header">File</h1>
For this protocol SPI will scan folder specified by URI on file system and
download any deplloyment files or directories that end with .jar or .gar from source
directory defined in URI. For file system URI must have scheme equal to <code>file</code>.
<p>
Following parameters are supported:
<table class="doctable">
<tr>
<th>Parameter</th>
<th>Description</th>
<th>Optional</th>
<th>Default</th>
</tr>
<tr>
<td>freq</td>
<td>Scanning frequency in milliseconds.</td>
<td>Yes</td>
<td><code>5000</code> ms specified in <code>UriDeploymentFileScanner.DFLT_SCAN_FREQ</code>.</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>'1000'</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=2000@localhost/c:/Program files/ignite/deployment</code>
</blockquote>
<a name="classes"></a>
<h2 class="header">HTTP/HTTPS</h2>
URI deployment scanner tries to read DOM of the html it points to and parses out href attributes of all <span class='angle_bracket'>&lt;</span>a<span class='angle_bracket'>&gt;</span> tags
- this becomes the collection of URLs to deployment package files that should be deployed. It's important that
HTTP scanner uses <code>URLConnection.getLastModified()</code> method to check if there were any changes since last
iteration for each deployment file before redeploying.
<p>
Following parameters are supported:
<table class="doctable">
<tr>
<th>Parameter</th>
<th>Description</th>
<th>Optional</th>
<th>Default</th>
</tr>
<tr>
<td>freq</td>
<td>Scanning frequency in milliseconds.</td>
<td>Yes</td>
<td><code>300000</code> ms specified in <code>UriDeploymentHttpScanner.DFLT_SCAN_FREQ</code>.</td>
</tr>
</table>
<h2 class="header">HTTP URI Example</h2>
The following example will download the page `www.mysite.com/ignite/deployment`, parse it and download and deploy
all deployment packages specified by href attributes of <span class='angle_bracket'>&lt;</span>a<span class='angle_bracket'>&gt;</span> elements on the page using authentication
<code>'username:password'</code> every '10000' milliseconds (only new/updated packages).
<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();
IgniteConfiguration cfg = new IgniteConfiguration();
// Set URIs.
deploySpi.setUriList(Arrays.asList("http://www.site.com/tasks",
"file://freq=20000@localhost/c:/Program files/gg-deployment"));
// Override temporary directory path.
deploySpi.setTemporaryDirectoryPath("c:/tmp/grid");
// Override default deployment SPI.
cfg.setDeploymentSpi(deploySpi);
// Start grid.
Ignition.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;file://freq=20000@localhost/c:/Program files/gg-deployment&lt;/value&gt;
&lt;/list&gt;
&lt;/property&gt;
&lt;/bean&gt;
&lt;/property&gt;
...
&lt;/bean&gt;
</pre>
<p>
<img src="http://ignite.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="seeLabel">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="memberSummary" 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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DEPLOY_TMP_ROOT_NAME">DEPLOY_TMP_ROOT_NAME</a></span></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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#DFLT_DEPLOY_DIR">DFLT_DEPLOY_DIR</a></span></code>
<div class="block">Default deployment directory where SPI will pick up packages.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#XML_DESCRIPTOR_PATH">XML_DESCRIPTOR_PATH</a></span></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>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#igniteInstanceName">igniteInstanceName</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="memberSummary" 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><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#UriDeploymentSpi--">UriDeploymentSpi</a></span>()</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="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>@Nullable <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><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#findResource-java.lang.String-">findResource</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i1" class="rowColor">
<td class="colFirst"><code>org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#getScanners--">getScanners</a></span>()</code>
<div class="block">Gets scanners.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#getTemporaryDirectoryPath--">getTemporaryDirectoryPath</a></span>()</code>
<div class="block">Gets temporary directory path.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#getUriList--">getUriList</a></span>()</code>
<div class="block">Gets list of URIs that are processed by SPI.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#isCheckMd5--">isCheckMd5</a></span>()</code>
<div class="block">Gets <code>checkMd5</code> property.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#register-java.lang.ClassLoader-java.lang.Class-">register</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr,
<a href="https://docs.oracle.com/javase/8/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 id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setCheckMd5-boolean-">setCheckMd5</a></span>(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 id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setEncodeUri-boolean-">setEncodeUri</a></span>(boolean&nbsp;encodeUri)</code>
<div class="block">Indicates that URI must be encoded before usage.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setListener-org.apache.ignite.spi.deployment.DeploymentListener-">setListener</a></span>(@Nullable <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 id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setName-java.lang.String-">setName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Sets SPI name.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setScanners-org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner...-">setScanners</a></span>(org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner...&nbsp;scanners)</code>
<div class="block">Sets scanners.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setTemporaryDirectoryPath-java.lang.String-">setTemporaryDirectoryPath</a></span>(<a href="https://docs.oracle.com/javase/8/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 id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#setUriList-java.util.List-">setUriList</a></span>(<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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 a directory with packages and which should be
scanned by SPI for the new tasks.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#spiStart-java.lang.String-">spiStart</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;igniteInstanceName)</code>
<div class="block">This method is called to start SPI.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#spiStop--">spiStop</a></span>()</code>
<div class="block">This method is called to stop SPI.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#toString--">toString</a></span>()</code></td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html#unregister-java.lang.String-">unregister</a></span>(<a href="https://docs.oracle.com/javase/8/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#addTimeoutObject-org.apache.ignite.spi.IgniteSpiTimeoutObject-">addTimeoutObject</a>, <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#clientFailureDetectionTimeout--">clientFailureDetectionTimeout</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#failureDetectionTimeout--">failureDetectionTimeout</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#failureDetectionTimeoutEnabled--">failureDetectionTimeoutEnabled</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#failureDetectionTimeoutEnabled-boolean-">failureDetectionTimeoutEnabled</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#getLocalNode--">getLocalNode</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#ignite--">ignite</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#initFailureDetectionTimeout--">initFailureDetectionTimeout</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#injectables--">injectables</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#injectResources-org.apache.ignite.Ignite-">injectResources</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#isNodeStopping--">isNodeStopping</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onBeforeStart--">onBeforeStart</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">onClientDisconnected</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onClientReconnected-boolean-">onClientReconnected</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#removeTimeoutObject-org.apache.ignite.spi.IgniteSpiTimeoutObject-">removeTimeoutObject</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#started--">started</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/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#onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">onClientDisconnected</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onClientReconnected-boolean-">onClientReconnected</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>
</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="https://docs.oracle.com/javase/8/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 packages. 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="seeLabel">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="XML_DESCRIPTOR_PATH">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>XML_DESCRIPTOR_PATH</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/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="seeLabel">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="https://docs.oracle.com/javase/8/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="seeLabel">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;<a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a>&nbsp;setTemporaryDirectoryPath(<a href="https://docs.oracle.com/javase/8/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="paramLabel">Parameters:</span></dt>
<dd><code>tmpDirPath</code> - Temporary directory path.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</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;<a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a>&nbsp;setUriList(<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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 a directory with packages 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="paramLabel">Parameters:</span></dt>
<dd><code>uriList</code> - Package file URIs.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</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;<a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a>&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="paramLabel">Parameters:</span></dt>
<dd><code>checkMd5</code> - new value for the property</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</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><span class="returnLabel">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;<a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a>&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="paramLabel">Parameters:</span></dt>
<dd><code>encodeUri</code> - <code>true</code> if every URI should be encoded and
<code>false</code> otherwise.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getTemporaryDirectoryPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemporaryDirectoryPath</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/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><span class="returnLabel">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="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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><span class="returnLabel">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
@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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
<dd><code>lsnr</code> - Listener for deployment events. <code>null</code> to unset the listener.</dd>
</dl>
</li>
</ul>
<a name="getScanners--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getScanners</h4>
<pre>public&nbsp;org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner[]&nbsp;getScanners()</pre>
<div class="block">Gets scanners.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Scanners.</dd>
</dl>
</li>
</ul>
<a name="setScanners-org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setScanners</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;<a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.html" title="class in org.apache.ignite.spi.deployment.uri">UriDeploymentSpi</a>&nbsp;setScanners(org.apache.ignite.spi.deployment.uri.scanners.UriDeploymentScanner...&nbsp;scanners)</pre>
<div class="block">Sets scanners.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scanners</code> - Scanners.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</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><span class="overrideSpecifyLabel">Specified by:</span></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="throwsLabel">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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;igniteInstanceName)
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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
<dd><code>igniteInstanceName</code> - Name of Ignite instance this SPI is being started for
(<code>null</code> for default Ignite instance).</dd>
<dt><span class="throwsLabel">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;@Nullable <a href="../../../../../../org/apache/ignite/spi/deployment/DeploymentResource.html" title="interface in org.apache.ignite.spi.deployment">DeploymentResource</a>&nbsp;findResource(<a href="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">Parameters:</span></dt>
<dd><code>rsrcName</code> - Class name or class alias to find class loader for.</dd>
<dt><span class="returnLabel">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="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr,
<a href="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">Returns:</span></dt>
<dd><code>True</code> if resource was registered.</dd>
<dt><span class="throwsLabel">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="https://docs.oracle.com/javase/8/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><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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="returnLabel">Returns:</span></dt>
<dd><code>True</code> if resource was unregistered.</dd>
</dl>
</li>
</ul>
<a name="setName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setName</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a>&nbsp;setName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Sets SPI name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#setName-java.lang.String-">setName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - SPI name.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/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>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/ignite/spi/deployment/uri/UriDeploymentSpiMBean.html" title="interface in org.apache.ignite.spi.deployment.uri"><span class="typeNameLink">Next&nbsp;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&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;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://ignite.apache.org"><nobr>2021 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> </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>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.11.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 20 2021 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>