Class AbstractNodeAmPlugin
- java.lang.Object
-
- org.forgerock.openam.auth.node.api.AbstractNodeAmPlugin
-
- All Implemented Interfaces:
AmPlugin
- Direct Known Subclasses:
IotPlugin
@SupportedAll 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.
-
-
Field Summary
Fields Modifier and Type Field Description protected PluginTools
pluginTools
An instance of thePluginTools
for use when setting up the plugin.
-
Constructor Summary
Constructors Constructor Description AbstractNodeAmPlugin()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected Iterable<? extends Class<? extends Node>>
getNodes()
Deprecated.in favour ofgetNodesByVersion()
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(org.forgerock.openam.plugins.StartupType startupType)
Handle plugin startup.void
setPluginTools(PluginTools pluginTools)
Guice setter forpluginTools
.void
upgrade(String fromVersion)
This method will be called when the version returned byAmPlugin.getPluginVersion()
is higher than the version already installed.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.forgerock.openam.plugins.AmPlugin
getDependencies, getPluginVersion, getServiceSchemaXML, onAmUpgrade, onShutdown, onStartup, onUnsatisfiedDependency
-
-
-
-
Field Detail
-
pluginTools
protected PluginTools pluginTools
An instance of thePluginTools
for use when setting up the plugin.
-
-
Method Detail
-
setPluginTools
@Inject public void setPluginTools(PluginTools pluginTools)
Guice setter forpluginTools
.- Parameters:
pluginTools
- The tools.
-
onInstall
public void onInstall() throws PluginException
Description copied from interface:AmPlugin
Handle plugin installation. This method will only be called once, on first AM startup once the plugin is included in the classpath. TheAmPlugin.onStartup()
method will be called after this one.- Specified by:
onInstall
in interfaceAmPlugin
- Throws:
PluginException
-
onStartup
public void onStartup(org.forgerock.openam.plugins.StartupType startupType) throws PluginException
Description copied from interface:AmPlugin
Handle plugin startup. This method will be called every time AM starts, afterAmPlugin.onInstall()
,AmPlugin.onAmUpgrade(String, String)
andAmPlugin.upgrade(String)
have been called (if relevant).- Specified by:
onStartup
in interfaceAmPlugin
- Parameters:
startupType
- The type of startup that is taking place.- Throws:
PluginException
-
upgrade
public void upgrade(String fromVersion) throws PluginException
Description copied from interface:AmPlugin
This method will be called when the version returned byAmPlugin.getPluginVersion()
is higher than the version already installed. This method will be called before theAmPlugin.onStartup()
method.- Specified by:
upgrade
in interfaceAmPlugin
- Parameters:
fromVersion
- The old version of the plugin that has been installed.- Throws:
PluginException
-
getNodesByVersion
protected Map<String,Iterable<? extends Class<? extends Node>>> getNodesByVersion()
Retrieve the Map of list of node classes that the plugin is providing. The mappings returned describe which nodes have been introduced in which version of this plugin. For example: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.- Returns:
- The list of node classes.
-
getNodes
@Deprecated protected Iterable<? extends Class<? extends Node>> getNodes() throws UnsupportedOperationException
Deprecated.in favour ofgetNodesByVersion()
Specify the list of node classes that the plugin is providing. These will then be installed and registered at the appropriate times in plugin lifecycle.- Returns:
- The list of node classes.
- Throws:
UnsupportedOperationException
- if called as this method is now deprecated.
-
-