]> source.dussan.org Git - archiva.git/blob
51d7a98da97f206ab795ad169333853c4015e496
[archiva.git] /
1 package org.apache.archiva.repository.base;
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
23 import org.apache.archiva.repository.EditableRemoteRepository;
24 import org.apache.archiva.repository.RemoteRepositoryContent;
25 import org.apache.archiva.repository.RepositoryCredentials;
26 import org.apache.archiva.repository.RepositoryType;
27 import org.apache.archiva.repository.storage.RepositoryStorage;
28
29 import java.net.URI;
30 import java.time.Duration;
31 import java.util.Collections;
32 import java.util.HashMap;
33 import java.util.Locale;
34 import java.util.Map;
35
36 /**
37  * Abstract implementation of a remote repository. Abstract classes must implement the
38  * features and capabilities by themselves.
39  */
40 public abstract class AbstractRemoteRepository extends AbstractRepository implements EditableRemoteRepository
41 {
42
43     private RepositoryCredentials credentials;
44     private String checkPath;
45     private Map<String,String> extraParameters = new HashMap<>(  );
46     private Map<String,String> uExtraParameters = Collections.unmodifiableMap( extraParameters );
47     private Map<String,String> extraHeaders = new HashMap<>(  );
48     private Map<String,String> uExtraHeaders = Collections.unmodifiableMap( extraHeaders );
49     private Duration timeout = Duration.ofSeconds( 60 );
50     private String proxyId;
51     private RemoteRepositoryContent content;
52
53     public AbstractRemoteRepository( RepositoryType type, String id, String name , RepositoryStorage storage)
54     {
55         super( type, id, name, storage );
56     }
57
58     public AbstractRemoteRepository( Locale primaryLocale, RepositoryType type, String id, String name, RepositoryStorage storage )
59     {
60         super( primaryLocale, type, id, name, storage );
61     }
62
63     @Override
64     public void setCredentials( RepositoryCredentials credentials )
65     {
66         this.credentials = credentials;
67     }
68
69     @Override
70     public void setCheckPath( String path )
71     {
72         this.checkPath = path;
73     }
74
75     @Override
76     public void setExtraParameters( Map<String, String> params )
77     {
78         this.extraParameters.clear();
79         this.extraParameters.putAll(params);
80     }
81
82     @Override
83     public void addExtraParameter( String key, String value )
84     {
85         this.extraParameters.put(key, value);
86     }
87
88     @Override
89     public void setExtraHeaders( Map<String, String> headers )
90     {
91         this.extraHeaders.clear();
92         this.extraHeaders.putAll(headers);
93     }
94
95     @Override
96     public void addExtraHeader( String header, String value )
97     {
98         this.extraHeaders.put(header, value);
99     }
100
101     @Override
102     public void setTimeout( Duration duration )
103     {
104         this.timeout = duration;
105     }
106
107     @Override
108     public RemoteRepositoryContent getContent( )
109     {
110         return content;
111     }
112
113     @Override
114     public void setContent(RemoteRepositoryContent content) {
115         this.content = content;
116     }
117
118     @Override
119     public RepositoryCredentials getLoginCredentials( )
120     {
121         return credentials;
122     }
123
124     @Override
125     public String getCheckPath( )
126     {
127         return checkPath;
128     }
129
130     @Override
131     public Map<String, String> getExtraParameters( )
132     {
133         return uExtraParameters;
134     }
135
136     @Override
137     public Map<String, String> getExtraHeaders( )
138     {
139         return uExtraHeaders;
140     }
141
142     @Override
143     public Duration getTimeout( )
144     {
145         return timeout;
146     }
147
148     @Override
149     public String toString() {
150         StringBuilder str = new StringBuilder();
151         return str.append("checkPath=").append(checkPath)
152                 .append(",creds:").append(credentials).toString();
153     }
154
155     @Override
156     public void setLocation(URI location) {
157         // Location of remote repositories is not for the local filestore
158         super.location = location;
159     }
160 }