1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.cling.invoker.mvn;
20
21 import java.util.List;
22
23 import org.apache.commons.cli.ParseException;
24 import org.apache.maven.api.cli.ParserException;
25 import org.apache.maven.api.cli.mvn.MavenInvokerRequest;
26 import org.apache.maven.api.cli.mvn.MavenOptions;
27 import org.apache.maven.api.cli.mvn.MavenParser;
28
29 public class DefaultMavenParser extends BaseMavenParser<MavenOptions, MavenInvokerRequest<MavenOptions>>
30 implements MavenParser<MavenInvokerRequest<MavenOptions>> {
31 @Override
32 protected DefaultMavenInvokerRequest<MavenOptions> getInvokerRequest(LocalContext context) {
33 return new DefaultMavenInvokerRequest<>(
34 context.parserRequest,
35 context.cwd,
36 context.installationDirectory,
37 context.userHomeDirectory,
38 context.userProperties,
39 context.systemProperties,
40 context.topDirectory,
41 context.rootDirectory,
42 context.parserRequest.in(),
43 context.parserRequest.out(),
44 context.parserRequest.err(),
45 context.extensions,
46 (MavenOptions) context.options);
47 }
48
49 @Override
50 protected MavenOptions parseArgs(String source, List<String> args) throws ParserException {
51 try {
52 return CommonsCliMavenOptions.parse(source, args.toArray(new String[0]));
53 } catch (ParseException e) {
54 throw new ParserException("Failed to parse source " + source + ": " + e.getMessage(), e.getCause());
55 }
56 }
57
58 @Override
59 protected MavenOptions assembleOptions(List<MavenOptions> parsedOptions) {
60 return LayeredMavenOptions.layerMavenOptions(parsedOptions);
61 }
62 }