public abstract class TransportProtocol extends Object
Implementations of this class are typically immutable singletons held by static class members, for example:
 package com.example.my_transport;
 class MyTransport extends Transport {
        public static final TransportProtocol PROTO = new TransportProtocol() {
                public String getName() {
                        return "My Protocol";
                }
        };
 }
 
 
 Applications may register additional protocols for use by JGit by calling
 Transport.register(TransportProtocol).
 Because that API holds onto the protocol object by a WeakReference,
 applications must ensure their own ClassLoader retains the TransportProtocol
 for the life of the application. Using a static singleton pattern as above
 will ensure the protocol is valid so long as the ClassLoader that defines it
 remains valid.
 
 Applications may automatically register additional protocols by filling in
 the names of their TransportProtocol defining classes using the services file
 META-INF/services/org.eclipse.jgit.transport.Transport. For each
 class name listed in the services file, any static fields of type
 TransportProtocol will be automatically registered. For the above
 example the string com.example.my_transport.MyTransport should be
 listed in the file, as that is the name of the class that defines the static
 PROTO singleton.
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
TransportProtocol.URIishField
Fields within a  
URIish that a transport uses. | 
| Constructor and Description | 
|---|
TransportProtocol()  | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
canHandle(URIish uri)
Determine if this protocol can handle a particular URI. 
 | 
boolean | 
canHandle(URIish uri,
         Repository local,
         String remoteName)
Determine if this protocol can handle a particular URI. 
 | 
int | 
getDefaultPort()
Get the default port if the protocol supports a port, else -1. 
 | 
abstract 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)
Open a new transport instance to the remote repository. 
 | 
abstract Transport | 
open(URIish uri,
    Repository local,
    String remoteName)
Open a Transport instance to the other repository. 
 | 
public abstract String getName()
public Set<String> getSchemes()
public Set<TransportProtocol.URIishField> getRequiredFields()
public Set<TransportProtocol.URIishField> getOptionalFields()
public int getDefaultPort()
public boolean canHandle(URIish uri)
 Implementations should try to avoid looking at the local filesystem, but
 may look at implementation specific configuration options in the remote
 block of local.getConfig() using remoteName if the name
 is non-null.
 
 The default implementation of this method matches the scheme against
 getSchemes(), required fields against
 getRequiredFields(), and optional fields against
 getOptionalFields(), returning true only if all of the fields
 match the specification.
uri - address of the Git repository; never null.public boolean canHandle(URIish uri, Repository local, String remoteName)
 Implementations should try to avoid looking at the local filesystem, but
 may look at implementation specific configuration options in the remote
 block of local.getConfig() using remoteName if the name
 is non-null.
 
 The default implementation of this method matches the scheme against
 getSchemes(), required fields against
 getRequiredFields(), and optional fields against
 getOptionalFields(), returning true only if all of the fields
 match the specification.
uri - address of the Git repository; never null.local - the local repository that will communicate with the other Git
            repository. May be null if the caller is only asking about a
            specific URI and does not have a local Repository.remoteName - name of the remote, if the remote as configured in
            local; otherwise null.public abstract Transport open(URIish uri, Repository local, String remoteName) throws NotSupportedException, TransportException
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.
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 Transport open(URIish uri) throws NotSupportedException, TransportException
uri - a URIish object.NotSupportedExceptionTransportExceptionCopyright © 2021 Eclipse JGit Project. All rights reserved.