Class DbCachingRemoteDirectoryInstanceLoader
java.lang.Object
com.atlassian.crowd.directory.loader.AbstractDirectoryInstanceLoader
com.atlassian.crowd.directory.loader.DbCachingRemoteDirectoryInstanceLoader
- All Implemented Interfaces:
DirectoryInstanceLoader
,InternalHybridDirectoryInstanceLoader
- Direct Known Subclasses:
ConfigurableDbCachingRemoteDirectoryInstanceLoader
public class DbCachingRemoteDirectoryInstanceLoader
extends AbstractDirectoryInstanceLoader
implements InternalHybridDirectoryInstanceLoader
Loader that allows for proxying of a remote directory through a local cache/mirror. To enable proxying for a remote
directory you should not expose its loader directly to the Crowd service, but instead delegate through this loader.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AuditLogGroupMapper
protected final AuditLogUserMapper
protected final AuditService
-
Constructor Summary
ConstructorsConstructorDescriptionDbCachingRemoteDirectoryInstanceLoader
(DirectoryInstanceLoader remoteDirectoryInstanceLoader, InternalDirectoryInstanceLoader internalDirectoryInstanceLoader, DirectoryCacheFactory directoryCacheFactory, CacheRefresherFactory cacheRefresherFactory, AuditService auditService, AuditLogUserMapper auditLogUserMapper, AuditLogGroupMapper auditLogGroupMapper, com.atlassian.event.api.EventPublisher eventPublisher, DirectoryDao directoryDao) Spring-friendly constructor. -
Method Summary
Modifier and TypeMethodDescriptionboolean
getDirectory
(Directory directory) Loads theRemoteDirectory
implementation class for a specific (already saved)Directory
configuration.This method will NOT wire up the internal backed directory.
-
Field Details
-
auditService
-
auditLogUserMapper
-
auditLogGroupMapper
-
-
Constructor Details
-
DbCachingRemoteDirectoryInstanceLoader
public DbCachingRemoteDirectoryInstanceLoader(DirectoryInstanceLoader remoteDirectoryInstanceLoader, InternalDirectoryInstanceLoader internalDirectoryInstanceLoader, DirectoryCacheFactory directoryCacheFactory, CacheRefresherFactory cacheRefresherFactory, AuditService auditService, AuditLogUserMapper auditLogUserMapper, AuditLogGroupMapper auditLogGroupMapper, com.atlassian.event.api.EventPublisher eventPublisher, DirectoryDao directoryDao) Spring-friendly constructor.- Parameters:
remoteDirectoryInstanceLoader
- the remote directory instance loader.internalDirectoryInstanceLoader
- the internal directory in which to do the cachingcacheRefresherFactory
- cache refresher factory
-
-
Method Details
-
getDirectory
Description copied from interface:DirectoryInstanceLoader
Loads theRemoteDirectory
implementation class for a specific (already saved)Directory
configuration.Implementations of this method may choose to cache the RemoteDirectory, so this must only be called for Directories that have been successfully saved.
- Specified by:
getDirectory
in interfaceDirectoryInstanceLoader
- Overrides:
getDirectory
in classAbstractDirectoryInstanceLoader
- Parameters:
directory
- The directory to load theRemoteDirectory
implementation from.- Returns:
- The
RemoteDirectory
loaded implementation. - Throws:
DirectoryInstantiationException
- If theRemoteDirectory
implementation could not be loaded.
-
getRawDirectory
public RemoteDirectory getRawDirectory(Long id, String className, Map<String, String> attributes) throws DirectoryInstantiationExceptionThis method will NOT wire up the internal backed directory.So no local groups or custom attributes.
- Specified by:
getRawDirectory
in interfaceDirectoryInstanceLoader
- Parameters:
id
- Directory IDclassName
- class name of directory.attributes
- the configuration attributes to pass to the RemoteDirectory- Returns:
- directory without monitoring/caching and without backing internal directory.
- Throws:
DirectoryInstantiationException
- if a RemoteDirectory implementation can not be loaded.
-
canLoad
- Specified by:
canLoad
in interfaceDirectoryInstanceLoader
- Parameters:
className
- class name of directory.- Returns:
true
iff the directory can load the directory of the specified class.
-