Class FileResolver<C>
- java.lang.Object
-
- org.eclipse.jgit.transport.resolver.FileResolver<C>
-
- Type Parameters:
C
- type of connection
- All Implemented Interfaces:
RepositoryResolver<C>
public class FileResolver<C> extends Object implements RepositoryResolver<C>
Default resolver serving from the local filesystem.
-
-
Field Summary
-
Fields inherited from interface org.eclipse.jgit.transport.resolver.RepositoryResolver
NONE
-
-
Constructor Summary
Constructors Constructor Description FileResolver()
Initialize an empty file based resolver.FileResolver(File basePath, boolean exportAll)
Create a new resolver for the given path.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
exportDirectory(File dir)
Recursively export all Git repositories within a directory.void
exportRepository(String name, Repository db)
Add a single repository to the set that is exported by this daemon.boolean
isExportAll()
Whethergit-daemon-export-ok
is required to export a repositoryprotected boolean
isExportOk(C req, String repositoryName, Repository db)
Check if this repository can be served.Repository
open(C req, String name)
Locate and open a reference to aRepository
.void
setExportAll(boolean export)
Set whether or not to export all repositories.
-
-
-
Constructor Detail
-
FileResolver
public FileResolver()
Initialize an empty file based resolver.
-
FileResolver
public FileResolver(File basePath, boolean exportAll)
Create a new resolver for the given path.- Parameters:
basePath
- the base path all repositories are rooted under.exportAll
- if true, exports all repositories, ignoring the check for thegit-daemon-export-ok
files.
-
-
Method Detail
-
open
public Repository open(C req, String name) throws RepositoryNotFoundException, ServiceNotEnabledException
Locate and open a reference to aRepository
.The caller is responsible for closing the returned Repository.
- Specified by:
open
in interfaceRepositoryResolver<C>
- Parameters:
req
- the current request, may be used to inspect session state including cookies or user authentication.name
- name of the repository, as parsed out of the URL.- Returns:
- the opened repository instance, never null.
- Throws:
RepositoryNotFoundException
- the repository does not exist or the name is incorrectly formatted as a repository name.ServiceNotEnabledException
- the repository may exist, but HTTP access is not allowed on the target repository, for the current user.
-
isExportAll
public boolean isExportAll()
Whethergit-daemon-export-ok
is required to export a repository- Returns:
- false if
git-daemon-export-ok
is required to export a repository; true ifgit-daemon-export-ok
is ignored. - See Also:
setExportAll(boolean)
-
setExportAll
public void setExportAll(boolean export)
Set whether or not to export all repositories.If false (the default), repositories must have a
git-daemon-export-ok
file to be accessed through this daemon.If true, all repositories are available through the daemon, whether or not
git-daemon-export-ok
exists.- Parameters:
export
- a boolean.
-
exportRepository
public void exportRepository(String name, Repository db)
Add a single repository to the set that is exported by this daemon.The existence (or lack-thereof) of
git-daemon-export-ok
is ignored by this method. The repository is always published.- Parameters:
name
- name the repository will be published under.db
- the repository instance.
-
exportDirectory
public void exportDirectory(File dir)
Recursively export all Git repositories within a directory.- Parameters:
dir
- the directory to export. This directory must not itself be a git repository, but any directory below it which has a file namedgit-daemon-export-ok
will be published.
-
isExportOk
protected boolean isExportOk(C req, String repositoryName, Repository db) throws IOException
Check if this repository can be served.The default implementation of this method returns true only if either
isExportAll()
is true, or thegit-daemon-export-ok
file is present in the repository's directory.- Parameters:
req
- the current HTTP request.repositoryName
- name of the repository, as present in the URL.db
- the opened repository instance.- Returns:
- true if the repository is accessible; false if not.
- Throws:
IOException
- the repository could not be accessed, the caller will claim the repository does not exist.
-
-