Class TransportHttp
- java.lang.Object
-
- org.eclipse.jgit.transport.Transport
-
- org.eclipse.jgit.transport.HttpTransport
-
- org.eclipse.jgit.transport.TransportHttp
-
- All Implemented Interfaces:
PackTransport
,WalkTransport
public class TransportHttp extends HttpTransport implements WalkTransport, PackTransport
Transport over HTTP and FTP protocols.If the transport is using HTTP and the remote HTTP service is Git-aware (speaks the "smart-http protocol") this client will automatically take advantage of the additional Git-specific HTTP extensions. If the remote service does not support these extensions, the client will degrade to direct file fetching.
If the remote (server side) repository does not have the specialized Git support, object files are retrieved directly through standard HTTP GET (or binary FTP GET) requests. This make it easy to serve a Git repository through a standard web host provider that does not offer specific support for Git.
- See Also:
WalkFetchConnection
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jgit.transport.Transport
Transport.Operation
-
-
Field Summary
-
Fields inherited from class org.eclipse.jgit.transport.HttpTransport
connectionFactory
-
Fields inherited from class org.eclipse.jgit.transport.Transport
DEFAULT_FETCH_THIN, DEFAULT_PUSH_THIN, local, REFSPEC_PUSH_ALL, REFSPEC_TAGS, uri
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close any resources used by this transport.protected HttpConnection
httpOpen(String method, URL u)
Open an HTTP connection.FetchConnection
openFetch()
Begins a new connection for fetching from the remote repository.PushConnection
openPush()
Begins a new connection for pushing into the remote repository.void
setAdditionalHeaders(Map<String,String> headers)
Set additional headers on the HTTP connectionvoid
setUseSmartHttp(boolean on)
Toggle whether or not smart HTTP transport should be used.-
Methods inherited from class org.eclipse.jgit.transport.HttpTransport
getConnectionFactory, setConnectionFactory
-
Methods inherited from class org.eclipse.jgit.transport.Transport
applyConfig, fetch, findRemoteRefUpdatesFor, findRemoteRefUpdatesFor, getCredentialsProvider, getObjectChecker, getOptionReceivePack, getOptionUploadPack, getPackConfig, getTagOpt, getTimeout, getTransportProtocols, getURI, isCheckFetchedObjects, isDryRun, isFetchThin, isPushThin, isRemoveDeletedRefs, open, open, open, open, open, open, open, openAll, openAll, openAll, openAll, push, push, register, setCheckFetchedObjects, setCredentialsProvider, setDryRun, setFetchThin, setObjectChecker, setOptionReceivePack, setOptionUploadPack, setPackConfig, setPushThin, setRemoveDeletedRefs, setTagOpt, setTimeout, unregister
-
-
-
-
Method Detail
-
setUseSmartHttp
public void setUseSmartHttp(boolean on)
Toggle whether or not smart HTTP transport should be used.This flag exists primarily to support backwards compatibility testing within a testing framework, there is no need to modify it in most applications.
- Parameters:
on
- iftrue
(default), smart HTTP is enabled.
-
openFetch
public FetchConnection openFetch() throws TransportException, NotSupportedException
Description copied from class:Transport
Begins a new connection for fetching from the remote repository.If the transport has no local repository, the fetch connection can only be used for reading remote refs.
- Specified by:
openFetch
in classTransport
- Returns:
- a fresh connection to fetch from the remote repository.
- Throws:
TransportException
- the remote connection could not be established.NotSupportedException
- the implementation does not support fetching.
-
openPush
public PushConnection openPush() throws NotSupportedException, TransportException
Description copied from class:Transport
Begins a new connection for pushing into the remote repository.- Specified by:
openPush
in classTransport
- Returns:
- a fresh connection to push into the remote repository.
- Throws:
NotSupportedException
- the implementation does not support pushing.TransportException
- the remote connection could not be established
-
close
public void close()
Description copied from class:Transport
Close any resources used by this transport.If the remote repository is contacted by a network socket this method must close that network socket, disconnecting the two peers. If the remote repository is actually local (same system) this method must close any open file handles used to read the "remote" repository.
-
setAdditionalHeaders
public void setAdditionalHeaders(Map<String,String> headers)
Set additional headers on the HTTP connection- Parameters:
headers
- a map of name:values that are to be set as headers on the HTTP connection- Since:
- 3.4
-
httpOpen
protected HttpConnection httpOpen(String method, URL u) throws IOException
Open an HTTP connection.- Parameters:
method
-u
-- Returns:
- the connection
- Throws:
IOException
- Since:
- 3.3
-
-