Author: andrew.plotnikov
Date: 2012-01-27 06:49:43 -0500 (Fri, 27 Jan 2012)
New Revision: 5536
Modified:
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/ObjectValue.java
ws/branches/2.3.x/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorTest.java
Log:
EXOJCR-1714: fixed REST keep entries order in returned Map instance objects
Modified:
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java
===================================================================
---
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java 2012-01-27
09:03:12 UTC (rev 5535)
+++
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java 2012-01-27
11:49:43 UTC (rev 5536)
@@ -39,7 +39,6 @@
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -356,7 +355,8 @@
}
case MAP :
JsonValue jsonObject = new ObjectValue();
- Map<String, Object> map = new HashMap<String,
Object>((Map<String, Object>)object);
+
+ Map<String, Object> map = (Map<String, Object>)object;
Set<String> keys = map.keySet();
for (String k : keys)
{
Modified:
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/ObjectValue.java
===================================================================
---
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/ObjectValue.java 2012-01-27
09:03:12 UTC (rev 5535)
+++
ws/branches/2.3.x/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/value/impl/ObjectValue.java 2012-01-27
11:49:43 UTC (rev 5536)
@@ -23,8 +23,8 @@
import org.exoplatform.ws.frameworks.json.impl.JsonUtils;
import org.exoplatform.ws.frameworks.json.value.JsonValue;
-import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.Map;
/**
@@ -37,7 +37,7 @@
/**
* Children.
*/
- private final Map<String, JsonValue> children = new HashMap<String,
JsonValue>();
+ private final Map<String, JsonValue> children = new LinkedHashMap<String,
JsonValue>();
/**
* {@inheritDoc}
Modified:
ws/branches/2.3.x/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorTest.java
===================================================================
---
ws/branches/2.3.x/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorTest.java 2012-01-27
09:03:12 UTC (rev 5535)
+++
ws/branches/2.3.x/exo.ws.frameworks.json/src/test/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorTest.java 2012-01-27
11:49:43 UTC (rev 5536)
@@ -34,6 +34,7 @@
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -115,6 +116,28 @@
//System.out.println(jsonValue);
}
+ public void testMapOrder() throws Exception
+ {
+ Map<String, Book> m = new LinkedHashMap<String, Book>();
+ m.put("junit", junitBook);
+ m.put("csharp", csharpBook);
+ m.put("js", javaScriptBook);
+ JsonValue jsonValue = new JsonGeneratorImpl().createJsonObjectFromMap(m);
+ assertTrue(jsonValue.isObject());
+ Iterator<String> iter = jsonValue.getKeys();
+ String[] array = m.keySet().toArray(new String[0]);
+ // Json iterator and source map must have same order, but we see that
+ // Json is ordered by default
+ int i = 0;
+ while (iter.hasNext())
+ {
+ String key = iter.next();
+ System.out.println("Key:" + key + " , map key:" +
array[i]);
+ assertEquals(key, array[i]);
+ i++;
+ }
+ }
+
public void testMapNull() throws Exception
{
Map<String, Book> m = null;
Show replies by date