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 AuditLogGroupMapperprotected final AuditLogUserMapperprotected 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 TypeMethodDescriptionbooleangetDirectory(Directory directory) Loads theRemoteDirectoryimplementation class for a specific (already saved)Directoryconfiguration.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:DirectoryInstanceLoaderLoads theRemoteDirectoryimplementation class for a specific (already saved)Directoryconfiguration.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:
getDirectoryin interfaceDirectoryInstanceLoader- Overrides:
getDirectoryin classAbstractDirectoryInstanceLoader- Parameters:
directory- The directory to load theRemoteDirectoryimplementation from.- Returns:
- The
RemoteDirectoryloaded implementation. - Throws:
DirectoryInstantiationException- If theRemoteDirectoryimplementation 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:
getRawDirectoryin 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:
canLoadin interfaceDirectoryInstanceLoader- Parameters:
className- class name of directory.- Returns:
trueiff the directory can load the directory of the specified class.
-