Class TestProtocol<C>
- java.lang.Object
-
- org.eclipse.jgit.transport.TransportProtocol
-
- org.eclipse.jgit.transport.TestProtocol<C>
-
- Type Parameters:
C
- the connection type
public class TestProtocol<C> extends TransportProtocol
Protocol for transport between manually-specified repositories in tests.Remote repositories are registered using
register(Object, Repository)
, after which they can be accessed using the returned URI. As this class provides both the client side (the protocol) and the server side, the caller is responsible for setting up and passing the connection context, whatever form that may take.Unlike the other built-in protocols, which are automatically-registered singletons, callers are expected to register/unregister specific protocol instances on demand with
Transport.register(TransportProtocol)
.- Since:
- 4.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jgit.transport.TransportProtocol
TransportProtocol.URIishField
-
-
Constructor Summary
Constructors Constructor Description TestProtocol(UploadPackFactory<C> uploadPackFactory, ReceivePackFactory<C> receivePackFactory)
Constructor for TestProtocol.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getName()
Get text name of the protocol suitable for display to a user.Set<TransportProtocol.URIishField>
getOptionalFields()
Get immutable set of URIishFields that may be filled in.Set<TransportProtocol.URIishField>
getRequiredFields()
Get immutable set of URIishFields that must be filled in.Set<String>
getSchemes()
Get immutable set of schemes supported by this protocol.Transport
open(URIish uri, Repository local, String remoteName)
Open a Transport instance to the other repository.URIish
register(C req, Repository remote)
Register a repository connection over the internal test protocol.-
Methods inherited from class org.eclipse.jgit.transport.TransportProtocol
canHandle, canHandle, getDefaultPort, open
-
-
-
-
Constructor Detail
-
TestProtocol
public TestProtocol(UploadPackFactory<C> uploadPackFactory, ReceivePackFactory<C> receivePackFactory)
Constructor for TestProtocol.- Parameters:
uploadPackFactory
- factory for creatingUploadPack
used by all connections from this protocol instance.receivePackFactory
- factory for creatingReceivePack
used by all connections from this protocol instance.
-
-
Method Detail
-
getName
public String getName()
Get text name of the protocol suitable for display to a user.- Specified by:
getName
in classTransportProtocol
- Returns:
- text name of the protocol suitable for display to a user.
-
getSchemes
public Set<String> getSchemes()
Get immutable set of schemes supported by this protocol.- Overrides:
getSchemes
in classTransportProtocol
- Returns:
- immutable set of schemes supported by this protocol.
-
open
public Transport open(URIish uri, Repository local, String remoteName) throws NotSupportedException, TransportException
Open a Transport instance to the other repository.Implementations should avoid making remote connections until an operation on the returned Transport is invoked, however they may fail fast here if they know a connection is impossible, such as when using the local filesystem and the target path does not exist.
Implementations may access implementation-specific configuration options within
local.getConfig()
using the remote block named by theremoteName
, if the name is non-null.- Specified by:
open
in classTransportProtocol
- Parameters:
uri
- address of the Git repository.local
- the local repository that will communicate with the other Git repository.remoteName
- name of the remote, if the remote as configured inlocal
; otherwise null.- Returns:
- the transport.
- Throws:
NotSupportedException
- this protocol does not support the URI.TransportException
- the transport cannot open this URI.
-
getRequiredFields
public Set<TransportProtocol.URIishField> getRequiredFields()
Get immutable set of URIishFields that must be filled in.- Overrides:
getRequiredFields
in classTransportProtocol
- Returns:
- immutable set of URIishFields that must be filled in.
-
getOptionalFields
public Set<TransportProtocol.URIishField> getOptionalFields()
Get immutable set of URIishFields that may be filled in.- Overrides:
getOptionalFields
in classTransportProtocol
- Returns:
- immutable set of URIishFields that may be filled in.
-
register
public URIish register(C req, Repository remote)
Register a repository connection over the internal test protocol.- Parameters:
req
- connection context. This instance is reused for all connections made using this protocol; if it is stateful and usable only for one connection, the same repository should be registered multiple times.remote
- remote repository to connect to.- Returns:
- a URI that can be used to connect to this repository for both fetch and push.
-
-