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