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  
58  /**
59   */
60  public class SessionStub implements Session {
61  
62      private Map<String, String> userProperties;
63  
64      private Map<String, String> systemProperties;
65  
66      private final Settings settings;
67  
68      public SessionStub(Settings settings) {
69          this(null, null, settings);
70      }
71  
72      public SessionStub() {
73          this(null, null, null);
74      }
75  
76      public SessionStub(Map<String, String> userProperties) {
77          this(null, userProperties, null);
78      }
79  
80      public SessionStub(Map<String, String> systemProperties, Map<String, String> userProperties, Settings settings) {
81  
82          this.settings = settings;
83  
84          this.systemProperties = new HashMap<>();
85          if (systemProperties != null) {
86              this.systemProperties.putAll(systemProperties);
87          }
88          System.getProperties().forEach((k, v) -> this.systemProperties.put(k.toString(), v.toString()));
89  
90          this.userProperties = new HashMap<>();
91          if (userProperties != null) {
92              this.userProperties.putAll(userProperties);
93          }
94      }
95  
96      @Override
97      public Settings getSettings() {
98          return settings;
99      }
100 
101     @Override
102     public Map<String, String> getSystemProperties() {
103         return this.systemProperties;
104     }
105 
106     @Override
107     public Map<String, String> getUserProperties() {
108         return this.userProperties;
109     }
110 
111     @Nonnull
112     public Map<String, String> getEffectiveProperties(@Nullable Project project) {
113         HashMap<String, String> result = new HashMap<>(getSystemProperties());
114         if (project != null) {
115             result.putAll(project.getModel().getProperties());
116         }
117         result.putAll(getUserProperties());
118         return result;
119     }
120 
121     @Override
122     public LocalRepository getLocalRepository() {
123         return null;
124     }
125 
126     @Override
127     public Path getTopDirectory() {
128         return null;
129     }
130 
131     @Override
132     public Path getRootDirectory() {
133         return null;
134     }
135 
136     @Override
137     public List<RemoteRepository> getRemoteRepositories() {
138         return null;
139     }
140 
141     @Override
142     public SessionData getData() {
143         return null;
144     }
145 
146     @Override
147     public Version getMavenVersion() {
148         return null;
149     }
150 
151     @Override
152     public int getDegreeOfConcurrency() {
153         return 0;
154     }
155 
156     @Override
157     public Instant getStartTime() {
158         return null;
159     }
160 
161     @Override
162     public List<Project> getProjects() {
163         return null;
164     }
165 
166     @Override
167     public Map<String, Object> getPluginContext(Project project) {
168         return null;
169     }
170 
171     @Override
172     public <T extends Service> T getService(Class<T> clazz) {
173         return null;
174     }
175 
176     @Override
177     public Session withLocalRepository(LocalRepository localRepository) {
178         return null;
179     }
180 
181     @Override
182     public Session withRemoteRepositories(List<RemoteRepository> repositories) {
183         return null;
184     }
185 
186     @Override
187     public void registerListener(Listener listener) {}
188 
189     @Override
190     public void unregisterListener(Listener listener) {}
191 
192     @Override
193     public Collection<Listener> getListeners() {
194         return null;
195     }
196 
197     @Override
198     public LocalRepository createLocalRepository(Path path) {
199         return null;
200     }
201 
202     @Override
203     public RemoteRepository createRemoteRepository(String id, String url) {
204         return null;
205     }
206 
207     @Override
208     public RemoteRepository createRemoteRepository(Repository repository) {
209         return null;
210     }
211 
212     @Override
213     public Artifact createArtifact(String groupId, String artifactId, String version, String extension) {
214         return null;
215     }
216 
217     @Override
218     public Artifact createArtifact(
219             String groupId, String artifactId, String version, String classifier, String extension, String type) {
220         return null;
221     }
222 
223     @Override
224     public ProducedArtifact createProducedArtifact(
225             String groupId, String artifactId, String version, String extension) {
226         return null;
227     }
228 
229     @Override
230     public ProducedArtifact createProducedArtifact(
231             String groupId, String artifactId, String version, String classifier, String extension, String type) {
232         return null;
233     }
234 
235     @Override
236     public ArtifactCoordinates createArtifactCoordinates(
237             String groupId, String artifactId, String version, String extension) {
238         return null;
239     }
240 
241     @Override
242     public ArtifactCoordinates createArtifactCoordinates(String coordString) {
243         return null;
244     }
245 
246     @Override
247     public ArtifactCoordinates createArtifactCoordinates(
248             String groupId, String artifactId, String version, String classifier, String extension, String type) {
249         return null;
250     }
251 
252     @Override
253     public ArtifactCoordinates createArtifactCoordinates(Artifact artifact) {
254         return null;
255     }
256 
257     @Override
258     public DependencyCoordinates createDependencyCoordinates(ArtifactCoordinates artifactCoordinates) {
259         return null;
260     }
261 
262     @Override
263     public DependencyCoordinates createDependencyCoordinates(Dependency dependency) {
264         return null;
265     }
266 
267     @Override
268     public DownloadedArtifact resolveArtifact(Artifact artifact) {
269         return null;
270     }
271 
272     @Override
273     public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinate) {
274         return null;
275     }
276 
277     @Override
278     public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinates, List<RemoteRepository> repositories) {
279         return null;
280     }
281 
282     @Override
283     public DownloadedArtifact resolveArtifact(Artifact artifact, List<RemoteRepository> repositories) {
284         return null;
285     }
286 
287     @Override
288     public Collection<DownloadedArtifact> resolveArtifacts(ArtifactCoordinates... artifactCoordinates) {
289         return null;
290     }
291 
292     @Override
293     public Collection<DownloadedArtifact> resolveArtifacts(Collection<? extends ArtifactCoordinates> collection) {
294         return null;
295     }
296 
297     @Override
298     public Collection<DownloadedArtifact> resolveArtifacts(Artifact... artifacts) {
299         return null;
300     }
301 
302     @Override
303     public Collection<DownloadedArtifact> resolveArtifacts(
304             Collection<? extends ArtifactCoordinates> coordinates, List<RemoteRepository> repositories) {
305         return null;
306     }
307 
308     @Override
309     public List<Node> flattenDependencies(Node node, PathScope scope) {
310         return null;
311     }
312 
313     @Override
314     public List<Path> resolveDependencies(DependencyCoordinates dependencyCoordinates) {
315         return null;
316     }
317 
318     @Override
319     public List<Path> resolveDependencies(List<DependencyCoordinates> dependencyCoordinatess) {
320         return null;
321     }
322 
323     @Override
324     public List<Path> resolveDependencies(Project project, PathScope scope) {
325         return null;
326     }
327 
328     @Override
329     public Version resolveVersion(ArtifactCoordinates artifact) {
330         return null;
331     }
332 
333     @Override
334     public List<Version> resolveVersionRange(ArtifactCoordinates artifact) {
335         return null;
336     }
337 
338     @Override
339     public List<Version> resolveVersionRange(ArtifactCoordinates artifact, List<RemoteRepository> repositories) {
340         return null;
341     }
342 
343     @Override
344     public void installArtifacts(ProducedArtifact... artifacts) {}
345 
346     @Override
347     public void installArtifacts(Collection<ProducedArtifact> artifacts) {}
348 
349     @Override
350     public void deployArtifact(RemoteRepository repository, ProducedArtifact... artifacts) {}
351 
352     @Override
353     public void setArtifactPath(ProducedArtifact artifact, Path path) {}
354 
355     @Override
356     public Optional<Path> getArtifactPath(Artifact artifact) {
357         return Optional.empty();
358     }
359 
360     @Override
361     public boolean isVersionSnapshot(String version) {
362         return false;
363     }
364 
365     @Override
366     public Node collectDependencies(Artifact artifact, PathScope scope) {
367         return null;
368     }
369 
370     @Override
371     public Node collectDependencies(Project project, PathScope scope) {
372         return null;
373     }
374 
375     @Override
376     public Node collectDependencies(DependencyCoordinates dependencyCoordinates, PathScope scope) {
377         return null;
378     }
379 
380     @Override
381     public Path getPathForLocalArtifact(Artifact artifact) {
382         return null;
383     }
384 
385     @Override
386     public Path getPathForRemoteArtifact(RemoteRepository remote, Artifact artifact) {
387         return null;
388     }
389 
390     @Override
391     public Version parseVersion(String version) {
392         return null;
393     }
394 
395     @Override
396     public VersionRange parseVersionRange(String versionRange) {
397         return null;
398     }
399 
400     @Override
401     public VersionConstraint parseVersionConstraint(String s) {
402         return null;
403     }
404 
405     @Override
406     public Map<PathType, List<Path>> resolveDependencies(
407             DependencyCoordinates dependencyCoordinates, PathScope scope, Collection<PathType> desiredTypes) {
408         return Map.of();
409     }
410 
411     @Override
412     public Map<PathType, List<Path>> resolveDependencies(
413             Project project, PathScope scope, Collection<PathType> desiredTypes) {
414         return Map.of();
415     }
416 
417     @Override
418     public Type requireType(String id) {
419         return null;
420     }
421 
422     @Override
423     public Language requireLanguage(String id) {
424         return null;
425     }
426 
427     @Override
428     public Packaging requirePackaging(String id) {
429         return null;
430     }
431 
432     @Override
433     public ProjectScope requireProjectScope(String id) {
434         return null;
435     }
436 
437     @Override
438     public DependencyScope requireDependencyScope(String id) {
439         return null;
440     }
441 
442     @Override
443     public PathScope requirePathScope(String id) {
444         return null;
445     }
446 }