View Javadoc
1   /*
2    * Copyright (C) 2009, Constantine Plotnikov <constantine.plotnikov@gmail.com>
3    * Copyright (C) 2009, JetBrains s.r.o.
4    * Copyright (C) 2009, Shawn O. Pearce <spearce@spearce.org> and others
5    *
6    * This program and the accompanying materials are made available under the
7    * terms of the Eclipse Distribution License v. 1.0 which is available at
8    * https://www.eclipse.org/org/documents/edl-v10.php.
9    *
10   * SPDX-License-Identifier: BSD-3-Clause
11   */
12  
13  package org.eclipse.jgit.transport;
14  
15  import org.eclipse.jgit.lib.Repository;
16  import org.eclipse.jgit.transport.http.HttpConnectionFactory;
17  import org.eclipse.jgit.transport.http.JDKHttpConnectionFactory;
18  
19  /**
20   * The base class for transports that use HTTP as underlying protocol. This class
21   * allows customizing HTTP connection settings.
22   */
23  public abstract class HttpTransport extends Transport {
24  	/**
25  	 * factory for creating HTTP connections
26  	 *
27  	 * @since 3.3
28  	 */
29  	protected static HttpConnectionFactory connectionFactory = new JDKHttpConnectionFactory();
30  
31  	/**
32  	 * Get the {@link org.eclipse.jgit.transport.http.HttpConnectionFactory}
33  	 * used to create new connections
34  	 *
35  	 * @return the {@link org.eclipse.jgit.transport.http.HttpConnectionFactory}
36  	 *         used to create new connections
37  	 * @since 3.3
38  	 */
39  	public static HttpConnectionFactory getConnectionFactory() {
40  		return connectionFactory;
41  	}
42  
43  	/**
44  	 * Set the {@link org.eclipse.jgit.transport.http.HttpConnectionFactory} to
45  	 * be used to create new connections
46  	 *
47  	 * @param cf
48  	 *            connection factory
49  	 * @since 3.3
50  	 */
51  	public static void setConnectionFactory(HttpConnectionFactory cf) {
52  		connectionFactory = cf;
53  	}
54  
55  	/**
56  	 * Create a new transport instance.
57  	 *
58  	 * @param local
59  	 *            the repository this instance will fetch into, or push out of.
60  	 *            This must be the repository passed to
61  	 *            {@link #open(Repository, URIish)}.
62  	 * @param uri
63  	 *            the URI used to access the remote repository. This must be the
64  	 *            URI passed to {@link #open(Repository, URIish)}.
65  	 */
66  	protected HttpTransport(Repository local, URIish uri) {
67  		super(local, uri);
68  	}
69  
70  	/**
71  	 * Create a minimal HTTP transport instance not tied to a single repository.
72  	 *
73  	 * @param uri a {@link org.eclipse.jgit.transport.URIish} object.
74  	 */
75  	protected HttpTransport(URIish uri) {
76  		super(uri);
77  	}
78  }