1
2
3
4
5
6
7
8 package com.tunyk.mvn.plugins.htmlcompressor;
9
10 import java.nio.charset.Charset;
11 import java.util.Map.Entry;
12 import java.util.concurrent.ConcurrentMap;
13
14
15
16
17 public class XmlCompressor {
18
19
20 private static final String[] FILE_EXT = { "xml" };
21
22
23 private String[] fileExtensions;
24
25
26 private String srcDirPath;
27
28
29 private String targetDirPath;
30
31
32 private Charset fileEncoding;
33
34
35 private com.googlecode.htmlcompressor.compressor.XmlCompressor xmlCompressor;
36
37
38
39
40
41
42
43
44
45 public XmlCompressor(String srcDirPath, String targetDirPath) {
46 this.srcDirPath = srcDirPath;
47 this.targetDirPath = targetDirPath;
48 }
49
50
51
52
53
54
55
56 public void compress() throws Exception {
57 if (fileExtensions == null || fileExtensions.length == 0) {
58 fileExtensions = FILE_EXT;
59 }
60
61 FileTool fileTool = new FileTool(srcDirPath, fileExtensions, true);
62 fileTool.setFileEncoding(fileEncoding);
63 ConcurrentMap<String, String> map = fileTool.getFiles();
64
65 if (xmlCompressor == null) {
66 xmlCompressor = new com.googlecode.htmlcompressor.compressor.XmlCompressor();
67 }
68
69 for (Entry<String, String> key : map.entrySet()) {
70 map.put(key.getKey(), xmlCompressor.compress(key.getValue()));
71 }
72
73 fileTool.writeFiles(map, targetDirPath);
74 }
75
76
77
78
79
80
81 public String[] getFileExtensions() {
82 return fileExtensions;
83 }
84
85
86
87
88
89
90
91 public void setFileExtensions(String[] fileExtensions) {
92 this.fileExtensions = fileExtensions;
93 }
94
95
96
97
98
99
100 public String getSrcDirPath() {
101 return srcDirPath;
102 }
103
104
105
106
107
108
109
110 public void setSrcDirPath(String srcDirPath) {
111 this.srcDirPath = srcDirPath;
112 }
113
114
115
116
117
118
119 public String getTargetDirPath() {
120 return targetDirPath;
121 }
122
123
124
125
126
127
128
129 public void setTargetDirPath(String targetDirPath) {
130 this.targetDirPath = targetDirPath;
131 }
132
133
134
135
136
137
138 public Charset getFileEncoding() {
139 return fileEncoding;
140 }
141
142
143
144
145
146
147
148 public void setFileEncoding(Charset fileEncoding) {
149 this.fileEncoding = fileEncoding == null ? Charset.defaultCharset() : fileEncoding;
150 }
151
152
153
154
155
156
157 public com.googlecode.htmlcompressor.compressor.XmlCompressor getXmlCompressor() {
158 return xmlCompressor;
159 }
160
161
162
163
164
165
166
167 public void setXmlCompressor(com.googlecode.htmlcompressor.compressor.XmlCompressor xmlCompressor) {
168 this.xmlCompressor = xmlCompressor;
169 }
170 }