View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.api.plugin.testing.stubs;
20  
21  import java.nio.file.Path;
22  import java.time.Instant;
23  import java.util.Collection;
24  import java.util.HashMap;
25  import java.util.List;
26  import java.util.Map;
27  import java.util.Optional;
28  
29  import org.apache.maven.api.Artifact;
30  import org.apache.maven.api.ArtifactCoordinates;
31  import org.apache.maven.api.Dependency;
32  import org.apache.maven.api.DependencyCoordinates;
33  import org.apache.maven.api.DependencyScope;
34  import org.apache.maven.api.DownloadedArtifact;
35  import org.apache.maven.api.Language;
36  import org.apache.maven.api.Listener;
37  import org.apache.maven.api.LocalRepository;
38  import org.apache.maven.api.Node;
39  import org.apache.maven.api.Packaging;
40  import org.apache.maven.api.PathScope;
41  import org.apache.maven.api.PathType;
42  import org.apache.maven.api.ProducedArtifact;
43  import org.apache.maven.api.Project;
44  import org.apache.maven.api.ProjectScope;
45  import org.apache.maven.api.RemoteRepository;
46  import org.apache.maven.api.Service;
47  import org.apache.maven.api.Session;
48  import org.apache.maven.api.SessionData;
49  import org.apache.maven.api.Type;
50  import org.apache.maven.api.Version;
51  import org.apache.maven.api.VersionConstraint;
52  import org.apache.maven.api.VersionRange;
53  import org.apache.maven.api.annotations.Nonnull;
54  import org.apache.maven.api.annotations.Nullable;
55  import org.apache.maven.api.model.Repository;
56  import org.apache.maven.api.settings.Settings;
57  import org.apache.maven.api.toolchain.ToolchainModel;
58  
59  /**
60   */
61  public class SessionStub implements Session {
62  
63      private Map<String, String> userProperties;
64  
65      private Map<String, String> systemProperties;
66  
67      private final Settings settings;
68  
69      public SessionStub(Settings settings) {
70          this(null, null, settings);
71      }
72  
73      public SessionStub() {
74          this(null, null, null);
75      }
76  
77      public SessionStub(Map<String, String> userProperties) {
78          this(null, userProperties, null);
79      }
80  
81      public SessionStub(Map<String, String> systemProperties, Map<String, String> userProperties, Settings settings) {
82  
83          this.settings = settings;
84  
85          this.systemProperties = new HashMap<>();
86          if (systemProperties != null) {
87              this.systemProperties.putAll(systemProperties);
88          }
89          System.getProperties().forEach((k, v) -> this.systemProperties.put(k.toString(), v.toString()));
90  
91          this.userProperties = new HashMap<>();
92          if (userProperties != null) {
93              this.userProperties.putAll(userProperties);
94          }
95      }
96  
97      @Override
98      public Settings getSettings() {
99          return settings;
100     }
101 
102     @Override
103     public Map<String, String> getSystemProperties() {
104         return this.systemProperties;
105     }
106 
107     @Override
108     public Map<String, String> getUserProperties() {
109         return this.userProperties;
110     }
111 
112     @Nonnull
113     @Override
114     public Map<String, String> getEffectiveProperties(@Nullable Project project) {
115         HashMap<String, String> result = new HashMap<>(getSystemProperties());
116         if (project != null) {
117             result.putAll(project.getModel().getProperties());
118         }
119         result.putAll(getUserProperties());
120         return result;
121     }
122 
123     @Override
124     public LocalRepository getLocalRepository() {
125         return null;
126     }
127 
128     @Override
129     public Path getTopDirectory() {
130         return null;
131     }
132 
133     @Override
134     public Path getRootDirectory() {
135         return null;
136     }
137 
138     @Override
139     public List<RemoteRepository> getRemoteRepositories() {
140         return null;
141     }
142 
143     @Override
144     public SessionData getData() {
145         return null;
146     }
147 
148     @Override
149     public Version getMavenVersion() {
150         return null;
151     }
152 
153     @Override
154     public int getDegreeOfConcurrency() {
155         return 0;
156     }
157 
158     @Override
159     public Instant getStartTime() {
160         return null;
161     }
162 
163     @Override
164     public List<Project> getProjects() {
165         return null;
166     }
167 
168     @Override
169     public Map<String, Object> getPluginContext(Project project) {
170         return null;
171     }
172 
173     @Override
174     public <T extends Service> T getService(Class<T> clazz) {
175         return null;
176     }
177 
178     @Override
179     public Session withLocalRepository(LocalRepository localRepository) {
180         return null;
181     }
182 
183     @Override
184     public Session withRemoteRepositories(List<RemoteRepository> repositories) {
185         return null;
186     }
187 
188     @Override
189     public void registerListener(Listener listener) {}
190 
191     @Override
192     public void unregisterListener(Listener listener) {}
193 
194     @Override
195     public Collection<Listener> getListeners() {
196         return null;
197     }
198 
199     @Override
200     public LocalRepository createLocalRepository(Path path) {
201         return null;
202     }
203 
204     @Override
205     public RemoteRepository createRemoteRepository(String id, String url) {
206         return null;
207     }
208 
209     @Override
210     public RemoteRepository createRemoteRepository(Repository repository) {
211         return null;
212     }
213 
214     @Override
215     public Artifact createArtifact(String groupId, String artifactId, String version, String extension) {
216         return null;
217     }
218 
219     @Override
220     public Artifact createArtifact(
221             String groupId, String artifactId, String version, String classifier, String extension, String type) {
222         return null;
223     }
224 
225     @Override
226     public ProducedArtifact createProducedArtifact(
227             String groupId, String artifactId, String version, String extension) {
228         return null;
229     }
230 
231     @Override
232     public ProducedArtifact createProducedArtifact(
233             String groupId, String artifactId, String version, String classifier, String extension, String type) {
234         return null;
235     }
236 
237     @Override
238     public ArtifactCoordinates createArtifactCoordinates(
239             String groupId, String artifactId, String version, String extension) {
240         return null;
241     }
242 
243     @Override
244     public ArtifactCoordinates createArtifactCoordinates(String coordString) {
245         return null;
246     }
247 
248     @Override
249     public ArtifactCoordinates createArtifactCoordinates(
250             String groupId, String artifactId, String version, String classifier, String extension, String type) {
251         return null;
252     }
253 
254     @Override
255     public ArtifactCoordinates createArtifactCoordinates(Artifact artifact) {
256         return null;
257     }
258 
259     @Override
260     public DependencyCoordinates createDependencyCoordinates(ArtifactCoordinates artifactCoordinates) {
261         return null;
262     }
263 
264     @Override
265     public DependencyCoordinates createDependencyCoordinates(Dependency dependency) {
266         return null;
267     }
268 
269     @Override
270     public DownloadedArtifact resolveArtifact(Artifact artifact) {
271         return null;
272     }
273 
274     @Override
275     public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinate) {
276         return null;
277     }
278 
279     @Override
280     public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinates, List<RemoteRepository> repositories) {
281         return null;
282     }
283 
284     @Override
285     public DownloadedArtifact resolveArtifact(Artifact artifact, List<RemoteRepository> repositories) {
286         return null;
287     }
288 
289     @Override
290     public Collection<DownloadedArtifact> resolveArtifacts(ArtifactCoordinates... artifactCoordinates) {
291         return null;
292     }
293 
294     @Override
295     public Collection<DownloadedArtifact> resolveArtifacts(Collection<? extends ArtifactCoordinates> collection) {
296         return null;
297     }
298 
299     @Override
300     public Collection<DownloadedArtifact> resolveArtifacts(Artifact... artifacts) {
301         return null;
302     }
303 
304     @Override
305     public Collection<DownloadedArtifact> resolveArtifacts(
306             Collection<? extends ArtifactCoordinates> coordinates, List<RemoteRepository> repositories) {
307         return null;
308     }
309 
310     @Override
311     public List<Node> flattenDependencies(Node node, PathScope scope) {
312         return null;
313     }
314 
315     @Override
316     public List<Path> resolveDependencies(DependencyCoordinates dependencyCoordinates) {
317         return null;
318     }
319 
320     @Override
321     public List<Path> resolveDependencies(List<DependencyCoordinates> dependencyCoordinatess) {
322         return null;
323     }
324 
325     @Override
326     public List<Path> resolveDependencies(Project project, PathScope scope) {
327         return null;
328     }
329 
330     @Override
331     public Version resolveVersion(ArtifactCoordinates artifact) {
332         return null;
333     }
334 
335     @Override
336     public List<Version> resolveVersionRange(ArtifactCoordinates artifact) {
337         return null;
338     }
339 
340     @Override
341     public List<Version> resolveVersionRange(ArtifactCoordinates artifact, List<RemoteRepository> repositories) {
342         return null;
343     }
344 
345     @Override
346     public void installArtifacts(ProducedArtifact... artifacts) {}
347 
348     @Override
349     public void installArtifacts(Collection<ProducedArtifact> artifacts) {}
350 
351     @Override
352     public void deployArtifact(RemoteRepository repository, ProducedArtifact... artifacts) {}
353 
354     @Override
355     public void setArtifactPath(ProducedArtifact artifact, Path path) {}
356 
357     @Override
358     public Optional<Path> getArtifactPath(Artifact artifact) {
359         return Optional.empty();
360     }
361 
362     @Override
363     public boolean isVersionSnapshot(String version) {
364         return false;
365     }
366 
367     @Override
368     public Node collectDependencies(Artifact artifact, PathScope scope) {
369         return null;
370     }
371 
372     @Override
373     public Node collectDependencies(Project project, PathScope scope) {
374         return null;
375     }
376 
377     @Override
378     public Node collectDependencies(DependencyCoordinates dependencyCoordinates, PathScope scope) {
379         return null;
380     }
381 
382     @Override
383     public Path getPathForLocalArtifact(Artifact artifact) {
384         return null;
385     }
386 
387     @Override
388     public Path getPathForRemoteArtifact(RemoteRepository remote, Artifact artifact) {
389         return null;
390     }
391 
392     @Override
393     public Version parseVersion(String version) {
394         return null;
395     }
396 
397     @Override
398     public VersionRange parseVersionRange(String versionRange) {
399         return null;
400     }
401 
402     @Override
403     public VersionConstraint parseVersionConstraint(String s) {
404         return null;
405     }
406 
407     @Override
408     public Map<PathType, List<Path>> resolveDependencies(
409             DependencyCoordinates dependencyCoordinates, PathScope scope, Collection<PathType> desiredTypes) {
410         return Map.of();
411     }
412 
413     @Override
414     public Map<PathType, List<Path>> resolveDependencies(
415             Project project, PathScope scope, Collection<PathType> desiredTypes) {
416         return Map.of();
417     }
418 
419     @Override
420     public Type requireType(String id) {
421         return null;
422     }
423 
424     @Override
425     public Language requireLanguage(String id) {
426         return null;
427     }
428 
429     @Override
430     public Packaging requirePackaging(String id) {
431         return null;
432     }
433 
434     @Override
435     public ProjectScope requireProjectScope(String id) {
436         return null;
437     }
438 
439     @Override
440     public DependencyScope requireDependencyScope(String id) {
441         return null;
442     }
443 
444     @Override
445     public PathScope requirePathScope(String id) {
446         return null;
447     }
448 
449     @Override
450     public Optional<Version> resolveHighestVersion(ArtifactCoordinates artifact, List<RemoteRepository> repositories) {
451         return Optional.empty();
452     }
453 
454     @Override
455     public Collection<ToolchainModel> getToolchains() {
456         return List.of();
457     }
458 }