mirror of https://github.com/apache/cloudstack.git
Make XML serializer support all fields within the class tree
This commit is contained in:
parent
277c60e4f6
commit
16530b532f
|
|
@ -57,7 +57,7 @@ public abstract class BaseAsyncCmd extends BaseCmd {
|
|||
public ResponseObject getResponse(long jobId) {
|
||||
AsyncJobResponse response = new AsyncJobResponse();
|
||||
|
||||
response.setId(jobId);
|
||||
response.setJobId(jobId);
|
||||
response.setResponseName(getCommandName());
|
||||
return response;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,14 +59,6 @@ public class AsyncJobResponse extends BaseResponse {
|
|||
@SerializedName(ApiConstants.CREATED) @Param(description=" the created date of the job")
|
||||
private Date created;
|
||||
|
||||
public Long getId() {
|
||||
return getJobId();
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
setJobId(id);
|
||||
}
|
||||
|
||||
public Long getAccountId() {
|
||||
return accountId.getValue();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ public class VMTemplateVO implements VirtualMachineTemplate, Identity {
|
|||
@Column(name="sort_key")
|
||||
int sortKey;
|
||||
|
||||
@Transient
|
||||
Map details;
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1874,7 +1874,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
jobResponse.setAccountId(job.getAccountId());
|
||||
jobResponse.setCmd(job.getCmd());
|
||||
jobResponse.setCreated(job.getCreated());
|
||||
jobResponse.setId(job.getId());
|
||||
jobResponse.setJobId(job.getId());
|
||||
|
||||
if (job.getInstanceType() != null && job.getInstanceId() != null) {
|
||||
jobResponse.setJobInstanceType(job.getInstanceType().toString());
|
||||
|
|
@ -2165,7 +2165,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||
AsyncJobResult result = ApiDBUtils._asyncMgr.queryAsyncJobResult(cmd);
|
||||
AsyncJobResponse response = new AsyncJobResponse();
|
||||
|
||||
response.setId(result.getJobId());
|
||||
response.setJobId(result.getJobId());
|
||||
response.setJobStatus(result.getJobStatus());
|
||||
response.setJobProcStatus(result.getProcessStatus());
|
||||
response.setJobResultCode(result.getResultCode());
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ import java.lang.reflect.Field;
|
|||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
|
|
@ -158,12 +160,22 @@ public class ApiResponseSerializer {
|
|||
}
|
||||
}
|
||||
|
||||
public static Field[] getFlattenFields(Class<?> clz) {
|
||||
List<Field> fields = new ArrayList<Field>();
|
||||
fields.addAll(Arrays.asList(clz.getDeclaredFields()));
|
||||
if (clz.getSuperclass() != null) {
|
||||
fields.addAll(Arrays.asList(getFlattenFields(clz.getSuperclass())));
|
||||
}
|
||||
return fields.toArray(new Field[] {});
|
||||
}
|
||||
|
||||
private static void serializeResponseObjFieldsXML(StringBuilder sb, ResponseObject obj) {
|
||||
boolean isAsync = false;
|
||||
if (obj instanceof AsyncJobResponse)
|
||||
isAsync = true;
|
||||
|
||||
Field[] fields = obj.getClass().getDeclaredFields();
|
||||
//Field[] fields = obj.getClass().getDeclaredFields();
|
||||
Field[] fields = getFlattenFields(obj.getClass());
|
||||
for (Field field : fields) {
|
||||
if ((field.getModifiers() & Modifier.TRANSIENT) != 0) {
|
||||
continue; // skip transient fields
|
||||
|
|
@ -214,7 +226,8 @@ public class ApiResponseSerializer {
|
|||
IdentityDao identityDao = new IdentityDaoImpl();
|
||||
id = identityDao.getIdentityUuid(idProxy.getTableName(), id);
|
||||
}
|
||||
sb.append("<" + serializedName.value() + ">" + id + "</" + serializedName.value() + ">");
|
||||
if(id != null && !id.isEmpty())
|
||||
sb.append("<" + serializedName.value() + ">" + id + "</" + serializedName.value() + ">");
|
||||
} else {
|
||||
String resultString = escapeSpecialXmlChars(fieldValue.toString());
|
||||
if (!(obj instanceof ExceptionResponse)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue