C
- the connection typepublic class TestProtocol<C> extends TransportProtocol
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)
.
TransportProtocol.URIishField
Constructor and Description |
---|
TestProtocol(UploadPackFactory<C> uploadPackFactory,
ReceivePackFactory<C> receivePackFactory) |
Modifier and Type | Method and Description |
---|---|
String |
getName() |
Set<TransportProtocol.URIishField> |
getOptionalFields() |
Set<TransportProtocol.URIishField> |
getRequiredFields() |
Set<String> |
getSchemes() |
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.
|
canHandle, canHandle, getDefaultPort, open
public TestProtocol(UploadPackFactory<C> uploadPackFactory, ReceivePackFactory<C> receivePackFactory)
uploadPackFactory
- factory for creating UploadPack
used by all connections
from this protocol instance.receivePackFactory
- factory for creating ReceivePack
used by all connections
from this protocol instance.public String getName()
getName
in class TransportProtocol
public Set<String> getSchemes()
getSchemes
in class TransportProtocol
public Transport open(URIish uri, Repository local, String remoteName) throws NotSupportedException, TransportException
TransportProtocol
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 the
remoteName
, if the name is non-null.
open
in class TransportProtocol
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 in
local
; otherwise null.NotSupportedException
- this protocol does not support the URI.TransportException
- the transport cannot open this URI.public Set<TransportProtocol.URIishField> getRequiredFields()
getRequiredFields
in class TransportProtocol
public Set<TransportProtocol.URIishField> getOptionalFields()
getOptionalFields
in class TransportProtocol
public URIish register(C req, Repository remote)
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.Copyright © 2018 Eclipse JGit Project. All rights reserved.