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.IOException;
26 import java.io.OutputStream;
27 import java.io.OutputStreamWriter;
28 import java.io.Writer;
29 import java.util.Map;
30 import java.util.Objects;
31
32 import org.apache.maven.model.Model;
33 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
34 import org.codehaus.plexus.util.WriterFactory;
35
36
37
38
39
40
41 @Named
42 @Singleton
43 @Deprecated(since = "4.0.0")
44 public class DefaultModelWriter implements ModelWriter {
45
46 @Override
47 public void write(File output, Map<String, Object> options, Model model) throws IOException {
48 Objects.requireNonNull(output, "output cannot be null");
49 Objects.requireNonNull(model, "model cannot be null");
50
51 output.getParentFile().mkdirs();
52
53 write(WriterFactory.newXmlWriter(output), options, model);
54 }
55
56 @Override
57 public void write(Writer output, Map<String, Object> options, Model model) throws IOException {
58 Objects.requireNonNull(output, "output cannot be null");
59 Objects.requireNonNull(model, "model cannot be null");
60
61 try (Writer out = output) {
62 new MavenXpp3Writer().write(out, model);
63 }
64 }
65
66 @Override
67 public void write(OutputStream output, Map<String, Object> options, Model model) throws IOException {
68 Objects.requireNonNull(output, "output cannot be null");
69 Objects.requireNonNull(model, "model cannot be null");
70
71 String encoding = model.getModelEncoding();
72
73 if (encoding == null || encoding.length() <= 0) {
74 encoding = "UTF-8";
75 }
76
77 try (Writer out = new OutputStreamWriter(output, encoding)) {
78 write(out, options, model);
79 }
80 }
81 }