public abstract class AbstractNodeAmPlugin extends Object implements AmPlugin
A convenient base class for AmPlugin
s that provide authentication nodes.
Note on implementing the AmPlugin.getPluginVersion()
method:
Nodes extending this class and overriding the AmPlugin.getPluginVersion()
may declare themselves as being of
version "0.0.0" (PluginTools.DEVELOPMENT_VERSION
) The framework will recognise this as meaning the plugin is
still in development. This can be utilised to ensure that the SMS is installed fresh after updating a node .jar in
the /WEB-INF/lib/ directory to carry over updates to the node's config. Simply shutdown AM, copy over the new .jar
and startup AM.
This process will break any instance of the node (and tree containing that node) which already exists as part of a tree. Therefore, nodes whose plugins extend this class using version "0.0.0" should be tested in development trees which should be destroyed and recreated after every restart.
Once ready for release, and for subsequent upgrades, the AmPlugin.getPluginVersion()
method should be overridden
again to reflect the appropriate release version.
Constructor and Description |
---|
AbstractNodeAmPlugin() |
Modifier and Type | Method and Description |
---|---|
protected Iterable<? extends Class<? extends Node>> |
getNodes()
Deprecated.
in favour of
AbstractNodeAmPlugin.getNodesByVersion() |
protected Map<String,Iterable<? extends Class<? extends Node>>> |
getNodesByVersion()
Retrieve the Map of list of node classes that the plugin is providing.
|
void |
onInstall()
Handle plugin installation.
|
void |
onStartup(StartupType startupType)
Handle plugin startup.
|
void |
setPluginTools(PluginTools pluginTools)
Guice setter for
pluginTools . |
void |
upgrade(String fromVersion)
This method will be called when the version returned by
AmPlugin.getPluginVersion() is higher than the version
already installed. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDependencies, getPluginVersion, onAmUpgrade, onShutdown, onStartup, onUnsatisfiedDependency
@Inject public void setPluginTools(PluginTools pluginTools)
pluginTools
.pluginTools
- The tools.public void onInstall() throws PluginException
AmPlugin
AmPlugin.onStartup()
method will be called after this one.onInstall
in interface AmPlugin
PluginException
public void onStartup(StartupType startupType) throws PluginException
AmPlugin
AmPlugin.onInstall()
,
AmPlugin.onAmUpgrade(String, String)
and AmPlugin.upgrade(String)
have been called (if relevant).onStartup
in interface AmPlugin
startupType
- The type of startup that is taking place.PluginException
public void upgrade(String fromVersion) throws PluginException
AmPlugin
AmPlugin.getPluginVersion()
is higher than the version
already installed. This method will be called before the AmPlugin.onStartup()
method.upgrade
in interface AmPlugin
fromVersion
- The old version of the plugin that has been installed.PluginException
protected Map<String,Iterable<? extends Class<? extends Node>>> getNodesByVersion()
return ImmutableMap.of( "1.0.0", asList(ChoiceCollectorNode.class), "2.0.0", asList(SetPersistentCookieNode.class));Tells that this node plugin's 1.0.0 version has introduced the ChoiceCollectorNode, the 2.0.0 version has introduced the SetPersistentCookieNode.
@Deprecated protected Iterable<? extends Class<? extends Node>> getNodes() throws UnsupportedOperationException
AbstractNodeAmPlugin.getNodesByVersion()
UnsupportedOperationException
- if called as this method is now deprecated.Copyright © 2010-2018, ForgeRock All Rights Reserved.