1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.model.io;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.io.File;
25 import java.io.FileInputStream;
26 import java.io.IOException;
27 import java.io.InputStream;
28 import java.io.Reader;
29 import java.util.Map;
30 import java.util.Objects;
31
32 import org.apache.maven.model.InputSource;
33 import org.apache.maven.model.Model;
34 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
35 import org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx;
36 import org.codehaus.plexus.util.ReaderFactory;
37 import org.codehaus.plexus.util.xml.XmlStreamReader;
38 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
39
40
41
42
43
44
45 @Named
46 @Singleton
47 @Deprecated(since = "4.0.0")
48 public class DefaultModelReader implements ModelReader {
49
50 @Override
51 public Model read(File input, Map<String, ?> options) throws IOException {
52 Objects.requireNonNull(input, "input cannot be null");
53
54 Model model = read(new FileInputStream(input), options);
55
56 model.setPomFile(input);
57
58 return model;
59 }
60
61 @Override
62 public Model read(Reader input, Map<String, ?> options) throws IOException {
63 Objects.requireNonNull(input, "input cannot be null");
64
65 try (Reader in = input) {
66 return read(in, isStrict(options), getSource(options));
67 }
68 }
69
70 @Override
71 public Model read(InputStream input, Map<String, ?> options) throws IOException {
72 Objects.requireNonNull(input, "input cannot be null");
73
74 try (XmlStreamReader in = ReaderFactory.newXmlReader(input)) {
75 return read(in, isStrict(options), getSource(options));
76 }
77 }
78
79 private boolean isStrict(Map<String, ?> options) {
80 Object value = (options != null) ? options.get(IS_STRICT) : null;
81 return value == null || Boolean.parseBoolean(value.toString());
82 }
83
84 private InputSource getSource(Map<String, ?> options) {
85 Object value = (options != null) ? options.get(INPUT_SOURCE) : null;
86 return (InputSource) value;
87 }
88
89 private Model read(Reader reader, boolean strict, InputSource source) throws IOException {
90 try {
91 if (source != null) {
92 return new MavenXpp3ReaderEx().read(reader, strict, source);
93 } else {
94 return new MavenXpp3Reader().read(reader, strict);
95 }
96 } catch (XmlPullParserException e) {
97 throw new ModelParseException(e.getMessage(), e.getLineNumber(), e.getColumnNumber(), e);
98 }
99 }
100 }