public abstract class ClusterInfoAwareSpaceDataSource extends SpaceDataSource implements ClusterInfoAware
Modifier and Type | Field and Description |
---|---|
protected boolean |
augmentInitialLoadEntries |
protected ClusterInfo |
clusterInfo |
protected Map<String,String> |
initialLoadQueries |
protected String[] |
initialLoadQueryScanningBasePackages |
Constructor and Description |
---|
ClusterInfoAwareSpaceDataSource() |
Modifier and Type | Method and Description |
---|---|
protected String |
createInitialLoadQuery(SpaceTypeDescriptor typeDescriptor,
String templateQuery) |
Map<String,String> |
getInitialLoadQueries() |
DataIterator<SpaceTypeDescriptor> |
initialMetadataLoad()
This method is invoked on space initialization (before
SpaceDataSource.initialDataLoad() is invoked)
and is used for introducing data types kept in the data source to the space. |
protected void |
obtainInitialLoadQueries()
This method scans the classpath using Spring's
ClassPathScanningCandidateComponentProvider . |
void |
setClusterInfo(ClusterInfo clusterInfo)
Sets the cluster information.
|
void |
setInitialLoadQueryScanningBasePackages(String[] initialLoadQueryScanningBasePackages) |
getById, getDataIterator, getDataIteratorByIds, initialDataLoad, supportsInheritance
protected String[] initialLoadQueryScanningBasePackages
protected ClusterInfo clusterInfo
protected boolean augmentInitialLoadEntries
public void setInitialLoadQueryScanningBasePackages(String[] initialLoadQueryScanningBasePackages)
public DataIterator<SpaceTypeDescriptor> initialMetadataLoad()
SpaceDataSource
SpaceDataSource.initialDataLoad()
is invoked)
and is used for introducing data types kept in the data source to the space. Please note that derived types should be returned after their super types from the iterator.
It is
possible to create a SpaceTypeDescriptor
using SpaceTypeDescriptorBuilder
.
initialMetadataLoad
in class SpaceDataSource
DataIterator
instance which contains all SpaceTypeDescriptor
instances to be introduced to the Space upon its initialization - null is treated as an empty
iterator.public void setClusterInfo(ClusterInfo clusterInfo)
ClusterInfoAware
Note, the cluster information is obtained externally from the application context which
means that this feature need to be supported by specific containers (and is not supported by
plain Spring application context). This means that beans that implement ClusterInfoAware
should take into account the fact that the cluster info provided might be
null.
setClusterInfo
in interface ClusterInfoAware
clusterInfo
- The cluster information to be injectedprotected void obtainInitialLoadQueries()
ClassPathScanningCandidateComponentProvider
.
This scanner uses the logic in the #isClassMatch method to retrieve names of classes that
contain a method annotated with SpaceInitialLoadQuery
.
This collection of class names is then handled in such a way that each annotated method is
validated, examined and eventually invoked to obtain the specific type's initial load query.
protected String createInitialLoadQuery(SpaceTypeDescriptor typeDescriptor, String templateQuery)
Copyright © GigaSpaces.