[mb-commits] r13697 - in search_server/trunk: index/src/main/java/org/musicbrainz/search/index index/src/test/java/org/musicbrainz/search/index servlet/src/main/java/org/musicbrainz/search/servlet/mmd2 servlet/src/main/resources servlet/src/test/java/org/musicbrainz/search/servlet

[email protected] Wed, 05 Jun 2013 08:07:37 +0000
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1Uk8kr-0000xO-6b@wiley>
Author: ijabz
Date: 2013-06-05 08:07:36 +0000 (Wed, 05 Jun 2013)
New Revision: 13697

Modified:
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventComparator.java
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventHelper.java
   search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java
   search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.java
   search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ResultsWriter.java
   search_server/trunk/servlet/src/main/resources/oxml.xml
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java
Log:
SEARCH-273:Sort mutiple release events by area name if date the same.
Ouput area id,name and sort-name

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CommonTables.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -174,16 +174,21 @@
         StopWatch clock = new StopWatch();
         clock.start();
 
+        //Note:assumes a release country always only maps to an area with a single 3166_1 code
         getDbConnection().createStatement().execute(
                 "CREATE TEMPORARY TABLE tmp_release_event AS " +
-                        " SELECT release, r2.code as country, " +
-                        "  date_year, date_month, date_day"+
+                        " SELECT r1.release, r2.code as country, " +
+                        "  r1.date_year, r1.date_month, r1.date_day," +
+                        "  a1.gid as gid, a1.name as name, a1.sort_name as sort_name" +
                         " FROM release_country r1 " +
+                        " LEFT JOIN area a1 " +
+                        " ON r1.country = a1.id" +
                         " LEFT JOIN iso_3166_1 r2 " +
-                        " ON r1.country = r2.area " +
+                        " ON a1.id = r2.area " +
                         " UNION" +
                         " SELECT release, null as country, " +
-                        "  date_year, date_month, date_day"+
+                        "  date_year, date_month, date_day," +
+                        "  null as gid, null as name, null as sort_name"+
                         " FROM release_unknown_country r1 ");
         clock.stop();
         System.out.println("tmp_release_event     :Finished:" + Utils.formatClock(clock));

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/RecordingIndex.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -200,7 +200,7 @@
 
         releaseEvents =
                 " SELECT release, country, " +
-                        "   date_year, date_month, date_day"+
+                        "   date_year, date_month, date_day, name, sort_name, gid"+
                         " FROM tmp_release_event r " +
                         " WHERE r.release in ";
 
@@ -593,12 +593,18 @@
             ReleaseEvent re = of.createReleaseEvent();
             re.setDate(Strings.emptyToNull(Utils.formatDate(rs.getInt("date_year"), rs.getInt("date_month"), rs.getInt("date_day"))));
             String iso_code=rs.getString("country");
+            String gid       = rs.getString("gid");
+            String name      = rs.getString("name");
+            String sort_name = rs.getString("sort_name");
             if(iso_code!=null) {
                 Iso31661CodeList isoList = of.createIso31661CodeList();
                 isoList.getIso31661Code().add(iso_code);
                 DefAreaElementInner area = of.createDefAreaElementInner();
                 area.setIso31661CodeList(isoList);
                 re.setArea(area);
+                area.setId(gid);
+                area.setName(name);
+                area.setSortName(sort_name);
             }
             release.getReleaseEventList().getReleaseEvent().add(re);
         }

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventComparator.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventComparator.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventComparator.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -31,8 +31,10 @@
 
 import com.google.common.base.CharMatcher;
 import com.google.common.base.Strings;
+import org.musicbrainz.mmd2.DefAreaElementInner;
 import org.musicbrainz.mmd2.ReleaseEvent;
 
+import java.awt.geom.Area;
 import java.util.Comparator;
 
 public class ReleaseEventComparator implements Comparator<ReleaseEvent> {
@@ -57,10 +59,25 @@
         String date1 = padDate(Strings.nullToEmpty(releaseEvent1.getDate()));
         String date2 = padDate(Strings.nullToEmpty(releaseEvent2.getDate()));
 
+        int result;
         try {
             Integer date1Number = Integer.parseInt(date1);
             Integer date2Number = Integer.parseInt(date2);
-            return date1Number.compareTo(date2Number);
+            result= date1Number.compareTo(date2Number);
+            if(result!=0) {
+                return result;
+            }
+
+            DefAreaElementInner a1=releaseEvent1.getArea();
+            DefAreaElementInner a2=releaseEvent2.getArea();
+
+            if(a1!=null && a2!=null) {
+                return Strings.nullToEmpty(a1.getName()).compareTo(Strings.nullToEmpty(a2.getName()));
+            }
+            else {
+                return 0;
+            }
+
         }
         catch(NumberFormatException nfe) {
             return 0;

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventHelper.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventHelper.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseEventHelper.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -56,13 +56,19 @@
                 releaseEventList = releaseEvents.get(entityId);
             }
 
-            String iso_code = rs.getString("country");
+            String iso_code  = rs.getString("country");
+            String gid       = rs.getString("gid");
+            String name      = rs.getString("name");
+            String sort_name = rs.getString("sort_name");
             ReleaseEvent releaseEvent = of.createReleaseEvent();
             if(iso_code!=null) {
                 Iso31661CodeList isoList = of.createIso31661CodeList();
                 isoList.getIso31661Code().add(iso_code);
                 DefAreaElementInner area = of.createDefAreaElementInner();
                 area.setIso31661CodeList(isoList);
+                area.setId(gid);
+                area.setName(name);
+                area.setSortName(sort_name);
                 releaseEvent.setArea(area);
             }
             releaseEvent.setDate(Strings.emptyToNull(Utils.formatDate(rs.getInt("date_year"), rs.getInt("date_month"), rs.getInt("date_day"))));

Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndex.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -173,7 +173,7 @@
 
         addPreparedStatement("RELEASE_EVENTS",
                 " SELECT release, country, " +
-                "   date_year, date_month, date_day"+
+                "   date_year, date_month, date_day, name, sort_name, gid"+
                 " FROM tmp_release_event r1 " +
                 " WHERE release BETWEEN ? AND ? ");
 

Modified: search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.java
===================================================================
--- search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/RecordingIndexTest.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -66,15 +66,15 @@
                 " VALUES (491240, 'c3b8dbc9-c1ff-4743-9015-8d762819134e', 2, 1, 491240, 1, 1, 1, 1)");
 
         stmt.addBatch("INSERT INTO release_country (release, country, date_year, date_month, date_day) values (491240, 221, 1970,1,1)");
-        stmt.addBatch("INSERT INTO area (id, name) VALUES (221, 'United Kingdom')");
+        stmt.addBatch("INSERT INTO area (id, gid, name, sort_name) VALUES (221, 'c3b8dbc9-c1ff-4743-9015-8d762819134g','United Kingdom','Kingdom of UK')");
         stmt.addBatch("INSERT INTO iso_3166_1 (area, code) VALUES (221, 'GB')");
 
         stmt.addBatch("INSERT INTO release_country (release, country) values (491240, 222)");
-        stmt.addBatch("INSERT INTO area (id, name) VALUES (222, 'Albania')");
+        stmt.addBatch("INSERT INTO area (id, gid, name, sort_name) VALUES (222, 'c3b8dbc9-c1ff-4743-9015-8d762819134e','Abania','Albania')");
         stmt.addBatch("INSERT INTO iso_3166_1 (area, code) VALUES (222, 'AF')");
 
         stmt.addBatch("INSERT INTO release_country (release, country) values (491240, 2)");
-        stmt.addBatch("INSERT INTO area (id, name) VALUES (2, 'Afghanistan')");
+        stmt.addBatch("INSERT INTO area (id, gid,name, sort_name) VALUES (2,  'c3b8dbc9-c1ff-4743-9015-8d762819134f','Afghanistan','Afghanistan')");
         stmt.addBatch("INSERT INTO iso_3166_1 (area, code) VALUES (2, 'AN')");
 
         stmt.addBatch("INSERT INTO release_unknown_country (release, date_year) values (491240, 1950)");
@@ -868,8 +868,16 @@
             assertEquals("1950", rel.getReleaseEvent().get(0).getDate());
             assertEquals("GB", rel.getReleaseEvent().get(1).getArea().getIso31661CodeList().getIso31661Code().get(0));
             assertEquals("1970-01-01", rel.getReleaseEvent().get(1).getDate());
+            assertEquals("c3b8dbc9-c1ff-4743-0901-58d762819134", rel.getReleaseEvent().get(1).getArea().getId());
+            assertEquals("United Kingdom", rel.getReleaseEvent().get(1).getArea().getName());
+            assertEquals("Kingdom of UK", rel.getReleaseEvent().get(1).getArea().getSortName());
+
             assertEquals("AF", rel.getReleaseEvent().get(2).getArea().getIso31661CodeList().getIso31661Code().get(0));
             assertEquals(null, rel.getReleaseEvent().get(2).getDate());
+            assertEquals("c3b8dbc9-c1ff-4743-9015-8d762819134e", rel.getReleaseEvent().get(2).getArea().getId());
+            assertEquals("Abania", rel.getReleaseEvent().get(2).getArea().getName());
+            assertEquals("Albania", rel.getReleaseEvent().get(2).getArea().getSortName());
+
             assertEquals("AN", rel.getReleaseEvent().get(3).getArea().getIso31661CodeList().getIso31661Code().get(0));
             assertEquals(null, rel.getReleaseEvent().get(3).getDate());
 

Modified: search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java
===================================================================
--- search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/ReleaseIndexTest.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -7,6 +7,7 @@
 import org.junit.Test;
 import org.musicbrainz.mmd2.ArtistCredit;
 import org.musicbrainz.mmd2.Release;
+import org.musicbrainz.mmd2.ReleaseEvent;
 import org.musicbrainz.mmd2.ReleaseEventList;
 
 import java.sql.Statement;
@@ -137,15 +138,15 @@
                 " VALUES (491240, 'c3b8dbc9-c1ff-4743-9015-8d762819134e', 2, 1, 491240, 1, 1, 1)");
 
         stmt.addBatch("INSERT INTO release_country (release, country, date_year, date_month, date_day) values (491240, 221, 1970,1,1)");
-        stmt.addBatch("INSERT INTO area (id, name) VALUES (221, 'United Kingdom')");
+        stmt.addBatch("INSERT INTO area (id, gid, name, sort_name) VALUES (221, 'c3b8dbc9-c1ff-4743-9015-8d762819134g','United Kingdom','Kingdom of UK')");
         stmt.addBatch("INSERT INTO iso_3166_1 (area, code) VALUES (221, 'GB')");
 
         stmt.addBatch("INSERT INTO release_country (release, country) values (491240, 222)");
-        stmt.addBatch("INSERT INTO area (id, name) VALUES (222, 'Albania')");
+        stmt.addBatch("INSERT INTO area (id, gid, name, sort_name) VALUES (222, 'c3b8dbc9-c1ff-4743-9015-8d762819134e','Abania','Albania')");
         stmt.addBatch("INSERT INTO iso_3166_1 (area, code) VALUES (222, 'AF')");
 
         stmt.addBatch("INSERT INTO release_country (release, country) values (491240, 2)");
-        stmt.addBatch("INSERT INTO area (id, name) VALUES (2, 'Afghanistan')");
+        stmt.addBatch("INSERT INTO area (id, gid,name, sort_name) VALUES (2,  'c3b8dbc9-c1ff-4743-9015-8d762819134f','Afghanistan','Afghanistan')");
         stmt.addBatch("INSERT INTO iso_3166_1 (area, code) VALUES (2, 'AN')");
 
         stmt.addBatch("INSERT INTO release_unknown_country (release, date_year) values (491240, 1950)");
@@ -891,7 +892,6 @@
             assertEquals(1,release.getMediumList().getCount().intValue());
             assertEquals(1,release.getMediumList().getTrackCount().intValue());
 
-
         }
         ir.close();
     }
@@ -927,13 +927,25 @@
             assertEquals("1950", release.getDate());
             assertEquals(null, rel.getReleaseEvent().get(0).getArea());
             assertEquals("1950", rel.getReleaseEvent().get(0).getDate());
+
             assertEquals("GB", rel.getReleaseEvent().get(1).getArea().getIso31661CodeList().getIso31661Code().get(0));
             assertEquals("1970-01-01", rel.getReleaseEvent().get(1).getDate());
+            assertEquals("c3b8dbc9-c1ff-4743-0901-58d762819134", rel.getReleaseEvent().get(1).getArea().getId());
+            assertEquals("United Kingdom", rel.getReleaseEvent().get(1).getArea().getName());
+            assertEquals("Kingdom of UK", rel.getReleaseEvent().get(1).getArea().getSortName());
+
+
             assertEquals("AF", rel.getReleaseEvent().get(2).getArea().getIso31661CodeList().getIso31661Code().get(0));
             assertEquals(null, rel.getReleaseEvent().get(2).getDate());
+            assertEquals("c3b8dbc9-c1ff-4743-9015-8d762819134e", rel.getReleaseEvent().get(2).getArea().getId());
+            assertEquals("Abania", rel.getReleaseEvent().get(2).getArea().getName());
+            assertEquals("Albania", rel.getReleaseEvent().get(2).getArea().getSortName());
+
             assertEquals("AN", rel.getReleaseEvent().get(3).getArea().getIso31661CodeList().getIso31661Code().get(0));
             assertEquals(null, rel.getReleaseEvent().get(3).getDate());
-
+            assertEquals("c3b8dbc9-c1ff-4743-9015-8d762819134f", rel.getReleaseEvent().get(3).getArea().getId());
+            assertEquals("Afghanistan", rel.getReleaseEvent().get(3).getArea().getName());
+            assertEquals("Afghanistan", rel.getReleaseEvent().get(3).getArea().getSortName());
         }
         ir.close();
     }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/RecordingWriter.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -28,21 +28,19 @@
 
 package org.musicbrainz.search.servlet.mmd2;
 
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.NumericUtils;
-import org.musicbrainz.mmd2.*;
+import org.musicbrainz.mmd2.Metadata;
+import org.musicbrainz.mmd2.ObjectFactory;
+import org.musicbrainz.mmd2.Recording;
+import org.musicbrainz.mmd2.RecordingList;
 import org.musicbrainz.search.MbDocument;
-import org.musicbrainz.search.index.ArtistCreditHelper;
 import org.musicbrainz.search.index.MMDSerializer;
 import org.musicbrainz.search.index.RecordingIndexField;
-import org.musicbrainz.search.index.ReleaseIndexField;
 import org.musicbrainz.search.servlet.Result;
 import org.musicbrainz.search.servlet.Results;
 
 import java.io.IOException;
 import java.math.BigInteger;
 import java.util.List;
-import java.util.Locale;
 
 public class RecordingWriter extends ResultsWriter {
 

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ResultsWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ResultsWriter.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/ResultsWriter.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -142,7 +142,7 @@
     }
 
     /**
-     * Write the results to provider writer as Xml
+     * Write the results to provider writer in required format
      *
      *
      * @param out

Modified: search_server/trunk/servlet/src/main/resources/oxml.xml
===================================================================
--- search_server/trunk/servlet/src/main/resources/oxml.xml	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/servlet/src/main/resources/oxml.xml	2013-06-05 08:07:36 UTC (rev 13697)
@@ -115,6 +115,11 @@
                 <xml-element java-attribute="tagList" xml-path="."/>
             </java-attributes>
         </java-type>
+        <java-type name="Release">
+            <java-attributes>
+                <xml-element java-attribute="tagList" xml-path="."/>
+            </java-attributes>
+        </java-type>
         <java-type name="TagList">
             <java-attributes>
                 <xml-element java-attribute="tag" name="tags"/>

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindRecordingTest.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -154,6 +154,10 @@
             Iso31661CodeList    isoList   = of.createIso31661CodeList();
             isoList.getIso31661Code().add("UK");
             areaInner.setIso31661CodeList(isoList);
+            areaInner.setIso31661CodeList(isoList);
+            areaInner.setId("1fa8aa07-c688-1f7c-734b-4d82e528b09b");
+            areaInner.setName("United Kingdom");
+            areaInner.setSortName("Kingdom of United");
             re.setArea(areaInner);
             re.setDate("1970-01-01");
             rel.getReleaseEvent().add(re);
@@ -546,7 +550,11 @@
         assertTrue(output.contains("indie</name>"));
         assertTrue(output.contains("<track id=\"c3b8dbc9-c1ff-4743-9015-8d762819134e\"><number>A4</number><title>Gravitational Lens</title><length>233000</length><artist-credit><name-credit><artist id=\"2302e264-1cf0-4d1f-aca7-2a6f89e34b36\"><name>Pig Incident</name><sort-name>Incident, Pig</sort-name></artist></name-credit></artist-credit></track>"));
         assertTrue(output.contains("<puid-list><puid id=\"1d9e8ed6-3893-4d3b-aa7d-72e79609e386\"/></puid-list>"));
-        assertTrue(output.contains("<release-event-list><release-event><date>1970-01-01</date><area><iso-3166-1-code-list><iso-3166-1-code>UK</iso-3166-1-code></iso-3166-1-code-list></area></release-event>"));
+        assertTrue(output.contains("<area id=\"1fa8aa07-c688-1f7c-734b-4d82e528b09b\">"));
+        assertTrue(output.contains("<name>United Kingdom</name>"));
+        assertTrue(output.contains("<sort-name>Kingdom of United</sort-name>"));
+        assertTrue(output.contains("<iso-3166-1-code-list><iso-3166-1-code>UK</iso-3166-1-code></iso-3166-1-code-list>"));
+
     }
 
 
@@ -581,7 +589,11 @@
         assertTrue(output.contains("\"tag\":[{\"count\":101,\"name\":\"indie\"}"));
         assertTrue(output.contains("\"puid-list\":{\"puid\":[{\"id\":\"1d9e8ed6-3893-4d3b-aa7d-72e79609e386\"}]}"));
         assertTrue(output.contains("\"artist-credit\":{\"name-credit\":[{\"artist\":{\"id\":\"89ad4ac3-39f7-470e-963a-56509c546377\",\"name\":\"Various Artists\"}"));
-        assertTrue(output.contains("\"release-event-list\":{\"release-event\":[{\"date\":\"1970-01-01\",\"area\":{\"iso-3166-1-code-list\":{\"iso-3166-1-code\":[\"UK\"]}}}]}"));
+        assertTrue(output.contains("\"release-event-list\":{\"release-event\":[{\"date\":\"1970-01-01\""));
+        assertTrue(output.contains("\"id\":\"1fa8aa07-c688-1f7c-734b-4d82e528b09b\","));
+        assertTrue(output.contains("\"name\":\"United Kingdom\","));
+        assertTrue(output.contains("\"sort-name\":\"Kingdom of United\","));
+        assertTrue(output.contains("\"iso-3166-1-code-list\":{\"iso-3166-1-code\":[\"UK\"]}"));
     }
 
     @Test
@@ -617,8 +629,12 @@
         assertTrue(output.contains("\"position\":1"));
         assertTrue(output.contains("\"track-count\":10"));
         assertTrue(output.contains("\"secondary-types\":[\"Compilation\"]}"));
-        assertTrue(output.contains("\"release-events\":[{\"date\":\"1970-01-01\",\"area\":{\"iso-3166-1-codes\":[\"UK\"]}}]"));
+        assertTrue(output.contains("\"release-events\":[{\"date\":\"1970-01-01\",\"area\""));
         assertTrue(output.contains("{\"id\":\"c3b8dbc9-c1ff-4743-9015-8d762819134e\""));
+        assertTrue(output.contains("\"id\":\"1fa8aa07-c688-1f7c-734b-4d82e528b09b\","));
+        assertTrue(output.contains("\"name\":\"United Kingdom\","));
+        assertTrue(output.contains("\"sort-name\":\"Kingdom of United\","));
+        assertTrue(output.contains("\"iso-3166-1-codes\":[\"UK\"]"));
     }
 
     @Test
@@ -635,4 +651,5 @@
         System.out.println("Json New Pretty is" + output);
         assertTrue(output.contains("\"offset\" : 0"));
     }
+
 }

Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java	2013-06-05 04:51:08 UTC (rev 13696)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindReleaseTest.java	2013-06-05 08:07:36 UTC (rev 13697)
@@ -168,6 +168,9 @@
             Iso31661CodeList    isoList   = of.createIso31661CodeList();
             isoList.getIso31661Code().add("GB");
             areaInner.setIso31661CodeList(isoList);
+            areaInner.setId("1fa8aa07-c688-1f7c-734b-4d82e528b09b");
+            areaInner.setName("United Kingdom");
+            areaInner.setSortName("Kingdom of United");
             re.setDate("2005");
             re.setArea(areaInner);
             rel.getReleaseEvent().add(re);
@@ -771,6 +774,9 @@
         assertTrue(output.contains("<track-list count=\"10\""));
         assertTrue(output.contains("<date>2005</date>"));
         assertTrue(output.contains("<country>GB</country>"));
+        assertTrue(output.contains("<area id=\"1fa8aa07-c688-1f7c-734b-4d82e528b09b\">"));
+        assertTrue(output.contains("<name>United Kingdom</name>"));
+        assertTrue(output.contains("<sort-name>Kingdom of United</sort-name>"));
         assertTrue(output.contains("<format>Vinyl</format>"));
         assertTrue(output.contains("<asin>B00004Y6O9</asin>"));
         assertTrue(output.contains("<track-count>17</track-count>"));
@@ -809,7 +815,10 @@
         assertTrue(output.contains("\"asin\":\"B00004Y6O9\""));
         assertTrue(output.contains("\"track-count\":17"));
         assertTrue(output.contains("\"secondary-type-list\":{\"secondary-type\":[\"Live\",\"Compilation\"]}}"));
-        assertTrue(output.contains("{\"release-event\":[{\"date\":\"2005\",\"area\":{\"iso-3166-1-code-list\":{\"iso-3166-1-code\":[\"GB\"]}}}]}"));
+        assertTrue(output.contains("{\"release-event\":[{\"date\":\"2005\""));
+        assertTrue(output.contains("\"name\":\"United Kingdom\","));
+        assertTrue(output.contains("\"sort-name\":\"Kingdom of United\","));
+        assertTrue(output.contains("\"id\":\"1fa8aa07-c688-1f7c-734b-4d82e528b09b\","));
     }
 
     @Test
@@ -842,8 +851,12 @@
         assertTrue(output.contains("\"label-info\""));
         assertTrue(output.contains("\"catalog-number\":\"WRATHCD-25\""));
         assertTrue(output.contains("\"primary-type\":\"Album\""));
-        assertTrue(output.contains("\"release-events\":[{\"date\":\"2005\",\"area\":{\"iso-3166-1-codes\":[\"GB\"]}}]"));
+        assertTrue(output.contains("\"release-events\":[{\"date\":\"2005\""));
         assertTrue(output.contains("\"secondary-types\":[\"Live\",\"Compilation\"]}"));
+        assertTrue(output.contains("\"name\":\"United Kingdom\","));
+        assertTrue(output.contains("\"sort-name\":\"Kingdom of United\","));
+        assertTrue(output.contains("\"id\":\"1fa8aa07-c688-1f7c-734b-4d82e528b09b\","));
+
     }
 
     @Test