Skip to content

Commit b9a2b72

Browse files
committed
Fixed a bug in XmlApiDocReader
1 parent 99bc15f commit b9a2b72

1 file changed

Lines changed: 77 additions & 80 deletions

File tree

server/src/com/cloud/api/doc/ApiXmlDocReader.java

Lines changed: 77 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,20 @@
3535
import com.thoughtworks.xstream.io.xml.DomDriver;
3636

3737
public class ApiXmlDocReader {
38-
public static void main (String[] args) {
38+
public static void main(String[] args) {
3939
String newFile = null;
4040
String oldFile = null;
4141
String dirName = "";
42-
43-
LinkedHashMap<String, Command> commands = new LinkedHashMap<String,Command>();
44-
LinkedHashMap<String, Command> oldCommands = new LinkedHashMap<String,Command>();
42+
43+
LinkedHashMap<String, Command> commands = new LinkedHashMap<String, Command>();
44+
LinkedHashMap<String, Command> oldCommands = new LinkedHashMap<String, Command>();
4545
ArrayList<Command> addedCommands = new ArrayList<Command>();
4646
ArrayList<Command> removedCommands = new ArrayList<Command>();
4747
HashMap<String, Command> stableCommands = new HashMap<String, Command>();
4848

4949
XStream xs = new XStream(new DomDriver());
5050
xs.alias("command", Command.class);
5151
xs.alias("arg", Argument.class);
52-
5352

5453
List<String> argsList = Arrays.asList(args);
5554
Iterator<String> iter = argsList.iterator();
@@ -66,78 +65,78 @@ public static void main (String[] args) {
6665
dirName = iter.next();
6766
}
6867
}
69-
68+
7069
try {
71-
try{
70+
try {
7271
ObjectInputStream inOld = xs.createObjectInputStream(new FileReader(oldFile));
73-
while (true){
74-
Command c1 = (Command)inOld.readObject();
72+
while (true) {
73+
Command c1 = (Command) inOld.readObject();
7574
oldCommands.put(c1.getName(), c1);
7675
}
7776
} catch (EOFException ex) {
78-
//EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
77+
// EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
7978
}
80-
81-
try{
79+
80+
try {
8281
ObjectInputStream inNew = xs.createObjectInputStream(new FileReader(newFile));
83-
while (true){
84-
Command c = (Command)inNew.readObject();
82+
while (true) {
83+
Command c = (Command) inNew.readObject();
8584
commands.put(c.getName(), c);
8685
}
8786
} catch (EOFException ex) {
88-
//EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
87+
// EOF exception shows that there is no more objects in ObjectInputStream, so do nothing here
8988
}
90-
} catch (Exception ex){
89+
} catch (Exception ex) {
9190
ex.printStackTrace();
9291
}
93-
94-
//Check if any commands got added in new version
92+
93+
// Check if any commands got added in new version
9594
for (String key : commands.keySet()) {
9695
if (!oldCommands.containsKey(key)) {
9796
addedCommands.add(commands.get(key));
9897
} else {
9998
stableCommands.put(commands.get(key).getName(), commands.get(key));
10099
}
101100
}
102-
103-
//Check if any commands were removed in new version
101+
102+
// Check if any commands were removed in new version
104103
for (String key : oldCommands.keySet()) {
105104
if (!commands.containsKey(key)) {
106105
removedCommands.add(oldCommands.get(key));
107106
if (stableCommands.get(key) != null) {
108107
stableCommands.remove(key);
109108
}
110-
}
109+
}
111110
}
112-
113-
try {
111+
112+
try {
114113
FileWriter fstream = new FileWriter(dirName + "/diff.txt");
115114
BufferedWriter out = new BufferedWriter(fstream);
116-
117-
//Print added commands
115+
116+
// Print added commands
118117
out.write("Added commands:\n");
119118
for (Command c : addedCommands) {
120119
if (c.getDescription() != null && !c.getDescription().isEmpty()) {
121120
out.write("\n " + c.getName() + " (" + c.getDescription() + ")\n");
122121
} else {
123122
out.write("\n " + c.getName() + "\n");
124123
}
125-
124+
126125
}
127-
128-
//Print removed commands
126+
127+
// Print removed commands
129128
out.write("\nRemoved commands:\n");
130129
for (Command c : removedCommands) {
131130
if (c.getDescription() != null && !c.getDescription().isEmpty()) {
132131
out.write("\n\t" + c.getName() + " (" + c.getDescription() + ")\n");
133132
} else {
134133
out.write("\n\t" + c.getName() + "\n");
135134
}
136-
135+
137136
}
138-
137+
139138
out.write("\nChanges in command type (sync versus async)\n");
140-
//Verify if the command was sync and became async and vice versa
139+
// Verify if the command was sync and became async and vice versa
141140
for (String key : stableCommands.keySet()) {
142141
if (commands.get(key).isAsync() != oldCommands.get(key).isAsync()) {
143142
String type = "Sync";
@@ -147,31 +146,31 @@ public static void main (String[] args) {
147146
out.write("\n\t" + stableCommands.get(key).getName() + " became " + type);
148147
}
149148
}
150-
151149

152-
//Print differences between commands arguments
150+
// Print differences between commands arguments
153151
out.write("\n\nChanges in commands arguments:\n");
154-
for (String key : stableCommands.keySet()){
152+
for (String key : stableCommands.keySet()) {
155153
ArrayList<Argument> newReqArgs = new ArrayList<Argument>();
156154
ArrayList<Argument> removedReqArgs = new ArrayList<Argument>();
157155
HashMap<String, Argument> stableReqArgs = new HashMap<String, Argument>();
158156
ArrayList<Argument> newRespArgs = new ArrayList<Argument>();
159157
ArrayList<Argument> removedRespArgs = new ArrayList<Argument>();
160-
HashMap<String, Argument> stableRespArgs = new HashMap<String, Argument>();
161-
158+
162159
Command newCommand = commands.get(key);
163160
Command oldCommand = oldCommands.get(key);
164-
165-
//Check if any request arguments were added in new version
161+
162+
// Check if any request arguments were added in new version
166163
for (Argument arg : newCommand.getRequest()) {
167164
if (oldCommand.getReqArgByName(arg.getName()) == null) {
168-
newReqArgs.add(arg);
165+
if (!(arg.getName().equals("page") || arg.getName().equals("pagesize") || arg.getName().equals("keyword"))) {
166+
newReqArgs.add(arg);
167+
}
169168
} else {
170169
stableReqArgs.put(arg.getName(), arg);
171170
}
172171
}
173-
174-
//Check if any request arguments were removed in new version
172+
173+
// Check if any request arguments were removed in new version
175174
for (Argument arg : oldCommand.getRequest()) {
176175
if (newCommand.getReqArgByName(arg.getName()) == null) {
177176
removedReqArgs.add(arg);
@@ -180,72 +179,71 @@ public static void main (String[] args) {
180179
}
181180
}
182181
}
183-
184-
//Compare stable request arguments of old and new version
182+
183+
// Compare stable request arguments of old and new version
185184
for (Iterator<String> i = stableReqArgs.keySet().iterator(); i.hasNext();) {
186185
String argName = i.next();
187186
if (oldCommand.getReqArgByName(argName).isRequired() == newCommand.getReqArgByName(argName).isRequired()) {
188187
i.remove();
189188
}
190189
}
191-
192-
//Check if any response arguments were added in new version
190+
191+
// Check if any response arguments were added in new version
193192
if (newCommand.getResponse() != null && oldCommand.getResponse() != null) {
194193
for (Argument arg : newCommand.getResponse()) {
195194
if (oldCommand.getResArgByName(arg.getName()) == null) {
196195
newRespArgs.add(arg);
197-
}
196+
}
198197
}
199-
200-
//Check if any response arguments were removed in new version
198+
199+
// Check if any response arguments were removed in new version
201200
for (Argument arg : oldCommand.getResponse()) {
202201
if (newCommand.getResArgByName(arg.getName()) == null) {
203202
removedRespArgs.add(arg);
204203
}
205204
}
206205
}
207-
208-
209-
if (newReqArgs.size() != 0 || newRespArgs.size() != 0 || removedReqArgs.size() != 0 || removedRespArgs.size() != 0 || stableReqArgs.size() != 0 || stableReqArgs.size() != 0) {
210-
StringBuffer commandInfo = new StringBuffer();
206+
207+
if (newReqArgs.size() != 0 || newRespArgs.size() != 0 || removedReqArgs.size() != 0 || removedRespArgs.size() != 0 || stableReqArgs.size() != 0 || stableReqArgs.size() != 0) {
208+
StringBuffer commandInfo = new StringBuffer();
211209
commandInfo.append("\n\t" + key);
212210
out.write(commandInfo.toString());
213-
out.write("\n");
214-
215-
//Request
216-
if (newReqArgs.size() != 0 || removedReqArgs.size() != 0) {
217-
StringBuffer request = new StringBuffer();
211+
out.write("\n");
212+
213+
// Request
214+
if (newReqArgs.size() != 0 || removedReqArgs.size() != 0 || stableReqArgs.size() != 0) {
215+
StringBuffer request = new StringBuffer();
218216
request.append("\n\t\tRequest:\n");
219217
out.write(request.toString());
220-
if (newReqArgs.size() != 0){
221-
StringBuffer newParameters = new StringBuffer();
218+
if (newReqArgs.size() != 0) {
219+
StringBuffer newParameters = new StringBuffer();
222220
newParameters.append("\n\t\t\tNew parameters: ");
223-
for (Argument newArg: newReqArgs) {
221+
for (Argument newArg : newReqArgs) {
224222
String isRequiredParam = "optional";
225223
if (newArg.isRequired()) {
226224
isRequiredParam = "required";
227225
}
228-
newParameters.append(newArg.getName() + " (" + isRequiredParam + "), ");
226+
newParameters.append(newArg.getName() + " (" + isRequiredParam + "), ");
229227
}
230-
newParameters.delete(newParameters.length()-2, newParameters.length()-1);
228+
newParameters.delete(newParameters.length() - 2, newParameters.length() - 1);
231229
out.write(newParameters.toString());
232230
out.write("\n");
233231
}
234-
if (removedReqArgs.size() != 0){
232+
if (removedReqArgs.size() != 0) {
235233
StringBuffer removedParameters = new StringBuffer();
236234
removedParameters.append("\n\t\t\tRemoved parameters: ");
237-
for (Argument removedArg: removedReqArgs) {
235+
for (Argument removedArg : removedReqArgs) {
238236
removedParameters.append(removedArg.getName() + ", ");
239237
}
240-
removedParameters.delete(removedParameters.length()-2, removedParameters.length()-1);
238+
removedParameters.delete(removedParameters.length() - 2, removedParameters.length() - 1);
241239
out.write(removedParameters.toString());
242240
out.write("\n");
243241
}
244-
245-
if (stableReqArgs.size() != 0){
242+
243+
if (stableReqArgs.size() != 0) {
246244
StringBuffer changedParameters = new StringBuffer();
247245
changedParameters.append("\n\t\t\tChanged parameters: ");
248-
for (Argument stableArg: stableReqArgs.values()) {
246+
for (Argument stableArg : stableReqArgs.values()) {
249247
String newRequired = "optional";
250248
String oldRequired = "optional";
251249
if (oldCommand.getReqArgByName(stableArg.getName()).isRequired() == true)
@@ -258,43 +256,42 @@ public static void main (String[] args) {
258256
out.write(changedParameters.toString());
259257
out.write("\n");
260258
}
261-
262259
}
263-
264-
//Response
260+
261+
// Response
265262
if (newRespArgs.size() != 0 || removedRespArgs.size() != 0) {
266263
StringBuffer changedResponseParams = new StringBuffer();
267264
changedResponseParams.append("\n\t\tResponse:\n");
268265
out.write(changedResponseParams.toString());
269-
if (newRespArgs.size() != 0){
266+
if (newRespArgs.size() != 0) {
270267
StringBuffer newRespParams = new StringBuffer();
271268
newRespParams.append("\n\t\t\tNew parameters: ");
272-
for (Argument newArg: newRespArgs) {
269+
for (Argument newArg : newRespArgs) {
273270
newRespParams.append(newArg.getName() + ", ");
274271
}
275272
newRespParams.delete(newRespParams.length() - 2, newRespParams.length() - 1);
276273
out.write(newRespParams.toString());
277274
out.write("\n");
278275
}
279-
if (removedRespArgs.size() != 0){
276+
if (removedRespArgs.size() != 0) {
280277
StringBuffer removedRespParams = new StringBuffer();
281278
removedRespParams.append("\n\t\t\tRemoved parameters: ");
282-
for (Argument removedArg: removedRespArgs) {
279+
for (Argument removedArg : removedRespArgs) {
283280
removedRespParams.append(removedArg.getName() + ", ");
284281
}
285282
removedRespParams.delete(removedRespParams.length() - 2, removedRespParams.length() - 1);
286283
out.write(removedRespParams.toString());
287284
out.write("\n");
288285
}
289286
}
290-
}
287+
}
291288
}
292-
289+
293290
out.close();
294291

295-
} catch (IOException e) {
296-
e.printStackTrace();
297-
}
292+
} catch (IOException e) {
293+
e.printStackTrace();
294+
}
298295

299296
}
300297
}

0 commit comments

Comments
 (0)