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 StringgetName()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.Transportopen(URIish uri, Repository local, String remoteName)Open a Transport instance to the other repository.URIishregister(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 creatingUploadPackused by all connections from this protocol instance.receivePackFactory- factory for creatingReceivePackused 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:
getNamein 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:
getSchemesin 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:
openin 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:
getRequiredFieldsin 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:
getOptionalFieldsin 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.
-
-