|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.evolveum.midpoint.provisioning.impl.ShadowCache
@Component public class ShadowCache
This class manages the "cache" of ResourceObjectShadows in the repository. In short, this class takes care of aligning the shadow objects in repository with the real state of the resource. The repository content is considered a "cache" when it comes to Shadow objects. That's why they are called "shadow" objects after all. When a new state (values) of the resource object is detected, the shadow in the repository should be updated. No matter if that was detected by synchronization, reconciliation or an ordinary get from resource. This class is supposed to do that. Therefore all operations that deal with "shadows" should pass through this class. It forms yet another layer of the provisioning subsystem. Current implementation assumes we are only storing primary identifier in the repository. That should be made configurable later. It also only support Account objects now.
Constructor Summary | |
---|---|
ShadowCache()
|
Method Summary | |
---|---|
java.lang.String |
addShadow(ResourceObjectShadowType shadow,
ScriptsType scripts,
ResourceType resource,
OperationResult parentResult)
|
ResourceObjectShadowType |
assembleShadow(ResourceObject resourceObject,
ResourceObjectShadowType repositoryShadow,
OperationResult parentResult)
Creates a shadow object from the supplied resource object. |
ResourceType |
completeResource(ResourceType resource,
Schema resourceSchema,
OperationResult result)
Make sure that the resource is complete. |
void |
deleteShadow(ObjectType objectType,
ScriptsType scripts,
ResourceType resource,
OperationResult parentResult)
|
java.util.List<Change> |
fetchChanges(ResourceType resourceType,
Property lastToken,
OperationResult parentResult)
|
Property |
fetchCurrentToken(ResourceType resourceType,
OperationResult parentResult)
|
RepositoryService |
getRepositoryService()
Get the value of repositoryService. |
ResourceObjectShadowType |
getShadow(java.lang.String oid,
ResourceObjectShadowType repositoryShadow,
OperationResult parentResult)
Gets the shadow with specified OID The shadow will be read from the repository and missing information will be fetched from the resource. |
void |
listShadows(ResourceType resource,
javax.xml.namespace.QName objectClass,
ShadowHandler handler,
boolean readFromRepository,
OperationResult parentResult)
List all shadow objects of specified objectClass. |
void |
modifyShadow(ObjectType objectType,
ResourceType resource,
ObjectModificationType objectChange,
ScriptsType scripts,
OperationResult parentResult)
|
void |
searchObjectsIterative(javax.xml.namespace.QName objectClass,
ResourceType resourceType,
ShadowHandler handler,
DiscoveryHandler discoveryHandler,
OperationResult parentResult)
|
void |
setRepositoryService(RepositoryService repositoryService)
Set the value of repositoryService Expected to be injected. |
void |
testConnection(ResourceType resourceType,
OperationResult parentResult)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ShadowCache()
Method Detail |
---|
public RepositoryService getRepositoryService()
public void setRepositoryService(RepositoryService repositoryService)
repositoryService
- new value of repositoryServicepublic ResourceObjectShadowType getShadow(java.lang.String oid, ResourceObjectShadowType repositoryShadow, OperationResult parentResult) throws ObjectNotFoundException, CommunicationException, SchemaException
oid
- OID of shadow to get.repositoryShadow
- shadow that was read from the repository
ObjectNotFoundException
- shadow was not found or object was not found on the resource
CommunicationException
- problem communicating with the resource
SchemaException
- problem processing schema or schema violationpublic ResourceObjectShadowType assembleShadow(ResourceObject resourceObject, ResourceObjectShadowType repositoryShadow, OperationResult parentResult) throws SchemaException
resourceObject
- repositoryShadow
-
SchemaException
public void listShadows(ResourceType resource, javax.xml.namespace.QName objectClass, ShadowHandler handler, boolean readFromRepository, OperationResult parentResult) throws CommunicationException, ObjectNotFoundException, SchemaException
resource
- objectClass
- handler
- parentResult
-
CommunicationException
ObjectNotFoundException
- the connector object was not found
SchemaException
public java.lang.String addShadow(ResourceObjectShadowType shadow, ScriptsType scripts, ResourceType resource, OperationResult parentResult) throws CommunicationException, GenericFrameworkException, ObjectAlreadyExistsException, SchemaException, ObjectNotFoundException
CommunicationException
GenericFrameworkException
ObjectAlreadyExistsException
SchemaException
ObjectNotFoundException
public void deleteShadow(ObjectType objectType, ScriptsType scripts, ResourceType resource, OperationResult parentResult) throws CommunicationException, GenericFrameworkException, ObjectNotFoundException, SchemaException
CommunicationException
GenericFrameworkException
ObjectNotFoundException
SchemaException
public void modifyShadow(ObjectType objectType, ResourceType resource, ObjectModificationType objectChange, ScriptsType scripts, OperationResult parentResult) throws CommunicationException, GenericFrameworkException, ObjectNotFoundException, SchemaException
CommunicationException
GenericFrameworkException
ObjectNotFoundException
SchemaException
public void testConnection(ResourceType resourceType, OperationResult parentResult)
public void searchObjectsIterative(javax.xml.namespace.QName objectClass, ResourceType resourceType, ShadowHandler handler, DiscoveryHandler discoveryHandler, OperationResult parentResult) throws ObjectNotFoundException, CommunicationException, SchemaException
ObjectNotFoundException
CommunicationException
SchemaException
public Property fetchCurrentToken(ResourceType resourceType, OperationResult parentResult) throws ObjectNotFoundException, CommunicationException, SchemaException
ObjectNotFoundException
CommunicationException
SchemaException
public java.util.List<Change> fetchChanges(ResourceType resourceType, Property lastToken, OperationResult parentResult) throws ObjectNotFoundException, CommunicationException, GenericFrameworkException, SchemaException
ObjectNotFoundException
CommunicationException
GenericFrameworkException
SchemaException
public ResourceType completeResource(ResourceType resource, Schema resourceSchema, OperationResult result) throws ObjectNotFoundException, SchemaException, CommunicationException
resource
- Resource to checkresourceSchema
- schema that was freshly pre-fetched (or null)result
-
ObjectNotFoundException
- connector instance was not found
SchemaException
CommunicationException
- cannot fetch resource schema
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |