GridGain™ 2.1.0
Java API Specification

org.gridgain.grid.spi
Interface GridSpi

All Known Subinterfaces:
GridCheckpointSpi, GridCollisionSpi, GridCommunicationSpi, GridDeploymentSpi, GridDiscoverySpi, GridEventStorageSpi, GridFailoverSpi, GridLoadBalancingSpi, GridLocalMetricsSpi, GridTopologySpi, GridTracingSpi
All Known Implementing Classes:
GridAdaptiveLoadBalancingSpi, GridAffinityLoadBalancingSpi, GridAlwaysFailoverSpi, GridAttributesTopologySpi, GridBasicTopologySpi, GridCoherenceCheckpointSpi, GridCoherenceCommunicationSpi, GridCoherenceDiscoverySpi, GridCoherenceLoadBalancingSpi, GridDatabaseCheckpointSpi, GridFifoQueueCollisionSpi, GridGigaSpacesCheckpointSpi, GridJbossDiscoverySpi, GridJdkLocalMetricsSpi, GridJgroupsCommunicationSpi, GridJgroupsDiscoverySpi, GridJmsCommunicationSpi, GridJmsDiscoverySpi, GridJobStealingCollisionSpi, GridJobStealingFailoverSpi, GridJxinsightTracingSpi, GridLocalDeploymentSpi, GridMailCommunicationSpi, GridMailDiscoverySpi, GridMemoryEventStorageSpi, GridMuleCommunicationSpi, GridMuleCommunicationSpi, GridMuleDiscoverySpi, GridMuleDiscoverySpi, GridMulticastDiscoverySpi, GridNeverFailoverSpi, GridNodeFilterTopologySpi, GridPriorityQueueCollisionSpi, GridRoundRobinLoadBalancingSpi, GridSharedFsCheckpointSpi, GridSpiAdapter, GridTcpCommunicationSpi, GridUriDeploymentSpi, GridWeightedRandomLoadBalancingSpi

@Apache20LicenseCompatible
public interface GridSpi

This interface defines life-cycle of SPI implementation. Every SPI implementation should implement this interface. Kernal will not load SPI that doesn't implement this interface.

Grid SPI's can be injected using IoC (dependency injection) with grid resources. Both, field and method based injection are supported. The following grid resources can be injected:

Refer to corresponding resource documentation for more information.



See Also:

  Documentation
  Email Support
  Online Forums
  Issue Tracking

Author:   2005-2008 Copyright © GridGain Systems. All Rights Reserved. ver. 2.1.0

 

Method Summary
 String getName()
          Gets SPI name.
 Map<String,Serializable> getNodeAttributes()
          This method is called before SPI starts (before method GridSpi.spiStart(String) is called).
 void onContextDestroyed()
          Callback invoked prior to stopping grid before SPI context is destroyed.
 void onContextInitialized(GridSpiContext spiCtx)
          Callback invoked when SPI context is initialized.
 void spiStart(String gridName)
          This method is called to start SPI.
 void spiStop()
          This method is called to stop SPI.
 

Method Detail

getName

String getName()
Gets SPI name.

Returns:
SPI name.

getNodeAttributes

Map<String,Serializable> getNodeAttributes()
                                           throws GridSpiException
This method is called before SPI starts (before method GridSpi.spiStart(String) is called). It allows SPI implementation to add attributes to a local node. Kernel collects these attributes from all SPI implementations loaded up and then passes it to discovery SPI so that they can be exchanged with other nodes.

Throws:
GridSpiException - Throws in case of any error.
Returns:
Map of local node attributes this SPI wants to add.

spiStart

void spiStart(@Nullable
              String gridName)
              throws GridSpiException
This method is called to start SPI. After this method returns successfully kernel assumes that SPI is fully operational.

Throws:
GridSpiException - Throws in case of any error during SPI start.
Parameters:
gridName - Name of grid instance this SPI is being started for (null for default grid).

onContextInitialized

void onContextInitialized(GridSpiContext spiCtx)
                          throws GridSpiException
Callback invoked when SPI context is initialized. SPI implementation may store SPI context for future access.

This method is invoked after GridSpi.spiStart(String) method is completed, so SPI should be fully functional at this point. Use this method for post-start initialization, such as subscribing a discovery listener, sending a message to remote node, etc...

Throws:
GridSpiException - If context initialization failed (grid will be stopped).
Parameters:
spiCtx - Spi context.

onContextDestroyed

void onContextDestroyed()
Callback invoked prior to stopping grid before SPI context is destroyed. Once this method is complete, grid will begin shutdown sequence. Use this callback for de-initialization logic that may involve SPI context. Note that invoking SPI context after this callback is complete is considered illegal and may produce unknown results.

If GridSpiAdapter is used for SPI implementation, then it will replace actual context with dummy no-op context which is usually good-enough since grid is about to shut down.


spiStop

void spiStop()
             throws GridSpiException
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. 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.

Throws:
GridSpiException - Thrown in case of any error during SPI stop.

GridGain™ 2.1.0
Java API Specification

GridGain™ - Grid Computing Made Simple, ver. 2.1.0.19122008
2005-2008 Copyright © GridGain Systems. All Rights Reserved.