Repository: incubator-usergrid Updated Branches: refs/heads/USERGRID-250-buffer-size-fix [created] b6a83a4ec
Added test to prove bug with large entities Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/b6a83a4e Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/b6a83a4e Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/b6a83a4e Branch: refs/heads/USERGRID-250-buffer-size-fix Commit: b6a83a4ec3ea65e72093b4b97ba1e70dd2eb757b Parents: 00eb339 Author: Todd Nine <[email protected]> Authored: Tue Nov 18 18:06:09 2014 -0700 Committer: Todd Nine <[email protected]> Committed: Tue Nov 18 18:06:09 2014 -0700 ---------------------------------------------------------------------- .../usergrid/persistence/LargeEntityIT.java | 568 +++++++++++++++++++ 1 file changed, 568 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b6a83a4e/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java ---------------------------------------------------------------------- diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java new file mode 100644 index 0000000..4ce0b27 --- /dev/null +++ b/stack/core/src/test/java/org/apache/usergrid/persistence/LargeEntityIT.java @@ -0,0 +1,568 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.usergrid.persistence; + + +import java.util.Map; + +import org.junit.Rule; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.usergrid.AbstractCoreIT; +import org.apache.usergrid.Application; +import org.apache.usergrid.CoreApplication; +import org.apache.usergrid.cassandra.Concurrent; +import org.apache.usergrid.utils.JsonUtils; + +import static org.junit.Assert.assertEquals; + + +@Concurrent() +public class LargeEntityIT extends AbstractCoreIT { + private static final Logger LOG = LoggerFactory.getLogger( LargeEntityIT.class ); + + @Rule + public Application app = new CoreApplication( setup ); + + + /** + * Tests creating a large entity, then loading it, modifying it, saving it, then loading it again + */ + @Test + public void testLargeEntityCrud() throws Exception { + + LOG.debug( "testLargeEntityCrud" ); + + final Map<String, Object> json = ( Map<String, Object> ) JsonUtils.parse( TEST_DATA ); + + + final EntityManager em = app.getEntityManager(); + + final Entity createReturned = em.create( "test", json ); + + final Entity loadReturnedRef = em.get( createReturned ); + + final Entity loadReturnedId = em.get( createReturned.getUuid() ); + assertEquals( createReturned, loadReturnedRef ); + } + + + private static final String TEST_DATA = + "{\n" + " \"name\": \"p333812236\",\n" + " \"catentryid\": 7176,\n" + " \"productid\": 33381,\n" + + " \"services\": [\n" + " {\n" + " \"id\": 575,\n" + " \"name\": \"Monogram\",\n" + + " \"required\": 0,\n" + " \"attributes\": [\n" + " {\n" + + " \"id\": 80224,\n" + " \"name\": \"Style/Case\",\n" + + " \"value\": \"Block Uppercase\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 3,\n" + " \"label\": \"\",\n" + " \"maxlength\": 10,\n" + + " \"additionalvalidchars\": \"33,34,35,38,39,40,41,43,44,45,46,47,63,64\",\n" + + " \"notes\": \"\"\n" + " },\n" + " {\n" + " \"id\": 80225,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Block Upper- and Lowercase\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"label\": \"\",\n" + + " \"maxlength\": 10,\n" + + " \"additionalvalidchars\": \"33,34,35,38,39,40,41,43,44,45,46,47,63,64\",\n" + + " \"notes\": \"\"\n" + " },\n" + " {\n" + " \"id\": 80234,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Times Bold Uppercase\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"label\": \"\",\n" + + " \"maxlength\": 10,\n" + + " \"additionalvalidchars\": \"33,36,37,38,39,40,41,44,45,46,47,58,59,63\",\n" + + " \"notes\": \"\"\n" + " },\n" + " {\n" + " \"id\": 80235,\n" + + " \"name\": \"Style/Case\",\n" + + " \"value\": \"Times Bold Upper- and Lowercase\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 3,\n" + " \"label\": \"\",\n" + " \"maxlength\": 10,\n" + + " \"additionalvalidchars\": \"33,36,37,38,39,40,41,44,45,46,47,58,59,63\",\n" + + " \"notes\": \"\"\n" + " },\n" + " {\n" + " \"id\": 80237,\n" + + " \"name\": \"Monogram\",\n" + " \"value\": \"text\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 1,\n" + " \"label\": \"\",\n" + + " \"maxlength\": 10,\n" + " \"notes\": \"\"\n" + " },\n" + " {\n" + + " \"id\": 137788,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Black\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137789,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Navy\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137790,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Royal Blue\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137791,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Brown\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137792,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Purple\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137793,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Red\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137794,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Sea Green\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137795,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Hunter Green\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137796,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Dark Green\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137797,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Gold\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137798,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"White\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137799,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Platinum\",\n" + " \"isdefault\": 1,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137800,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Natural\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137801,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Taupe\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137802,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Light Purple\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137803,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Burgundy\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137804,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Teal\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137805,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Mimosa Yellow\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137806,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Turkey Red\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137807,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Lucerne Blue\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137808,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Nickel\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137809,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Orange\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137810,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Standard Blue\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137811,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Cobalt\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137812,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Dark Pink\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137813,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Sage\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137814,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Salmon\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137815,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Lime\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137816,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Rancho Rose\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137817,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Olive\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137818,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Rose\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137819,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Nile Green\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137820,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Dark Khaki\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137821,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Eggplant\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137822,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Cypress\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137823,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Terra Cotta\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137824,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Walnut\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137825,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Burlap\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 137826,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Loden\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 210983,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Copper\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 210984,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Dark Teal\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 216129,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Pink\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 227825,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Dark Brown\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 227826,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Emerald\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 227827,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Mid Blue\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 291205,\n" + " \"name\": \"Style/Case\",\n" + + " \"value\": \"Script Upper/Lower\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 3,\n" + " \"label\": \"\",\n" + " \"maxlength\": 10,\n" + + " \"additionalvalidchars\": \"33,34,35,39,43,44,46,47,63\",\n" + + " \"notes\": \"\"\n" + " },\n" + " {\n" + " \"id\": 291206,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Thin Script Upper/Lower\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"label\": \"\",\n" + + " \"maxlength\": 10,\n" + + " \"additionalvalidchars\": \"33,34,35,38,39,43,44,45,46,47,63\",\n" + + " \"notes\": \"\"\n" + " },\n" + " {\n" + " \"id\": 291207,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Athletic Upper\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"label\": \"\",\n" + + " \"maxlength\": 10,\n" + " \"notes\": \"\"\n" + " },\n" + " {\n" + + " \"id\": 353932,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Isle Green\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " },\n" + " {\n" + + " \"id\": 368998,\n" + " \"name\": \"Thread Color\",\n" + + " \"value\": \"Plum\",\n" + " \"isdefault\": 0,\n" + + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + " }\n" + " ]\n" + + " },\n" + " {\n" + " \"id\": 48071,\n" + + " \"name\": \"Monogram Single Large Letter\",\n" + " \"required\": 0,\n" + + " \"attributes\": [\n" + " {\n" + " \"id\": 291208,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Times Single Upper\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"maxlength\": 1\n" + + " },\n" + " {\n" + " \"id\": 291209,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Heirloom Single Upper\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"maxlength\": 1\n" + + " },\n" + " {\n" + " \"id\": 291210,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Athletic Single Upper\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"maxlength\": 1\n" + + " },\n" + " {\n" + " \"id\": 291211,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Black\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291212,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Brown\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291213,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Burgundy\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291214,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Burlap\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291215,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Cobalt\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291216,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Copper\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291217,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Cypress\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291218,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Brown\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291219,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291220,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Khaki\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291221,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Pink\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291222,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Teal\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291223,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Eggplant\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291224,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Emerald\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291225,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Gold\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291226,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Hunter Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291227,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Light Purple\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291228,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Lime\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291229,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Loden\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291230,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Lucerne Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291231,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Mid Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291232,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Mimosa Yellow\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291233,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Natural\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291234,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Navy\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291235,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Nickel\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291236,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Nile Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291237,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Olive\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291238,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Orange\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291239,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Pink\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291240,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Platinum\",\n" + + " \"isdefault\": 1,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291241,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Purple\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291242,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Rancho Rose\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291243,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Red\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291244,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Rose\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291245,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Royal Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291246,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Sage\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291247,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Salmon\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291248,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Sea Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291249,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Standard Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291250,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Taupe\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291251,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Teal\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291252,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Terra Cotta\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291253,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Turkey Red\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291254,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Walnut\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291255,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"White\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291256,\n" + + " \"name\": \"Monogram Single Line 1\",\n" + " \"value\": \"text\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 1,\n" + " \"maxlength\": 1\n" + + " },\n" + " {\n" + " \"id\": 353933,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Isle Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 368999,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Plum\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " }\n" + " ]\n" + " },\n" + " {\n" + " \"id\": 48072,\n" + + " \"name\": \"Monogram 3-Letter\",\n" + " \"required\": 0,\n" + + " \"attributes\": [\n" + " {\n" + " \"id\": 291257,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Block Stack\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"maxlength\": 1\n" + + " },\n" + " {\n" + " \"id\": 291258,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Flared\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"maxlength\": 3\n" + + " },\n" + " {\n" + " \"id\": 291259,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Classic\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"maxlength\": 3\n" + + " },\n" + " {\n" + " \"id\": 291260,\n" + + " \"name\": \"Style/Case\",\n" + " \"value\": \"Insignia\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 3,\n" + " \"maxlength\": 3\n" + + " },\n" + " {\n" + " \"id\": 291261,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Black\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291262,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Brown\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291263,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Burgundy\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291264,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Burlap\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291265,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Cobalt\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291266,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Copper\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291267,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Cypress\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291268,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Brown\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291269,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291270,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Khaki\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291271,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Pink\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291272,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Dark Teal\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291273,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Eggplant\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291274,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Emerald\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291275,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Gold\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291276,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Hunter Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291277,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Light Purple\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291278,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Lime\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291279,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Loden\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291280,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Lucerne Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291281,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Mid Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291282,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Mimosa Yellow\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291283,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Natural\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291284,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Navy\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291285,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Nickel\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291286,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Nile Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291287,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Olive\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291288,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Orange\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291289,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Pink\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291290,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Platinum\",\n" + + " \"isdefault\": 1,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291291,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Purple\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291292,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Rancho Rose\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291293,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Red\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291294,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Rose\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291295,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Royal Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291296,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Sage\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291297,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Salmon\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291298,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Sea Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291299,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Standard Blue\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291300,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Taupe\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291301,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Teal\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291302,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Terra Cotta\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291303,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Turkey Red\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291304,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Walnut\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291305,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"White\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 291306,\n" + + " \"name\": \"Monogram 3-Letter Line 1\",\n" + " \"value\": \"text\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 1,\n" + " \"maxlength\": 3\n" + + " },\n" + " {\n" + " \"id\": 353934,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Isle Green\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " },\n" + " {\n" + " \"id\": 369000,\n" + + " \"name\": \"Thread Color\",\n" + " \"value\": \"Plum\",\n" + + " \"isdefault\": 0,\n" + " \"sequence\": 4,\n" + " \"maxlength\": 0\n" + + " }\n" + " ]\n" + " },\n" + " {\n" + " \"id\": 3916,\n" + + " \"name\": \"Gift Boxing\",\n" + " \"required\": 0,\n" + " \"attributes\": [\n" + + " {\n" + " \"id\": 317426,\n" + " \"name\": \"Box Style\",\n" + + " \"value\": \"Tan/Green Ribbon\",\n" + " \"isdefault\": 1,\n" + + " \"sequence\": 1,\n" + " \"maxlength\": 0\n" + " }\n" + " ]\n" + + " }\n" + " ]\n" + "}"; +}
