View Javadoc
1   package org.eclipse.aether.transport.http;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import javax.inject.Named;
23  
24  import java.util.Objects;
25  
26  import org.eclipse.aether.RepositorySystemSession;
27  import org.eclipse.aether.repository.RemoteRepository;
28  import org.eclipse.aether.spi.connector.transport.Transporter;
29  import org.eclipse.aether.spi.connector.transport.TransporterFactory;
30  import org.eclipse.aether.transfer.NoTransporterException;
31  
32  /**
33   * A transporter factory for repositories using the {@code http:} or {@code https:} protocol. The provided transporters
34   * support uploads to WebDAV servers and resumable downloads.
35   */
36  @Named( "http" )
37  public final class HttpTransporterFactory
38      implements TransporterFactory
39  {
40  
41      private float priority = 5.0f;
42  
43      /**
44       * Creates an (uninitialized) instance of this transporter factory. <em>Note:</em> In case of manual instantiation
45       * by clients, the new factory needs to be configured via its various mutators before first use or runtime errors
46       * will occur.
47       */
48      public HttpTransporterFactory()
49      {
50          // enables default constructor
51      }
52  
53      @Override
54      public float getPriority()
55      {
56          return priority;
57      }
58  
59      /**
60       * Sets the priority of this component.
61       *
62       * @param priority The priority.
63       * @return This component for chaining, never {@code null}.
64       */
65      public HttpTransporterFactory setPriority( float priority )
66      {
67          this.priority = priority;
68          return this;
69      }
70  
71      @Override
72      public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository )
73          throws NoTransporterException
74      {
75          Objects.requireNonNull( "session", "session cannot be null" );
76          Objects.requireNonNull( "repository", "repository cannot be null" );
77  
78          return new HttpTransporter( repository, session );
79      }
80  
81  }