You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2014/04/02 23:05:29 UTC
svn commit: r1584186 - in /hbase/branches/0.89-fb/src:
main/java/org/apache/hadoop/hbase/master/AssignmentPlanData.java
main/java/org/apache/hadoop/hbase/master/RegionPlacement.java
test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java
Author: liyin
Date: Wed Apr 2 21:05:29 2014
New Revision: 1584186
URL: http://svn.apache.org/r1584186
Log:
Remove Gson from dependencies.
Modified:
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/AssignmentPlanData.java
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionPlacement.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/AssignmentPlanData.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/AssignmentPlanData.java?rev=1584186&r1=1584185&r2=1584186&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/AssignmentPlanData.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/AssignmentPlanData.java Wed Apr 2 21:05:29 2014
@@ -23,6 +23,8 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HServerAddress;
+import org.codehaus.jackson.annotate.JsonCreator;
+import org.codehaus.jackson.annotate.JsonProperty;
import java.util.ArrayList;
import java.util.List;
@@ -43,7 +45,8 @@ public class AssignmentPlanData {
private List<Assignment> assignments;
- public AssignmentPlanData(List<Assignment> assignments) {
+ @JsonCreator
+ public AssignmentPlanData(@JsonProperty("assignments") List<Assignment> assignments) {
this.assignments = assignments;
}
@@ -56,9 +59,12 @@ public class AssignmentPlanData {
*/
public static class Assignment {
private String regionname;
+
private List<String> favored;
- public Assignment(String regionname, List<String> favored) {
+ @JsonCreator
+ public Assignment(@JsonProperty("regionname") String regionname,
+ @JsonProperty("favored") List<String> favored) {
this.regionname = regionname;
this.favored = favored;
}
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionPlacement.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionPlacement.java?rev=1584186&r1=1584185&r2=1584186&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionPlacement.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionPlacement.java Wed Apr 2 21:05:29 2014
@@ -63,9 +63,8 @@ import org.apache.hadoop.hbase.util.Pair
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonSyntaxException;
+import org.codehaus.jackson.JsonParseException;
+import org.codehaus.jackson.map.ObjectMapper;
public class RegionPlacement implements RegionPlacementPolicy{
private static final Log LOG = LogFactory.getLog(RegionPlacement.class
@@ -1564,10 +1563,10 @@ public class RegionPlacement implements
rp.updateAssignmentPlan(newPlan);
}
s.close();
+ } catch (JsonParseException je) {
+ LOG.error("Unable to parse json file", je);
} catch (IOException e) {
- LOG.error("Unable to load plan file: " + e);
- } catch (JsonSyntaxException je) {
- LOG.error("Unable to parse json file: " + je);
+ LOG.error("Unable to load plan file" , e);
}
} else if (cmd.hasOption("download")) {
String path = cmd.getOptionValue("download");
@@ -1575,9 +1574,9 @@ public class RegionPlacement implements
RegionAssignmentSnapshot snapshot = rp.getRegionAssignmentSnapshot();
AssignmentPlan plan = snapshot.getExistingAssignmentPlan();
AssignmentPlanData data = AssignmentPlanData.constructFromAssignmentPlan(plan);
- Gson prettyGson = new GsonBuilder().setPrettyPrinting().create();
- String jsonOutput = prettyGson.toJson(data);
- FileUtils.write(new File(path), jsonOutput);
+
+ ObjectMapper jsonMapper = new ObjectMapper();
+ jsonMapper.defaultPrettyPrintingWriter().writeValue(new File(path), data);
} catch (Exception e) {
LOG.error("Unable to download current assignment plan" + e);
e.printStackTrace();
@@ -1915,12 +1914,11 @@ public class RegionPlacement implements
* Convert json string to assignment plan
* @param jsonStr
* @return assignment plan converted from json string
- * @throws JsonSyntaxException
* @throws IOException
*/
public AssignmentPlan loadPlansFromJson(String jsonStr)
- throws JsonSyntaxException, IOException {
- AssignmentPlanData data = new Gson().fromJson(jsonStr, AssignmentPlanData.class);
+ throws IOException {
+ AssignmentPlanData data = new ObjectMapper().readValue(jsonStr, AssignmentPlanData.class);
AssignmentPlan newPlan = new AssignmentPlan();
RegionAssignmentSnapshot snapshot = this.getRegionAssignmentSnapshot();
Map<String, HRegionInfo> map = snapshot.getRegionNameToRegionInfoMap();
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java?rev=1584186&r1=1584185&r2=1584186&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java Wed Apr 2 21:05:29 2014
@@ -60,13 +60,12 @@ import org.apache.hadoop.hbase.util.Byte
import org.apache.hadoop.hbase.util.TagRunner;
import org.apache.hadoop.hbase.util.TestTag;
import org.apache.hadoop.hbase.util.Writables;
+import org.codehaus.jackson.map.ObjectMapper;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
-import com.google.gson.Gson;
-
@RunWith(TagRunner.class)
public class TestRegionPlacement {
final static Log LOG = LogFactory.getLog(TestRegionPlacement.class);
@@ -409,7 +408,7 @@ public class TestRegionPlacement {
/**
* Verify the number of user regions is assigned to the primary
* region server based on the plan is expected
- * @param expectedNum.
+ * @param expectedNum
* @throws IOException
*/
private void verifyRegionOnPrimaryRS(int expectedNum)
@@ -422,7 +421,7 @@ public class TestRegionPlacement {
/**
* Verify the meta has updated to the latest assignment plan
- * @param plan
+ * @param expectedPlan
* @throws IOException
*/
private void verifyMETAUpdated(AssignmentPlan expectedPlan)
@@ -634,7 +633,7 @@ public class TestRegionPlacement {
RegionPlacement.printAssignmentPlan(currentPlan);
AssignmentPlanData data = AssignmentPlanData.constructFromAssignmentPlan(currentPlan);
- String jsonStr = new Gson().toJson(data);
+ String jsonStr = new ObjectMapper().defaultPrettyPrintingWriter().writeValueAsString(data);
LOG.info("Json version of current assignment plan: " + jsonStr);
AssignmentPlan loadedPlan = rp.loadPlansFromJson(jsonStr);
RegionPlacement.printAssignmentPlan(loadedPlan);