Class LocalRepositoryManager
- java.lang.Object
-
- org.eclipse.rdf4j.repository.manager.RepositoryManager
-
- org.eclipse.rdf4j.repository.manager.LocalRepositoryManager
-
- All Implemented Interfaces:
HttpClientDependent,RepositoryResolver
- Direct Known Subclasses:
NotifyingLocalRepositoryManager
public class LocalRepositoryManager extends RepositoryManager
An implementation of theRepositoryManagerinterface that operates directly on the repository data files in the local file system.- Author:
- Arjohn Kampman
-
-
Field Summary
Fields Modifier and Type Field Description static StringREPOSITORIES_DIR-
Fields inherited from class org.eclipse.rdf4j.repository.manager.RepositoryManager
initializedRepositories, logger, NAMESPACE, PROXIED_ID
-
-
Constructor Summary
Constructors Constructor Description LocalRepositoryManager(File baseDir)Creates a new RepositoryManager that operates on the specfified base directory.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRepositoryConfig(RepositoryConfig config)Adds or updates the configuration of a repository to the manager.protected RepositorycreateRepository(String id)Creates and initializes the repository with the specified ID.List<RepositoryInfo>getAllRepositoryInfos()Retrieve meta information of all configured repositories.FilegetBaseDir()Gets the base dir against which to resolve relative paths.protected org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceResolvergetFederatedServiceResolver()org.apache.http.client.HttpClientgetHttpClient()URLgetLocation()Gets the base dir against which to resolve relative paths.RepositoryConfiggetRepositoryConfig(String id)FilegetRepositoryDir(String repositoryID)RepositoryInfogetRepositoryInfo(String id)Gets the repository that is known by the specified ID from this manager.protected SharedHttpClientSessionManagergetSesameClient()protected voidmigrateToNewConfigVocabulary(RepositoryConfig config)Migrate a repository configuration from the legacy vocabulary to the new vocabulary inCONFIG.booleanremoveRepository(String repositoryID)Removes the specified repository by deleting its configuration if such a configuration is present, and removing any persistent data associated with the repository.FileresolvePath(String path)Resolves the specified path against the manager's base directory.voidsetHttpClient(org.apache.http.client.HttpClient httpClient)Should be called beforeRepositoryManager.init().voidshutDown()Shuts down all initialized repositories.-
Methods inherited from class org.eclipse.rdf4j.repository.manager.RepositoryManager
getAllRepositories, getAllRepositoryInfos, getAllUserRepositoryInfos, getInitializedRepositories, getInitializedRepositoryIDs, getModelFactory, getNewRepositoryID, getRepository, getRepositoryIDs, hasRepositoryConfig, init, isInitialized, isSafeToRemove, refresh, setInitializedRepositories, setModelFactory, updateInitializedRepositories
-
-
-
-
Field Detail
-
REPOSITORIES_DIR
public static final String REPOSITORIES_DIR
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
LocalRepositoryManager
public LocalRepositoryManager(File baseDir)
Creates a new RepositoryManager that operates on the specfified base directory.- Parameters:
baseDir- The base directory where data for repositories can be stored, among other things.
-
-
Method Detail
-
getBaseDir
public File getBaseDir()
Gets the base dir against which to resolve relative paths.
-
getLocation
public URL getLocation() throws MalformedURLException
Gets the base dir against which to resolve relative paths.- Specified by:
getLocationin classRepositoryManager- Throws:
MalformedURLException- If the path cannot be parsed as a URL
-
getSesameClient
protected SharedHttpClientSessionManager getSesameClient()
- Returns:
- Returns the httpClient.
-
getHttpClient
public org.apache.http.client.HttpClient getHttpClient()
- Specified by:
getHttpClientin interfaceHttpClientDependent- Specified by:
getHttpClientin classRepositoryManager- Returns:
- Returns the httpClient passed to
Repositoryconstruction.
-
setHttpClient
public void setHttpClient(org.apache.http.client.HttpClient httpClient)
Description copied from class:RepositoryManagerShould be called beforeRepositoryManager.init().- Specified by:
setHttpClientin interfaceHttpClientDependent- Specified by:
setHttpClientin classRepositoryManager- Parameters:
httpClient- The httpClient to use for remote/service calls.
-
getFederatedServiceResolver
protected org.eclipse.rdf4j.query.algebra.evaluation.federation.FederatedServiceResolver getFederatedServiceResolver()
- Returns:
- Returns the serviceResolver.
-
shutDown
public void shutDown()
Description copied from class:RepositoryManagerShuts down all initialized repositories.- Overrides:
shutDownin classRepositoryManager- See Also:
RepositoryManager.refresh()
-
resolvePath
public File resolvePath(String path)
Resolves the specified path against the manager's base directory.- See Also:
getBaseDir()
-
createRepository
protected Repository createRepository(String id) throws RepositoryConfigException, RepositoryException
Description copied from class:RepositoryManagerCreates and initializes the repository with the specified ID.- Specified by:
createRepositoryin classRepositoryManager- Parameters:
id- A repository ID.- Returns:
- The created and initialized repository, or null if no such repository exists.
- Throws:
RepositoryConfigException- If no repository could be created due to invalid or incomplete configuration data.RepositoryException- If the repository could not be initialized.
-
getRepositoryConfig
public RepositoryConfig getRepositoryConfig(String id)
- Specified by:
getRepositoryConfigin classRepositoryManager
-
migrateToNewConfigVocabulary
protected void migrateToNewConfigVocabulary(RepositoryConfig config)
Migrate a repository configuration from the legacy vocabulary to the new vocabulary inCONFIG.Override this method to provide custom migration logic.
- Parameters:
config-
-
getRepositoryInfo
public RepositoryInfo getRepositoryInfo(String id)
Description copied from class:RepositoryManagerGets the repository that is known by the specified ID from this manager.- Overrides:
getRepositoryInfoin classRepositoryManager- Parameters:
id- A repository ID.- Returns:
- A Repository object, or null if no repository was known for the specified ID.
-
getAllRepositoryInfos
public List<RepositoryInfo> getAllRepositoryInfos() throws RepositoryException
Description copied from class:RepositoryManagerRetrieve meta information of all configured repositories.- Specified by:
getAllRepositoryInfosin classRepositoryManager- Returns:
- a collection of
RepositoryInfoobjects - Throws:
RepositoryException- if the repository meta information could not be retrieved.
-
addRepositoryConfig
public void addRepositoryConfig(RepositoryConfig config) throws RepositoryException, RepositoryConfigException
Description copied from class:RepositoryManagerAdds or updates the configuration of a repository to the manager. The manager may already contain a configuration for a repository with the same ID as specified by config, in which case all previous configuration data for that repository will be cleared before the new configuration is added.- Specified by:
addRepositoryConfigin classRepositoryManager- Parameters:
config- The repository configuration that should be added to or updated in the manager.- Throws:
RepositoryException- If the manager failed to update.RepositoryConfigException- If the manager doesn't know how to update a configuration due to inconsistent configuration data. For example, this happens when there are multiple existing configurations with the concerning ID.
-
removeRepository
public boolean removeRepository(String repositoryID) throws RepositoryException, RepositoryConfigException
Description copied from class:RepositoryManagerRemoves the specified repository by deleting its configuration if such a configuration is present, and removing any persistent data associated with the repository. Returns true if the specified repository configuration was actually present. NB this operation can not be undone!- Overrides:
removeRepositoryin classRepositoryManager- Parameters:
repositoryID- The ID of the repository that needs to be removed.- Throws:
RepositoryException- If the manager failed to update the configuration.RepositoryConfigException- If the manager doesn't know how to remove a repository due to inconsistent configuration data. For example, this can happen when there are multiple existing configurations with the concerning ID.
-
-