Package org.apache.sling.installer.api.tasks

# Class InstallTask

java.lang.Object
org.apache.sling.installer.api.tasks.InstallTask

All Implemented Interfaces:
  `Comparable<InstallTask>`

Direct Known Subclasses:
  `ChangeStateTask`

public abstract class InstallTask extends Object implements Comparable<InstallTask>
Base class for tasks that can be executed by the `OsgiInstaller`. The task is invoked by the installer through the `execute(InstallationContext)` method. During execution the task should use the `setFinishedState(ResourceState)` or `setFinishedState(ResourceState, String)` method once the task is performed or the task decided that the task can never be performed. If the task needs to be retried, the implementation should just not alter the state at all. The installer will invoke the tasks at a later time again for retrying.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ASYNC_ATTR_NAME`
Attribute which is set by the OSGi installer for asynchronous execution.

## Constructor Summary

Constructors
Constructor
Description
`InstallTask(TaskResourceGroup erl)`
Constructor for the task

## Method Summary

Modifier and Type
Method
Description
`final int`
`compareTo(InstallTask o)`
All comparisons are based on getSortKey().
`final boolean`
`equals(Object o)`
`abstract void`
`execute(InstallationContext ctx)`
This is the heart of the task - it performs the actual task.
`TaskResource`
`getResource()`
Return the corresponding resource - depending on the task this might be null.
`TaskResourceGroup`
`getResourceGroup()`
Return the corresponding resource - depending on the task this might be null.
`abstract String`
`getSortKey()`
Tasks are sorted according to this key.
`final int`
`hashCode()`
`boolean`
`isAsynchronousTask()`
If this an asynchronous task it should return `true` The OSGi installer will set the attribute `ASYNC_ATTR_NAME` with an integer value.
`void`
`setFinishedState(ResourceState state)`
Set the finished state for the resource.
`void`
`setFinishedState(ResourceState state, String alias)`
Set the finished state for the resource and the alias
`void`
`setFinishedState(ResourceState state, String alias, String error)`
Set the finish state for the active resource and alias (may be null).
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Field Details

### ASYNC_ATTR_NAME

public static final String ASYNC_ATTR_NAME
Attribute which is set by the OSGi installer for asynchronous execution. The value of the attribute is an Integer which is increased on each async call, it starts with the value `1`.

See Also:
  - Constant Field Values

## Constructor Details

### InstallTask

public InstallTask(TaskResourceGroup erl)
Constructor for the task

Parameters:
  `erl` - The resource group or `null`.

## Method Details

### getResource

public TaskResource getResource()
Return the corresponding resource - depending on the task this might be null.

Returns:
  The task resource or `null`.

### getResourceGroup

public TaskResourceGroup getResourceGroup()
Return the corresponding resource - depending on the task this might be null.

Returns:
  The task resource group or `null`.

### execute

public abstract void execute(InstallationContext ctx)
This is the heart of the task - it performs the actual task.

Parameters:
  `ctx` - The installation context.

### getSortKey

public abstract String getSortKey()
Tasks are sorted according to this key. Therefore this key must uniquely identify this task. A typical sort key contains the entity id of the resource in execution.

Returns:
  The sorting key.

### setFinishedState

public void setFinishedState(ResourceState state)
Set the finished state for the resource.

Parameters:
  `state` - The new state.

### setFinishedState

public void setFinishedState(ResourceState state, String alias)
Set the finished state for the resource and the alias

Parameters:
  `state` - The new state.
  `alias` - The new alias
Since:
  1.1

### setFinishedState

public void setFinishedState(ResourceState state, String alias, String error)
Set the finish state for the active resource and alias (may be null). In addition set an error text (may be `null`).

Parameters:
  `state` - The new state.
  `alias` - The new alias (may be `null`).
  `error` - An error text (may be `null`).
Since:
  1.4
See Also:
  - `setFinishedState(ResourceState)`

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### equals

public final boolean equals(Object o)

Overrides:
  `equals` in class `Object`

### hashCode

public final int hashCode()

Overrides:
  `hashCode` in class `Object`

### compareTo

public final int compareTo(InstallTask o)
All comparisons are based on getSortKey().

Specified by:
  `compareTo` in interface `Comparable<InstallTask>`

### isAsynchronousTask

public boolean isAsynchronousTask()
If this an asynchronous task it should return `true` The OSGi installer will set the attribute `ASYNC_ATTR_NAME` with an integer value. The next time, after the asynchronous task has been run and the OSGi installer has restarted, this attribute will be set on the resource. Asynchronous tasks should only be used for tasks which require the OSGi installer to stop and force it to restart, like a bundle update of the installer itself or a system update. The OSGi installer stops itself for an asynchronous task and is not able to restart itself!

Returns:
  If this is a async request, `true` otherwise `false`
Since:
  1.3