1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.toolchain.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.toolchain.InputSource;
34 import org.apache.maven.toolchain.model.PersistedToolchains;
35 import org.apache.maven.toolchain.v4.MavenToolchainsStaxReader;
36
37
38
39
40
41
42
43 @Named
44 @Singleton
45 @Deprecated(since = "4.0.0")
46 public class DefaultToolchainsReader implements ToolchainsReader {
47
48 @Override
49 public PersistedToolchains read(File input, Map<String, ?> options) throws IOException {
50 Objects.requireNonNull(input, "input cannot be null");
51
52 try (InputStream in = Files.newInputStream(input.toPath())) {
53 InputSource source = new InputSource(input.toString());
54 return new PersistedToolchains(new MavenToolchainsStaxReader().read(in, isStrict(options), source));
55 } catch (XMLStreamException e) {
56 throw new ToolchainsParseException(
57 e.getMessage(),
58 e.getLocation().getLineNumber(),
59 e.getLocation().getColumnNumber(),
60 e);
61 }
62 }
63
64 @Override
65 public PersistedToolchains read(Reader input, Map<String, ?> options) throws IOException {
66 Objects.requireNonNull(input, "input cannot be null");
67
68 try (Reader in = input) {
69 InputSource source = (InputSource) options.get(InputSource.class.getName());
70 return new PersistedToolchains(new MavenToolchainsStaxReader().read(in, isStrict(options), source));
71 } catch (XMLStreamException e) {
72 throw new ToolchainsParseException(
73 e.getMessage(),
74 e.getLocation().getLineNumber(),
75 e.getLocation().getColumnNumber(),
76 e);
77 }
78 }
79
80 @Override
81 public PersistedToolchains read(InputStream input, Map<String, ?> options) throws IOException {
82 Objects.requireNonNull(input, "input cannot be null");
83
84 try (InputStream in = input) {
85 InputSource source = (InputSource) options.get(InputSource.class.getName());
86 return new PersistedToolchains(new MavenToolchainsStaxReader().read(in, isStrict(options), source));
87 } catch (XMLStreamException e) {
88 throw new ToolchainsParseException(
89 e.getMessage(),
90 e.getLocation().getLineNumber(),
91 e.getLocation().getColumnNumber(),
92 e);
93 }
94 }
95
96 private boolean isStrict(Map<String, ?> options) {
97 Object value = (options != null) ? options.get(IS_STRICT) : null;
98 return value == null || Boolean.parseBoolean(value.toString());
99 }
100 }