|
@@ -24,6 +24,7 @@ import com.google.common.base.Preconditions;
|
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
|
import org.apache.hadoop.classification.InterfaceStability;
|
|
|
import org.codehaus.jackson.map.ObjectMapper;
|
|
|
+import org.codehaus.jackson.map.ObjectReader;
|
|
|
import org.codehaus.jackson.map.SerializationConfig;
|
|
|
|
|
|
import static org.codehaus.jackson.map.type.TypeFactory.defaultInstance;
|
|
@@ -38,6 +39,15 @@ import java.util.LinkedList;
|
|
|
@InterfaceAudience.Private
|
|
|
@InterfaceStability.Unstable
|
|
|
public class DiskBalancerWorkStatus {
|
|
|
+ private static final ObjectMapper MAPPER = new ObjectMapper();
|
|
|
+ private static final ObjectMapper MAPPER_WITH_INDENT_OUTPUT =
|
|
|
+ new ObjectMapper().enable(
|
|
|
+ SerializationConfig.Feature.INDENT_OUTPUT);
|
|
|
+ private static final ObjectReader READER_WORKSTATUS =
|
|
|
+ new ObjectMapper().reader(DiskBalancerWorkStatus.class);
|
|
|
+ private static final ObjectReader READER_WORKENTRY = new ObjectMapper()
|
|
|
+ .reader(defaultInstance().constructCollectionType(List.class,
|
|
|
+ DiskBalancerWorkEntry.class));
|
|
|
|
|
|
private final List<DiskBalancerWorkEntry> currentState;
|
|
|
private Result result;
|
|
@@ -92,10 +102,7 @@ public class DiskBalancerWorkStatus {
|
|
|
this.result = result;
|
|
|
this.planID = planID;
|
|
|
this.planFile = planFile;
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
- this.currentState = mapper.readValue(currentState,
|
|
|
- defaultInstance().constructCollectionType(
|
|
|
- List.class, DiskBalancerWorkEntry.class));
|
|
|
+ this.currentState = READER_WORKENTRY.readValue(currentState);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -141,15 +148,11 @@ public class DiskBalancerWorkStatus {
|
|
|
* @throws IOException
|
|
|
**/
|
|
|
public String currentStateString() throws IOException {
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
- mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);
|
|
|
- return mapper.writeValueAsString(currentState);
|
|
|
+ return MAPPER_WITH_INDENT_OUTPUT.writeValueAsString(currentState);
|
|
|
}
|
|
|
|
|
|
public String toJsonString() throws IOException {
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
- return mapper.writeValueAsString(this);
|
|
|
-
|
|
|
+ return MAPPER.writeValueAsString(this);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -160,8 +163,7 @@ public class DiskBalancerWorkStatus {
|
|
|
*/
|
|
|
public static DiskBalancerWorkStatus parseJson(String json) throws
|
|
|
IOException {
|
|
|
- ObjectMapper mapper = new ObjectMapper();
|
|
|
- return mapper.readValue(json, DiskBalancerWorkStatus.class);
|
|
|
+ return READER_WORKSTATUS.readValue(json);
|
|
|
}
|
|
|
|
|
|
|