public abstract class InstallTask extends Object implements Comparable<InstallTask>
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.Modifier and Type | Field and Description |
---|---|
static String |
ASYNC_ATTR_NAME
Attribute which is set by the OSGi installer for asynchronous execution.
|
Constructor and Description |
---|
InstallTask(TaskResourceGroup erl)
Constructor for the task
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(InstallTask o)
All comparisons are based on getSortKey().
|
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.
|
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() |
public static final String ASYNC_ATTR_NAME
1
.public InstallTask(TaskResourceGroup erl)
erl
- The resource group or null
.public TaskResource getResource()
null
.public TaskResourceGroup getResourceGroup()
null
.public abstract void execute(InstallationContext ctx)
ctx
- The installation context.public abstract String getSortKey()
public void setFinishedState(ResourceState state)
state
- The new state.public void setFinishedState(ResourceState state, String alias)
state
- The new state.alias
- The new aliaspublic void setFinishedState(ResourceState state, String alias, String error)
null
).state
- The new state.alias
- The new alias (may be null
).error
- An error text (may be null
).setFinishedState(ResourceState)
public final int compareTo(InstallTask o)
compareTo
in interface Comparable<InstallTask>
public boolean isAsynchronousTask()
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!true
otherwise false
Copyright © 2017 The Apache Software Foundation. All rights reserved.