diff --git a/client/pom.xml b/client/pom.xml index e48ef30..e4d211c 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -29,10 +29,5 @@ commons-io [1.3.0,1.4.0) - - joda-time - joda-time - [2.0,2.2) - diff --git a/client/src/main/java/io/iron/ironworker/client/Client.java b/client/src/main/java/io/iron/ironworker/client/Client.java index 3b16cb6..80cc0aa 100644 --- a/client/src/main/java/io/iron/ironworker/client/Client.java +++ b/client/src/main/java/io/iron/ironworker/client/Client.java @@ -29,9 +29,11 @@ public List getCodes(Map options) throws APIExceptio JsonObject codes = api.codesList(options); List codesList = new ArrayList(); + + Gson gson = new Gson(); for (JsonElement code : codes.get("codes").getAsJsonArray()) { - codesList.add(CodeEntity.fromJsonObject(code.getAsJsonObject())); + codesList.add(gson.fromJson(code, CodeEntity.class)); } return codesList; @@ -46,7 +48,7 @@ public List getCodes() throws APIException { } public CodeEntity getCode(String codeId) throws APIException { - return CodeEntity.fromJsonObject(api.codesGet(codeId)); + return (new Gson()).fromJson(api.codesGet(codeId), CodeEntity.class); } public void createCode(BaseCode code) throws APIException { @@ -62,8 +64,10 @@ public List getCodeRevisions(String codeId, Map codeRevisionsList = new ArrayList(); + Gson gson = new Gson(); + for (JsonElement codeRevision : codeRevisions.get("revisions").getAsJsonArray()) { - codeRevisionsList.add(CodeRevisionEntity.fromJsonObject(codeRevision.getAsJsonObject())); + codeRevisionsList.add(gson.fromJson(codeRevision, CodeRevisionEntity.class)); } return codeRevisionsList; @@ -94,8 +98,10 @@ public List getTasks(Map options) throws APIExceptio List tasksList = new ArrayList(); + Gson gson = new Gson(); + for (JsonElement task : tasks.get("tasks").getAsJsonArray()) { - tasksList.add(TaskEntity.fromJsonObject(task.getAsJsonObject())); + tasksList.add(gson.fromJson(task, TaskEntity.class)); } return tasksList; @@ -110,7 +116,7 @@ public List getTasks() throws APIException { } public TaskEntity getTask(String taskId) throws APIException { - return TaskEntity.fromJsonObject(api.tasksGet(taskId)); + return (new Gson()).fromJson(api.tasksGet(taskId), TaskEntity.class); } public TaskEntity createTask(String codeName, Map params, Map options) throws APIException { @@ -121,7 +127,7 @@ public TaskEntity createTask(String codeName, Map params, Map params, TaskOptionsObject options) throws APIException { diff --git a/client/src/main/java/io/iron/ironworker/client/entities/BaseEntity.java b/client/src/main/java/io/iron/ironworker/client/entities/BaseEntity.java deleted file mode 100644 index dc9ef63..0000000 --- a/client/src/main/java/io/iron/ironworker/client/entities/BaseEntity.java +++ /dev/null @@ -1,35 +0,0 @@ -package io.iron.ironworker.client.entities; - -import com.google.gson.JsonObject; -import org.joda.time.format.ISODateTimeFormat; - -import java.util.Date; - -public class BaseEntity { - public static String parseString(JsonObject o, String field, String def) { - return o.has(field) ? o.get(field).getAsString() : def; - } - - public static String parseString(JsonObject o, String field) { - return parseString(o, field, null); - } - - public static int parseInt(JsonObject o, String field, int def) { - return o.has(field) ? o.get(field).getAsInt() : def; - } - - public static int parseInt(JsonObject o, String field) { - return parseInt(o, field, 0); - } - - public static Date parseDate(JsonObject o, String field, Date def) { - return o.has(field) ? ISODateTimeFormat.dateTimeNoMillis().parseDateTime(o.get(field).getAsString()).toDate() : def; - } - - public static Date parseDate(JsonObject o, String field) { - return parseDate(o, field, null); - } - - protected BaseEntity() { - } -} diff --git a/client/src/main/java/io/iron/ironworker/client/entities/CodeEntity.java b/client/src/main/java/io/iron/ironworker/client/entities/CodeEntity.java index ddabcf9..14d2dca 100644 --- a/client/src/main/java/io/iron/ironworker/client/entities/CodeEntity.java +++ b/client/src/main/java/io/iron/ironworker/client/entities/CodeEntity.java @@ -1,38 +1,31 @@ package io.iron.ironworker.client.entities; -import com.google.gson.JsonObject; +import com.google.gson.annotations.SerializedName; import java.util.Date; -public class CodeEntity extends BaseEntity { +public class CodeEntity { + @SerializedName("id") String id; + @SerializedName("project_id") String projectId; + @SerializedName("name") String name; + @SerializedName("runtime") String runtime; + @SerializedName("rev") int revision; + @SerializedName("latest_history_id") String latestHistoryId; + @SerializedName("latest_checksum") String latestChecksum; + @SerializedName("latest_change") Date latestChange; + @SerializedName("created_at") Date createdAt; + @SerializedName("updated_at") Date updatedAt; - public static CodeEntity fromJsonObject(JsonObject o) { - CodeEntity c = new CodeEntity(); - - c.id = parseString(o, "id"); - c.projectId = parseString(o, "project_id"); - c.name = parseString(o, "name"); - c.runtime = parseString(o, "runtime"); - c.revision = parseInt(o, "rev"); - c.latestHistoryId = parseString(o, "latest_history_id"); - c.latestChecksum = parseString(o, "latest_checksum"); - c.latestChange = parseDate(o, "latest_change"); - c.createdAt = parseDate(o, "created_at"); - c.updatedAt = parseDate(o, "updated_at"); - - return c; - } - protected CodeEntity() { } diff --git a/client/src/main/java/io/iron/ironworker/client/entities/CodeRevisionEntity.java b/client/src/main/java/io/iron/ironworker/client/entities/CodeRevisionEntity.java index 304843a..1774f2e 100644 --- a/client/src/main/java/io/iron/ironworker/client/entities/CodeRevisionEntity.java +++ b/client/src/main/java/io/iron/ironworker/client/entities/CodeRevisionEntity.java @@ -1,36 +1,29 @@ package io.iron.ironworker.client.entities; -import com.google.gson.JsonObject; +import com.google.gson.annotations.SerializedName; import java.util.Date; -public class CodeRevisionEntity extends BaseEntity { +public class CodeRevisionEntity { + @SerializedName("id") String id; - String codeId; + @SerializedName("project_id") String projectId; + @SerializedName("code_id") + String codeId; + @SerializedName("name") String name; + @SerializedName("runtime") String runtime; + @SerializedName("file_name") String runner; + @SerializedName("rev") int revision; + @SerializedName("created_at") Date createdAt; + @SerializedName("updated_at") Date updatedAt; - public static CodeRevisionEntity fromJsonObject(JsonObject o) { - CodeRevisionEntity cr = new CodeRevisionEntity(); - - cr.id = parseString(o, "id"); - cr.codeId = parseString(o, "code_id"); - cr.projectId = parseString(o, "project_id"); - cr.name = parseString(o, "name"); - cr.runtime = parseString(o, "runtime"); - cr.runner = parseString(o, "file_name"); - cr.revision = parseInt(o, "rev"); - cr.createdAt = parseDate(o, "created_at"); - cr.updatedAt = parseDate(o, "updated_at"); - - return cr; - } - protected CodeRevisionEntity() { } @@ -38,14 +31,14 @@ public String getId() { return id; } - public String getCodeId() { - return codeId; - } - public String getProjectId() { return projectId; } + public String getCodeId() { + return codeId; + } + public String getName() { return name; } diff --git a/client/src/main/java/io/iron/ironworker/client/entities/TaskEntity.java b/client/src/main/java/io/iron/ironworker/client/entities/TaskEntity.java index 54846bd..3d0cad3 100644 --- a/client/src/main/java/io/iron/ironworker/client/entities/TaskEntity.java +++ b/client/src/main/java/io/iron/ironworker/client/entities/TaskEntity.java @@ -1,48 +1,41 @@ package io.iron.ironworker.client.entities; -import com.google.gson.JsonObject; +import com.google.gson.annotations.SerializedName; import java.util.Date; -public class TaskEntity extends BaseEntity { +public class TaskEntity extends { + @SerializedName("id") String id; + @SerializedName("project_id") String projectId; + @SerializedName("code_id") String codeId; + @SerializedName("code_name") String codeName; + @SerializedName("status") String status; + @SerializedName("start_time") Date startTime; + @SerializedName("end_time") Date endTime; + @SerializedName("duration") int duration; + @SerializedName("run_times") int runTimes; + @SerializedName("timeout") int timeout; + @SerializedName("payload") String payload; + @SerializedName("percent") int percent; + @SerializedName("msg") String msg; + @SerializedName("created_at") Date createdAt; + @SerializedName("updated_at") Date updatedAt; - public static TaskEntity fromJsonObject(JsonObject o) { - TaskEntity t = new TaskEntity(); - - t.id = parseString(o, "id"); - t.projectId = parseString(o, "project_id"); - t.codeId = parseString(o, "code_id"); - t.codeName = parseString(o, "code_name"); - t.status = parseString(o, "status"); - t.startTime = parseDate(o, "start_time"); - t.endTime = parseDate(o, "end_time"); - t.duration = parseInt(o, "duration"); - t.runTimes = parseInt(o, "run_times"); - t.timeout = parseInt(o, "timeout"); - t.payload = parseString(o, "payload"); - t.percent = parseInt(o, "percent"); - t.msg = parseString(o, "msg"); - t.createdAt = parseDate(o, "created_at"); - t.updatedAt = parseDate(o, "updated_at"); - - return t; - } - protected TaskEntity() { }