http://git-wip-us.apache.org/repos/asf/ignite/blob/62502b2c/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSelfTest.java deleted file mode 100644 index 3b6d0b0..0000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSelfTest.java +++ /dev/null @@ -1,1108 +0,0 @@ -/* - * 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.ignite.internal.binary; - -import java.math.BigDecimal; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import junit.framework.TestCase; -import org.apache.ignite.IgniteBinary; -import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.binary.BinaryIdMapper; -import org.apache.ignite.binary.BinaryObject; -import org.apache.ignite.binary.BinaryObjectBuilder; -import org.apache.ignite.binary.BinaryType; -import org.apache.ignite.binary.BinaryTypeConfiguration; -import org.apache.ignite.configuration.BinaryConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.binary.mutabletest.GridBinaryTestClasses; -import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl; -import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl; -import org.apache.ignite.internal.util.GridUnsafe; -import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.testframework.GridTestUtils; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; -import sun.misc.Unsafe; - -/** - * Binary builder test. - */ -@SuppressWarnings("ResultOfMethodCallIgnored") -public class BinaryObjectBuilderSelfTest extends GridCommonAbstractTest { - /** */ - private static final Unsafe UNSAFE = GridUnsafe.unsafe(); - - /** */ - protected static final long BYTE_ARR_OFF = UNSAFE.arrayBaseOffset(byte[].class); - - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(gridName); - - BinaryTypeConfiguration customTypeCfg = new BinaryTypeConfiguration(); - - customTypeCfg.setTypeName(CustomIdMapper.class.getName()); - customTypeCfg.setIdMapper(new BinaryIdMapper() { - @Override public int typeId(String clsName) { - return ~BinaryInternalIdMapper.defaultInstance().typeId(clsName); - } - - @Override public int fieldId(int typeId, String fieldName) { - return typeId + ~BinaryInternalIdMapper.defaultInstance().fieldId(typeId, fieldName); - } - }); - - BinaryConfiguration bCfg = new BinaryConfiguration(); - - bCfg.setCompactFooter(compactFooter()); - - bCfg.setTypeConfigurations(Arrays.asList( - new BinaryTypeConfiguration(Key.class.getName()), - new BinaryTypeConfiguration(Value.class.getName()), - new BinaryTypeConfiguration("org.gridgain.grid.internal.util.binary.mutabletest.*"), - customTypeCfg)); - - cfg.setBinaryConfiguration(bCfg); - - cfg.setMarshaller(new BinaryMarshaller()); - - return cfg; - } - - /** {@inheritDoc} */ - @Override protected void beforeTestsStarted() throws Exception { - startGrids(1); - } - - /** {@inheritDoc} */ - @Override protected void afterTestsStopped() throws Exception { - stopAllGrids(); - } - - /** - * @return Whether to use compact footer. - */ - protected boolean compactFooter() { - return true; - } - - /** - * - */ - public void testAllFieldsSerialization() { - GridBinaryTestClasses.TestObjectAllTypes obj = new GridBinaryTestClasses.TestObjectAllTypes(); - obj.setDefaultData(); - obj.enumArr = null; - - GridBinaryTestClasses.TestObjectAllTypes deserialized = builder(toBinary(obj)).build().deserialize(); - - GridTestUtils.deepEquals(obj, deserialized); - } - - /** - * @throws Exception If failed. - */ - public void testNullField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(42); - - builder.setField("objField", (Object)null); - - builder.setField("otherField", "value"); - - BinaryObject obj = builder.build(); - - assertNull(obj.field("objField")); - assertEquals("value", obj.field("otherField")); - assertEquals(42, obj.hashCode()); - - builder = builder(obj); - - builder.setField("objField", "value"); - builder.setField("otherField", (Object)null); - - obj = builder.build(); - - assertNull(obj.field("otherField")); - assertEquals("value", obj.field("objField")); - assertEquals(42, obj.hashCode()); - } - - /** - * @throws Exception If failed. - */ - public void testByteField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("byteField", (byte)1); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals((byte) 1, po.<Byte>field("byteField").byteValue()); - } - - /** - * @throws Exception If failed. - */ - public void testShortField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("shortField", (short)1); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals((short)1, po.<Short>field("shortField").shortValue()); - } - - /** - * @throws Exception If failed. - */ - public void testIntField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("intField", 1); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(1, po.<Integer>field("intField").intValue()); - } - - /** - * @throws Exception If failed. - */ - public void testLongField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("longField", 1L); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(1L, po.<Long>field("longField").longValue()); - } - - /** - * @throws Exception If failed. - */ - public void testFloatField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("floatField", 1.0f); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(1.0f, po.<Float>field("floatField").floatValue(), 0); - } - - /** - * @throws Exception If failed. - */ - public void testDoubleField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("doubleField", 1.0d); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(1.0d, po.<Double>field("doubleField").doubleValue(), 0); - } - - /** - * @throws Exception If failed. - */ - public void testCharField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("charField", (char)1); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals((char)1, po.<Character>field("charField").charValue()); - } - - /** - * @throws Exception If failed. - */ - public void testBooleanField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("booleanField", true); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(po.<Boolean>field("booleanField")); - } - - /** - * @throws Exception If failed. - */ - public void testDecimalField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("decimalField", BigDecimal.TEN); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(BigDecimal.TEN, po.<BigDecimal>field("decimalField")); - } - - /** - * @throws Exception If failed. - */ - public void testStringField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("stringField", "str"); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals("str", po.<String>field("stringField")); - } - - /** - * @throws Exception If failed. - */ - public void testDateField() throws Exception { - Date date = new Date(); - - assertEquals(date, builder("C").setField("d", date).build().<Date>field("d")); - } - - /** - * @throws Exception If failed. - */ - public void testTimestampField() throws Exception { - Timestamp ts = new Timestamp(new Date().getTime()); - ts.setNanos(1000); - - assertEquals(ts, builder("C").setField("t", ts).build().<Timestamp>field("t")); - } - - /** - * @throws Exception If failed. - */ - public void testUuidField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - UUID uuid = UUID.randomUUID(); - - builder.setField("uuidField", uuid); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(uuid, po.<UUID>field("uuidField")); - } - - /** - * @throws Exception If failed. - */ - public void testByteArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("byteArrayField", new byte[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new byte[] {1, 2, 3}, po.<byte[]>field("byteArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testShortArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("shortArrayField", new short[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new short[] {1, 2, 3}, po.<short[]>field("shortArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testIntArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("intArrayField", new int[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new int[] {1, 2, 3}, po.<int[]>field("intArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testLongArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("longArrayField", new long[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new long[] {1, 2, 3}, po.<long[]>field("longArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testFloatArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("floatArrayField", new float[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new float[] {1, 2, 3}, po.<float[]>field("floatArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testDoubleArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("doubleArrayField", new double[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new double[] {1, 2, 3}, po.<double[]>field("doubleArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testCharArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("charArrayField", new char[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new char[] {1, 2, 3}, po.<char[]>field("charArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testBooleanArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("booleanArrayField", new boolean[] {true, false}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - boolean[] arr = po.field("booleanArrayField"); - - assertEquals(2, arr.length); - - assertTrue(arr[0]); - assertFalse(arr[1]); - } - - /** - * @throws Exception If failed. - */ - public void testDecimalArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("decimalArrayField", new BigDecimal[] {BigDecimal.ONE, BigDecimal.TEN}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new BigDecimal[] {BigDecimal.ONE, BigDecimal.TEN}, po.<String[]>field("decimalArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testStringArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("stringArrayField", new String[] {"str1", "str2", "str3"}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(new String[] {"str1", "str2", "str3"}, po.<String[]>field("stringArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testDateArrayField() throws Exception { - Date date1 = new Date(); - Date date2 = new Date(date1.getTime() + 1000); - - Date[] dateArr = new Date[] { date1, date2 }; - - assertTrue(Arrays.equals(dateArr, builder("C").setField("da", dateArr).build().<Date[]>field("da"))); - } - - /** - * @throws Exception If failed. - */ - public void testTimestampArrayField() throws Exception { - Timestamp ts1 = new Timestamp(new Date().getTime()); - Timestamp ts2 = new Timestamp(new Date().getTime() + 1000); - - ts1.setNanos(1000); - ts2.setNanos(2000); - - Timestamp[] tsArr = new Timestamp[] { ts1, ts2 }; - - assertTrue(Arrays.equals(tsArr, builder("C").setField("ta", tsArr).build().<Timestamp[]>field("ta"))); - } - - /** - * @throws Exception If failed. - */ - public void testUuidArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - UUID[] arr = new UUID[] {UUID.randomUUID(), UUID.randomUUID()}; - - builder.setField("uuidArrayField", arr); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertTrue(Arrays.equals(arr, po.<UUID[]>field("uuidArrayField"))); - } - - /** - * @throws Exception If failed. - */ - public void testObjectField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("objectField", new Value(1)); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(1, po.<BinaryObject>field("objectField").<Value>deserialize().i); - } - - /** - * @throws Exception If failed. - */ - public void testObjectArrayField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("objectArrayField", new Value[] {new Value(1), new Value(2)}); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - Object[] arr = po.field("objectArrayField"); - - assertEquals(2, arr.length); - - assertEquals(1, ((BinaryObject)arr[0]).<Value>deserialize().i); - assertEquals(2, ((BinaryObject)arr[1]).<Value>deserialize().i); - } - - /** - * @throws Exception If failed. - */ - public void testCollectionField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("collectionField", Arrays.asList(new Value(1), new Value(2))); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - List<BinaryObject> list = po.field("collectionField"); - - assertEquals(2, list.size()); - - assertEquals(1, list.get(0).<Value>deserialize().i); - assertEquals(2, list.get(1).<Value>deserialize().i); - } - - /** - * @throws Exception If failed. - */ - public void testMapField() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("mapField", F.asMap(new Key(1), new Value(1), new Key(2), new Value(2))); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - Map<BinaryObject, BinaryObject> map = po.field("mapField"); - - assertEquals(2, map.size()); - - for (Map.Entry<BinaryObject, BinaryObject> e : map.entrySet()) - assertEquals(e.getKey().<Key>deserialize().i, e.getValue().<Value>deserialize().i); - } - - /** - * @throws Exception If failed. - */ - public void testSeveralFields() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("i", 111); - builder.setField("f", 111.111f); - builder.setField("iArr", new int[] {1, 2, 3}); - builder.setField("obj", new Key(1)); - builder.setField("col", Arrays.asList(new Value(1), new Value(2))); - - BinaryObject po = builder.build(); - - assertEquals("class".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(111, po.<Integer>field("i").intValue()); - assertEquals(111.111f, po.<Float>field("f").floatValue(), 0); - assertTrue(Arrays.equals(new int[] {1, 2, 3}, po.<int[]>field("iArr"))); - assertEquals(1, po.<BinaryObject>field("obj").<Key>deserialize().i); - - List<BinaryObject> list = po.field("col"); - - assertEquals(2, list.size()); - - assertEquals(1, list.get(0).<Value>deserialize().i); - assertEquals(2, list.get(1).<Value>deserialize().i); - } - - /** - * @throws Exception If failed. - */ - public void testOffheapBinary() throws Exception { - BinaryObjectBuilder builder = builder("Class"); - - builder.hashCode(100); - - builder.setField("i", 111); - builder.setField("f", 111.111f); - builder.setField("iArr", new int[] {1, 2, 3}); - builder.setField("obj", new Key(1)); - builder.setField("col", Arrays.asList(new Value(1), new Value(2))); - - BinaryObject po = builder.build(); - - byte[] arr = ((CacheObjectBinaryProcessorImpl)(grid(0)).context().cacheObjects()).marshal(po); - - long ptr = UNSAFE.allocateMemory(arr.length + 5); - - try { - long ptr0 = ptr; - - UNSAFE.putBoolean(null, ptr0++, false); - - UNSAFE.putInt(ptr0, arr.length); - - UNSAFE.copyMemory(arr, BYTE_ARR_OFF, null, ptr0 + 4, arr.length); - - BinaryObject offheapObj = (BinaryObject) - ((CacheObjectBinaryProcessorImpl)(grid(0)).context().cacheObjects()).unmarshal(ptr, false); - - assertEquals(BinaryObjectOffheapImpl.class, offheapObj.getClass()); - - assertEquals("class".hashCode(), offheapObj.type().typeId()); - assertEquals(100, offheapObj.hashCode()); - - assertEquals(111, offheapObj.<Integer>field("i").intValue()); - assertEquals(111.111f, offheapObj.<Float>field("f").floatValue(), 0); - assertTrue(Arrays.equals(new int[] {1, 2, 3}, offheapObj.<int[]>field("iArr"))); - assertEquals(1, offheapObj.<BinaryObject>field("obj").<Key>deserialize().i); - - List<BinaryObject> list = offheapObj.field("col"); - - assertEquals(2, list.size()); - - assertEquals(1, list.get(0).<Value>deserialize().i); - assertEquals(2, list.get(1).<Value>deserialize().i); - - assertEquals(po, offheapObj); - assertEquals(offheapObj, po); - } - finally { - UNSAFE.freeMemory(ptr); - } - } - - /** - * @throws Exception If failed. - */ - public void testBuildAndDeserialize() throws Exception { - BinaryObjectBuilder builder = builder(Value.class.getName()); - - builder.hashCode(100); - - builder.setField("i", 1); - - BinaryObject po = builder.build(); - - assertEquals("value".hashCode(), po.type().typeId()); - assertEquals(100, po.hashCode()); - - assertEquals(1, po.<Value>deserialize().i); - } - - /** - * @throws Exception If failed. - */ - public void testMetaData2() throws Exception { - BinaryObjectBuilder builder = builder("org.test.MetaTest2"); - - builder.setField("objectField", "a", Object.class); - - BinaryObject po = builder.build(); - - BinaryType meta = po.type(); - - assertEquals("MetaTest2", meta.typeName()); - assertEquals("Object", meta.fieldTypeName("objectField")); - } - - /** - * @throws Exception If failed. - */ - public void testMetaData() throws Exception { - BinaryObjectBuilder builder = builder("org.test.MetaTest"); - - builder.hashCode(100); - - builder.setField("intField", 1); - builder.setField("byteArrayField", new byte[] {1, 2, 3}); - - BinaryObject po = builder.build(); - - BinaryType meta = po.type(); - - assertEquals("MetaTest", meta.typeName()); - - Collection<String> fields = meta.fieldNames(); - - assertEquals(2, fields.size()); - - assertTrue(fields.contains("intField")); - assertTrue(fields.contains("byteArrayField")); - - assertEquals("int", meta.fieldTypeName("intField")); - assertEquals("byte[]", meta.fieldTypeName("byteArrayField")); - - builder = builder("org.test.MetaTest"); - - builder.hashCode(100); - - builder.setField("intField", 2); - builder.setField("uuidField", UUID.randomUUID()); - - po = builder.build(); - - meta = po.type(); - - assertEquals("MetaTest", meta.typeName()); - - fields = meta.fieldNames(); - - assertEquals(3, fields.size()); - - assertTrue(fields.contains("intField")); - assertTrue(fields.contains("byteArrayField")); - assertTrue(fields.contains("uuidField")); - - assertEquals("int", meta.fieldTypeName("intField")); - assertEquals("byte[]", meta.fieldTypeName("byteArrayField")); - assertEquals("UUID", meta.fieldTypeName("uuidField")); - } - - /** - * - */ - public void testGetFromCopiedObj() { - BinaryObject objStr = builder(GridBinaryTestClasses.TestObjectAllTypes.class.getName()).setField("str", "aaa").build(); - - BinaryObjectBuilderImpl builder = builder(objStr); - assertEquals("aaa", builder.getField("str")); - - builder.setField("str", "bbb"); - assertEquals("bbb", builder.getField("str")); - - assertNull(builder.getField("i_")); - TestCase.assertEquals("bbb", builder.build().<GridBinaryTestClasses.TestObjectAllTypes>deserialize().str); - } - - /** - * - */ - @SuppressWarnings("unchecked") - public void testCopyFromInnerObjects() { - ArrayList<Object> list = new ArrayList<>(); - list.add(new GridBinaryTestClasses.TestObjectAllTypes()); - list.add(list.get(0)); - - GridBinaryTestClasses.TestObjectContainer c = new GridBinaryTestClasses.TestObjectContainer(list); - - BinaryObjectBuilderImpl builder = builder(toBinary(c)); - builder.<List>getField("foo").add("!!!"); - - BinaryObject res = builder.build(); - - GridBinaryTestClasses.TestObjectContainer deserialized = res.deserialize(); - - List deserializedList = (List)deserialized.foo; - - assertSame(deserializedList.get(0), deserializedList.get(1)); - assertEquals("!!!", deserializedList.get(2)); - assertTrue(deserializedList.get(0) instanceof GridBinaryTestClasses.TestObjectAllTypes); - } - - /** - * - */ - public void testSetBinaryObject() { - // Prepare marshaller context. - CacheObjectBinaryProcessorImpl proc = ((CacheObjectBinaryProcessorImpl)(grid(0)).context().cacheObjects()); - - proc.marshal(new GridBinaryTestClasses.TestObjectContainer()); - proc.marshal(new GridBinaryTestClasses.TestObjectAllTypes()); - - // Actual test. - BinaryObject binaryObj = builder(GridBinaryTestClasses.TestObjectContainer.class.getName()) - .setField("foo", toBinary(new GridBinaryTestClasses.TestObjectAllTypes())) - .build(); - - assertTrue(binaryObj.<GridBinaryTestClasses.TestObjectContainer>deserialize().foo instanceof - GridBinaryTestClasses.TestObjectAllTypes); - } - - /** - * - */ - public void testPlainBinaryObjectCopyFrom() { - GridBinaryTestClasses.TestObjectPlainBinary obj = new GridBinaryTestClasses.TestObjectPlainBinary(toBinary(new GridBinaryTestClasses.TestObjectAllTypes())); - - BinaryObjectBuilderImpl builder = builder(toBinary(obj)); - assertTrue(builder.getField("plainBinary") instanceof BinaryObject); - - GridBinaryTestClasses.TestObjectPlainBinary deserialized = builder.build().deserialize(); - assertTrue(deserialized.plainBinary != null); - } - - /** - * - */ - public void testRemoveFromNewObject() { - BinaryObjectBuilder builder = builder(GridBinaryTestClasses.TestObjectAllTypes.class.getName()); - - builder.setField("str", "a"); - - builder.removeField("str"); - - TestCase.assertNull(builder.build().<GridBinaryTestClasses.TestObjectAllTypes>deserialize().str); - } - - /** - * - */ - public void testRemoveFromExistingObject() { - GridBinaryTestClasses.TestObjectAllTypes obj = new GridBinaryTestClasses.TestObjectAllTypes(); - obj.setDefaultData(); - obj.enumArr = null; - - BinaryObjectBuilder builder = builder(toBinary(obj)); - - builder.removeField("str"); - - BinaryObject binary = builder.build(); - - GridBinaryTestClasses.TestObjectAllTypes deserialzied = binary.deserialize(); - - assertNull(deserialzied.str); - } - - /** - * - */ - public void testRemoveFromExistingObjectAfterGet() { - GridBinaryTestClasses.TestObjectAllTypes obj = new GridBinaryTestClasses.TestObjectAllTypes(); - obj.setDefaultData(); - obj.enumArr = null; - - BinaryObjectBuilderImpl builder = builder(toBinary(obj)); - - builder.getField("i_"); - - builder.removeField("str"); - - TestCase.assertNull(builder.build().<GridBinaryTestClasses.TestObjectAllTypes>deserialize().str); - } - - /** - * @throws IgniteCheckedException If any error occurs. - */ - public void testDontBrokeCyclicDependency() throws IgniteCheckedException { - GridBinaryTestClasses.TestObjectOuter outer = new GridBinaryTestClasses.TestObjectOuter(); - outer.inner = new GridBinaryTestClasses.TestObjectInner(); - outer.inner.outer = outer; - outer.foo = "a"; - - BinaryObjectBuilder builder = builder(toBinary(outer)); - - builder.setField("foo", "b"); - - GridBinaryTestClasses.TestObjectOuter res = builder.build().deserialize(); - - assertEquals("b", res.foo); - assertSame(res, res.inner.outer); - } - - /** - * @return Binaries. - */ - private IgniteBinary binaries() { - return grid(0).binary(); - } - - /** - * @param obj Object. - * @return Binary object. - */ - private BinaryObject toBinary(Object obj) { - return binaries().toBinary(obj); - } - - /** - * @return Builder. - */ - private BinaryObjectBuilder builder(String clsName) { - return binaries().builder(clsName); - } - - /** - * @return Builder. - */ - private BinaryObjectBuilderImpl builder(BinaryObject obj) { - return (BinaryObjectBuilderImpl)binaries().builder(obj); - } - - /** - * - */ - @SuppressWarnings("UnusedDeclaration") - private static class CustomIdMapper { - /** */ - private String str = "a"; - - /** */ - private int i = 10; - } - - /** - */ - @SuppressWarnings("UnusedDeclaration") - private static class Key { - /** */ - private int i; - - /** - */ - private Key() { - // No-op. - } - - /** - * @param i Index. - */ - private Key(int i) { - this.i = i; - } - - /** {@inheritDoc} */ - @Override public boolean equals(Object o) { - if (this == o) - return true; - - if (o == null || getClass() != o.getClass()) - return false; - - Key key = (Key)o; - - return i == key.i; - } - - /** {@inheritDoc} */ - @Override public int hashCode() { - return i; - } - } - - /** - */ - @SuppressWarnings("UnusedDeclaration") - private static class Value { - /** */ - private int i; - - /** - */ - private Value() { - // No-op. - } - - /** - * @param i Index. - */ - private Value(int i) { - this.i = i; - } - } -}
http://git-wip-us.apache.org/repos/asf/ignite/blob/62502b2c/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSimpleNameLowerCaseMappersSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSimpleNameLowerCaseMappersSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSimpleNameLowerCaseMappersSelfTest.java new file mode 100644 index 0000000..da87072 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryObjectBuilderSimpleNameLowerCaseMappersSelfTest.java @@ -0,0 +1,41 @@ +/* + * 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.ignite.internal.binary; + +import org.apache.ignite.binary.BinaryBasicIdMapper; +import org.apache.ignite.binary.BinaryBasicNameMapper; +import org.apache.ignite.configuration.BinaryConfiguration; +import org.apache.ignite.configuration.IgniteConfiguration; + +/** + * Binary builder test. + */ +@SuppressWarnings("ResultOfMethodCallIgnored") +public class BinaryObjectBuilderSimpleNameLowerCaseMappersSelfTest extends BinaryObjectBuilderDefaultMappersSelfTest { + /** {@inheritDoc} */ + @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { + IgniteConfiguration cfg = super.getConfiguration(gridName); + + BinaryConfiguration bCfg = cfg.getBinaryConfiguration(); + + bCfg.setIdMapper(new BinaryBasicIdMapper(true)); + bCfg.setNameMapper(new BinaryBasicNameMapper(true)); + + return cfg; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/62502b2c/modules/core/src/test/java/org/apache/ignite/internal/binary/BinarySimpleNameTestPropertySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinarySimpleNameTestPropertySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinarySimpleNameTestPropertySelfTest.java new file mode 100644 index 0000000..8f2df9e --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinarySimpleNameTestPropertySelfTest.java @@ -0,0 +1,94 @@ +/* + * 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.ignite.internal.binary; + +import org.apache.ignite.IgniteBinary; +import org.apache.ignite.binary.BinaryObject; +import org.apache.ignite.binary.BinaryObjectBuilder; +import org.apache.ignite.testframework.config.GridTestProperties; +import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; + +import static org.apache.ignite.testframework.config.GridTestProperties.BINARY_MARSHALLER_USE_SIMPLE_NAME_MAPPER; +import static org.apache.ignite.testframework.config.GridTestProperties.MARSH_CLASS_NAME; + +/** + * Tests testing framewrok, epecially BINARY_MARSHALLER_USE_SIMPLE_NAME_MAPPER test property. + */ +public class BinarySimpleNameTestPropertySelfTest extends GridCommonAbstractTest { + /** {@inheritDoc} */ + @Override protected void afterTest() throws Exception { + super.afterTest(); + + stopAllGrids(); + } + + /** + * @throws Exception If failed. + */ + public void testPropertyEnabled() throws Exception { + String useSimpleNameBackup = GridTestProperties.getProperty(BINARY_MARSHALLER_USE_SIMPLE_NAME_MAPPER); + + try { + GridTestProperties.setProperty(BINARY_MARSHALLER_USE_SIMPLE_NAME_MAPPER, "true"); + + checkProperty("TestClass"); + } + finally { + if (useSimpleNameBackup != null) + GridTestProperties.setProperty(BINARY_MARSHALLER_USE_SIMPLE_NAME_MAPPER, "true"); + } + } + + /** + * @throws Exception If failed. + */ + public void testPropertyDisabled() throws Exception { + checkProperty("org.ignite.test.TestClass"); + } + + /** + * @throws Exception If failed. + */ + public void testBinaryDisabled() throws Exception { + assertNull(startGrid().binary()); + } + + /** + * @param expTypeName Type name. + * @throws Exception If failed. + */ + private void checkProperty(String expTypeName) throws Exception { + String marshBackup = GridTestProperties.getProperty(MARSH_CLASS_NAME); + + try { + GridTestProperties.setProperty(MARSH_CLASS_NAME, BinaryMarshaller.class.getName()); + + IgniteBinary binary = startGrid().binary(); + + BinaryObjectBuilder builder = binary.builder("org.ignite.test.TestClass"); + + BinaryObject bObj = builder.build(); + + assertEquals(expTypeName, bObj.type().typeName()); + } + finally { + if (marshBackup != null) + GridTestProperties.setProperty(MARSH_CLASS_NAME, marshBackup); + } + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/62502b2c/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMetaDataSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMetaDataSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMetaDataSelfTest.java deleted file mode 100644 index 5c5d6c3..0000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryMetaDataSelfTest.java +++ /dev/null @@ -1,371 +0,0 @@ -/* - * 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.ignite.internal.binary; - -import java.math.BigDecimal; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import org.apache.ignite.IgniteBinary; -import org.apache.ignite.configuration.BinaryConfiguration; -import org.apache.ignite.configuration.CacheConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.binary.BinaryObjectException; -import org.apache.ignite.binary.Binarylizable; -import org.apache.ignite.binary.BinaryType; -import org.apache.ignite.binary.BinaryObject; -import org.apache.ignite.binary.BinaryRawWriter; -import org.apache.ignite.binary.BinaryReader; -import org.apache.ignite.binary.BinaryWriter; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; - -/** - * Binary meta data test. - */ -public class GridBinaryMetaDataSelfTest extends GridCommonAbstractTest { - /** */ - private static int idx; - - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(gridName); - - BinaryConfiguration bCfg = new BinaryConfiguration(); - - bCfg.setClassNames(Arrays.asList(TestObject1.class.getName(), TestObject2.class.getName())); - - cfg.setBinaryConfiguration(bCfg); - - cfg.setMarshaller(new BinaryMarshaller()); - - CacheConfiguration ccfg = new CacheConfiguration(); - - cfg.setCacheConfiguration(ccfg); - - return cfg; - } - - /** {@inheritDoc} */ - @Override protected void beforeTest() throws Exception { - idx = 0; - - startGrid(); - } - - /** {@inheritDoc} */ - @Override protected void afterTest() throws Exception { - stopGrid(); - } - - /** - * @return Binaries API. - */ - protected IgniteBinary binaries() { - return grid().binary(); - } - - /** - * @throws Exception If failed. - */ - public void testGetAll() throws Exception { - binaries().toBinary(new TestObject2()); - - Collection<BinaryType> metas = binaries().types(); - - assertEquals(2, metas.size()); - - for (BinaryType meta : metas) { - Collection<String> fields; - - switch (meta.typeName()) { - case "TestObject1": - fields = meta.fieldNames(); - - assertEquals(7, fields.size()); - - assertTrue(fields.contains("intVal")); - assertTrue(fields.contains("strVal")); - assertTrue(fields.contains("arrVal")); - assertTrue(fields.contains("obj1Val")); - assertTrue(fields.contains("obj2Val")); - assertTrue(fields.contains("decVal")); - assertTrue(fields.contains("decArrVal")); - - assertEquals("int", meta.fieldTypeName("intVal")); - assertEquals("String", meta.fieldTypeName("strVal")); - assertEquals("byte[]", meta.fieldTypeName("arrVal")); - assertEquals("Object", meta.fieldTypeName("obj1Val")); - assertEquals("Object", meta.fieldTypeName("obj2Val")); - assertEquals("decimal", meta.fieldTypeName("decVal")); - assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); - - break; - - case "TestObject2": - fields = meta.fieldNames(); - - assertEquals(7, fields.size()); - - assertTrue(fields.contains("boolVal")); - assertTrue(fields.contains("dateVal")); - assertTrue(fields.contains("uuidArrVal")); - assertTrue(fields.contains("objVal")); - assertTrue(fields.contains("mapVal")); - assertTrue(fields.contains("decVal")); - assertTrue(fields.contains("decArrVal")); - - assertEquals("boolean", meta.fieldTypeName("boolVal")); - assertEquals("Date", meta.fieldTypeName("dateVal")); - assertEquals("UUID[]", meta.fieldTypeName("uuidArrVal")); - assertEquals("Object", meta.fieldTypeName("objVal")); - assertEquals("Map", meta.fieldTypeName("mapVal")); - assertEquals("decimal", meta.fieldTypeName("decVal")); - assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); - - break; - - default: - assert false : meta.typeName(); - } - } - } - - /** - * @throws Exception If failed. - */ - public void testNoConfiguration() throws Exception { - binaries().toBinary(new TestObject3()); - - assertNotNull(binaries().type(TestObject3.class)); - } - - /** - * @throws Exception If failed. - */ - public void testReflection() throws Exception { - BinaryType meta = binaries().type(TestObject1.class); - - assertNotNull(meta); - - assertEquals("TestObject1", meta.typeName()); - - Collection<String> fields = meta.fieldNames(); - - assertEquals(7, fields.size()); - - assertTrue(fields.contains("intVal")); - assertTrue(fields.contains("strVal")); - assertTrue(fields.contains("arrVal")); - assertTrue(fields.contains("obj1Val")); - assertTrue(fields.contains("obj2Val")); - assertTrue(fields.contains("decVal")); - assertTrue(fields.contains("decArrVal")); - - assertEquals("int", meta.fieldTypeName("intVal")); - assertEquals("String", meta.fieldTypeName("strVal")); - assertEquals("byte[]", meta.fieldTypeName("arrVal")); - assertEquals("Object", meta.fieldTypeName("obj1Val")); - assertEquals("Object", meta.fieldTypeName("obj2Val")); - assertEquals("decimal", meta.fieldTypeName("decVal")); - assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); - } - - /** - * @throws Exception If failed. - */ - public void testBinaryMarshalAware() throws Exception { - binaries().toBinary(new TestObject2()); - - BinaryType meta = binaries().type(TestObject2.class); - - assertNotNull(meta); - - assertEquals("TestObject2", meta.typeName()); - - Collection<String> fields = meta.fieldNames(); - - assertEquals(7, fields.size()); - - assertTrue(fields.contains("boolVal")); - assertTrue(fields.contains("dateVal")); - assertTrue(fields.contains("uuidArrVal")); - assertTrue(fields.contains("objVal")); - assertTrue(fields.contains("mapVal")); - assertTrue(fields.contains("decVal")); - assertTrue(fields.contains("decArrVal")); - - assertEquals("boolean", meta.fieldTypeName("boolVal")); - assertEquals("Date", meta.fieldTypeName("dateVal")); - assertEquals("UUID[]", meta.fieldTypeName("uuidArrVal")); - assertEquals("Object", meta.fieldTypeName("objVal")); - assertEquals("Map", meta.fieldTypeName("mapVal")); - assertEquals("decimal", meta.fieldTypeName("decVal")); - assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); - } - - /** - * @throws Exception If failed. - */ - public void testMerge() throws Exception { - binaries().toBinary(new TestObject2()); - - idx = 1; - - binaries().toBinary(new TestObject2()); - - BinaryType meta = binaries().type(TestObject2.class); - - assertNotNull(meta); - - assertEquals("TestObject2", meta.typeName()); - - Collection<String> fields = meta.fieldNames(); - - assertEquals(9, fields.size()); - - assertTrue(fields.contains("boolVal")); - assertTrue(fields.contains("dateVal")); - assertTrue(fields.contains("uuidArrVal")); - assertTrue(fields.contains("objVal")); - assertTrue(fields.contains("mapVal")); - assertTrue(fields.contains("charVal")); - assertTrue(fields.contains("colVal")); - assertTrue(fields.contains("decVal")); - assertTrue(fields.contains("decArrVal")); - - assertEquals("boolean", meta.fieldTypeName("boolVal")); - assertEquals("Date", meta.fieldTypeName("dateVal")); - assertEquals("UUID[]", meta.fieldTypeName("uuidArrVal")); - assertEquals("Object", meta.fieldTypeName("objVal")); - assertEquals("Map", meta.fieldTypeName("mapVal")); - assertEquals("char", meta.fieldTypeName("charVal")); - assertEquals("Collection", meta.fieldTypeName("colVal")); - assertEquals("decimal", meta.fieldTypeName("decVal")); - assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); - } - - /** - * @throws Exception If failed. - */ - public void testSerializedObject() throws Exception { - TestObject1 obj = new TestObject1(); - - obj.intVal = 10; - obj.strVal = "str"; - obj.arrVal = new byte[] {2, 4, 6}; - obj.obj1Val = null; - obj.obj2Val = new TestObject2(); - obj.decVal = BigDecimal.ZERO; - obj.decArrVal = new BigDecimal[] { BigDecimal.ONE }; - - BinaryObject po = binaries().toBinary(obj); - - info(po.toString()); - - BinaryType meta = po.type(); - - assertNotNull(meta); - - assertEquals("TestObject1", meta.typeName()); - - Collection<String> fields = meta.fieldNames(); - - assertEquals(7, fields.size()); - - assertTrue(fields.contains("intVal")); - assertTrue(fields.contains("strVal")); - assertTrue(fields.contains("arrVal")); - assertTrue(fields.contains("obj1Val")); - assertTrue(fields.contains("obj2Val")); - assertTrue(fields.contains("decVal")); - assertTrue(fields.contains("decArrVal")); - - assertEquals("int", meta.fieldTypeName("intVal")); - assertEquals("String", meta.fieldTypeName("strVal")); - assertEquals("byte[]", meta.fieldTypeName("arrVal")); - assertEquals("Object", meta.fieldTypeName("obj1Val")); - assertEquals("Object", meta.fieldTypeName("obj2Val")); - assertEquals("decimal", meta.fieldTypeName("decVal")); - assertEquals("decimal[]", meta.fieldTypeName("decArrVal")); - } - - /** - */ - @SuppressWarnings("UnusedDeclaration") - private static class TestObject1 { - /** */ - private int intVal; - - /** */ - private String strVal; - - /** */ - private byte[] arrVal; - - /** */ - private TestObject1 obj1Val; - - /** */ - private TestObject2 obj2Val; - - /** */ - private BigDecimal decVal; - - /** */ - private BigDecimal[] decArrVal; - } - - /** - */ - private static class TestObject2 implements Binarylizable { - /** {@inheritDoc} */ - @Override public void writeBinary(BinaryWriter writer) throws BinaryObjectException { - writer.writeBoolean("boolVal", false); - writer.writeDate("dateVal", new Date()); - writer.writeUuidArray("uuidArrVal", null); - writer.writeObject("objVal", null); - writer.writeMap("mapVal", new HashMap<>()); - writer.writeDecimal("decVal", BigDecimal.ZERO); - writer.writeDecimalArray("decArrVal", new BigDecimal[] { BigDecimal.ONE }); - - if (idx == 1) { - writer.writeChar("charVal", (char)0); - writer.writeCollection("colVal", null); - } - - BinaryRawWriter raw = writer.rawWriter(); - - raw.writeChar((char)0); - raw.writeCollection(null); - } - - /** {@inheritDoc} */ - @Override public void readBinary(BinaryReader reader) throws BinaryObjectException { - // No-op. - } - } - - /** - */ - @SuppressWarnings("UnusedDeclaration") - private static class TestObject3 { - /** */ - private int intVal; - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/62502b2c/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java index ae0cfa0..d0d63b3 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/GridBinaryWildcardsSelfTest.java @@ -17,31 +17,67 @@ package org.apache.ignite.internal.binary; +import java.util.Arrays; import java.util.Collection; +import java.util.Map; import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.binary.BinaryBasicIdMapper; import org.apache.ignite.binary.BinaryIdMapper; +import org.apache.ignite.binary.BinaryNameMapper; +import org.apache.ignite.binary.BinaryBasicNameMapper; import org.apache.ignite.binary.BinarySerializer; import org.apache.ignite.binary.BinaryTypeConfiguration; import org.apache.ignite.configuration.BinaryConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; +import org.apache.ignite.internal.binary.test.GridBinaryTestClass1; +import org.apache.ignite.internal.binary.test.GridBinaryTestClass2; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.logger.NullLogger; import org.apache.ignite.marshaller.MarshallerContextTestImpl; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; -import java.util.Arrays; -import java.util.Map; - /** * Wildcards test. */ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { + /** */ + public static final String CLASS1_FULL_NAME = GridBinaryTestClass1.class.getName(); + + /** */ + public static final String CLASS2_FULL_NAME = GridBinaryTestClass2.class.getName(); + + /** */ + public static final String INNER_CLASS_FULL_NAME = GridBinaryTestClass1.class.getName() + "$InnerClass"; + + /** + * @throws Exception If failed. + */ + public void testClassNamesFullNameMapper() throws Exception { + checkClassNames(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(false)); + } + + /** + * @throws Exception If failed. + */ + public void testClassNamesSimpleNameMapper() throws Exception { + checkClassNames(new BinaryBasicNameMapper(true), new BinaryBasicIdMapper(true)); + } + + /** + * @throws Exception If failed. + */ + public void testClassNamesMixedMappers() throws Exception { + checkClassNames(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(true)); + } + /** * @throws Exception If failed. + * @param nameMapper Name mapper. + * @param mapper ID mapper. */ - public void testClassNames() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(Arrays.asList( + private void checkClassNames(BinaryNameMapper nameMapper, BinaryIdMapper mapper) throws Exception { + BinaryMarshaller marsh = binaryMarshaller(nameMapper, mapper, Arrays.asList( new BinaryTypeConfiguration("org.apache.ignite.internal.binary.test.*"), new BinaryTypeConfiguration("unknown.*") )); @@ -52,16 +88,16 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { assertEquals(3, typeIds.size()); - assertTrue(typeIds.containsKey("gridbinarytestclass1".hashCode())); - assertTrue(typeIds.containsKey("gridbinarytestclass2".hashCode())); - assertTrue(typeIds.containsKey("innerclass".hashCode())); + assertTrue(typeIds.containsKey(typeId(CLASS1_FULL_NAME, nameMapper, mapper))); + assertTrue(typeIds.containsKey(typeId(CLASS2_FULL_NAME, nameMapper, mapper))); + assertTrue(typeIds.containsKey(typeId(INNER_CLASS_FULL_NAME, nameMapper, mapper))); } /** * @throws Exception If failed. */ - public void testClassNamesWithMapper() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(new BinaryIdMapper() { + public void testClassNamesCustomMappers() throws Exception { + BinaryMarshaller marsh = binaryMarshaller(null, new BinaryIdMapper() { @SuppressWarnings("IfMayBeConditional") @Override public int typeId(String clsName) { if (clsName.endsWith("1")) @@ -84,20 +120,37 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { BinaryContext ctx = binaryContext(marsh); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); assertEquals(3, typeMappers.size()); - assertEquals(300, typeMappers.get("GridBinaryTestClass1").typeId("GridBinaryTestClass1")); - assertEquals(400, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); - assertEquals(500, typeMappers.get("InnerClass").typeId("InnerClass")); + assertEquals(300, typeMappers.get(CLASS1_FULL_NAME).idMapper().typeId(CLASS1_FULL_NAME)); + assertEquals(400, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); + assertEquals(500, typeMappers.get(INNER_CLASS_FULL_NAME).idMapper().typeId(INNER_CLASS_FULL_NAME)); } /** * @throws Exception If failed. */ - public void testTypeConfigurations() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(Arrays.asList( + public void testTypeConfigurationsSimpleNameIdMapper() throws Exception { + checkTypeConfigurations(new BinaryBasicNameMapper(true), new BinaryBasicIdMapper(true)); + } + + /** + * @throws Exception If failed. + */ + public void testTypeConfigurationsFullNameIdMapper() throws Exception { + checkTypeConfigurations(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(false)); + } + + /** + * + * @param nameMapper Name mapper. + * @param idMapper ID mapper. + * @throws IgniteCheckedException If failed. + */ + private void checkTypeConfigurations(BinaryNameMapper nameMapper, BinaryIdMapper idMapper) throws IgniteCheckedException { + BinaryMarshaller marsh = binaryMarshaller(nameMapper, idMapper, Arrays.asList( new BinaryTypeConfiguration("org.apache.ignite.internal.binary.test.*"), new BinaryTypeConfiguration("unknown.*") )); @@ -108,16 +161,31 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { assertEquals(3, typeIds.size()); - assertTrue(typeIds.containsKey("gridbinarytestclass1".hashCode())); - assertTrue(typeIds.containsKey("gridbinarytestclass2".hashCode())); - assertTrue(typeIds.containsKey("innerclass".hashCode())); + assertTrue(typeIds.containsKey(typeId(CLASS1_FULL_NAME, nameMapper, idMapper))); + assertTrue(typeIds.containsKey(typeId(CLASS2_FULL_NAME, nameMapper, idMapper))); + assertTrue(typeIds.containsKey(typeId(INNER_CLASS_FULL_NAME, nameMapper, idMapper))); + } + + /** + * @param typeName Type name. + * @param nameMapper Name mapper. + * @param mapper ID mapper. @return Type ID. + */ + private int typeId(String typeName, BinaryNameMapper nameMapper, BinaryIdMapper mapper) { + if (mapper == null) + mapper = BinaryContext.defaultIdMapper(); + + if (nameMapper == null) + nameMapper = BinaryContext.defaultNameMapper(); + + return mapper.typeId(nameMapper.typeName(typeName)); } /** * @throws Exception If failed. */ public void testTypeConfigurationsWithGlobalMapper() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(new BinaryIdMapper() { + BinaryMarshaller marsh = binaryMarshaller(new BinaryBasicNameMapper(false), new BinaryIdMapper() { @SuppressWarnings("IfMayBeConditional") @Override public int typeId(String clsName) { if (clsName.endsWith("1")) @@ -140,20 +208,20 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { BinaryContext ctx = binaryContext(marsh); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); assertEquals(3, typeMappers.size()); - assertEquals(300, typeMappers.get("GridBinaryTestClass1").typeId("GridBinaryTestClass1")); - assertEquals(400, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); - assertEquals(500, typeMappers.get("InnerClass").typeId("InnerClass")); + assertEquals(300, typeMappers.get(CLASS1_FULL_NAME).idMapper().typeId(CLASS1_FULL_NAME)); + assertEquals(400, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); + assertEquals(500, typeMappers.get(INNER_CLASS_FULL_NAME).idMapper().typeId(INNER_CLASS_FULL_NAME)); } /** * @throws Exception If failed. */ public void testTypeConfigurationsWithNonGlobalMapper() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(new BinaryIdMapper() { + BinaryMarshaller marsh = binaryMarshaller(new BinaryBasicNameMapper(true), new BinaryIdMapper() { @SuppressWarnings("IfMayBeConditional") @Override public int typeId(String clsName) { if (clsName.endsWith("1")) @@ -176,22 +244,39 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { BinaryContext ctx = binaryContext(marsh); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); assertEquals(3, typeMappers.size()); - assertEquals(300, typeMappers.get("GridBinaryTestClass1").typeId("GridBinaryTestClass1")); - assertEquals(400, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); - assertEquals(500, typeMappers.get("InnerClass").typeId("InnerClass")); + assertEquals(300, typeMappers.get(CLASS1_FULL_NAME).idMapper().typeId(CLASS1_FULL_NAME)); + assertEquals(400, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); + assertEquals(500, typeMappers.get(INNER_CLASS_FULL_NAME).idMapper().typeId(INNER_CLASS_FULL_NAME)); } /** * @throws Exception If failed. */ - public void testOverride() throws Exception { + public void testOverrideIdMapperSimpleNameMapper() throws Exception { + checkOverrideNameMapper(new BinaryBasicNameMapper(true), new BinaryBasicIdMapper(true)); + } + + /** + * @throws Exception If failed. + */ + public void testOverrideIdMapperFullNameMapper() throws Exception { + checkOverrideNameMapper(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(false)); + } + + /** + * + * @param nameMapper Name mapper. + * @param mapper Mapper. + * @throws IgniteCheckedException If failed. + */ + private void checkOverrideIdMapper(BinaryNameMapper nameMapper, BinaryIdMapper mapper) throws IgniteCheckedException { BinaryTypeConfiguration typeCfg = new BinaryTypeConfiguration(); - typeCfg.setTypeName("GridBinaryTestClass2"); + typeCfg.setTypeName(CLASS2_FULL_NAME); typeCfg.setIdMapper(new BinaryIdMapper() { @Override public int typeId(String clsName) { return 100; @@ -202,7 +287,7 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { } }); - BinaryMarshaller marsh = binaryMarshaller(Arrays.asList( + BinaryMarshaller marsh = binaryMarshaller(nameMapper, mapper, Arrays.asList( new BinaryTypeConfiguration("org.apache.ignite.internal.binary.test.*"), typeCfg)); @@ -212,20 +297,90 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { assertEquals(3, typeIds.size()); - assertTrue(typeIds.containsKey("gridbinarytestclass1".hashCode())); - assertTrue(typeIds.containsKey("innerclass".hashCode())); - assertFalse(typeIds.containsKey(100)); + assertTrue(typeIds.containsKey(typeId(CLASS1_FULL_NAME, nameMapper, mapper))); + assertTrue(typeIds.containsKey(typeId(INNER_CLASS_FULL_NAME, nameMapper, mapper))); + assertTrue(typeIds.containsKey(100)); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); - assertEquals(100, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); + assertEquals(100, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); } /** * @throws Exception If failed. */ - public void testClassNamesJar() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(Arrays.asList( + public void testOverrideNameMapperSimpleNameMapper() throws Exception { + checkOverrideNameMapper(new BinaryBasicNameMapper(true), new BinaryBasicIdMapper(true)); + } + + /** + * @throws Exception If failed. + */ + public void testOverrideNameMapperFullNameMapper() throws Exception { + checkOverrideNameMapper(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(false)); + } + + /** + * + * @param nameMapper Name mapper. + * @param mapper Mapper. + * @throws IgniteCheckedException If failed. + */ + private void checkOverrideNameMapper(BinaryNameMapper nameMapper, BinaryIdMapper mapper) throws IgniteCheckedException { + BinaryTypeConfiguration typeCfg = new BinaryTypeConfiguration(); + + typeCfg.setTypeName(CLASS2_FULL_NAME); + typeCfg.setNameMapper(new BinaryNameMapper() { + @Override public String typeName(String clsName) { + return "type2"; + } + + @Override public String fieldName(String fieldName) { + return "field2"; + } + }); + + BinaryMarshaller marsh = binaryMarshaller(nameMapper, mapper, Arrays.asList( + new BinaryTypeConfiguration("org.apache.ignite.internal.binary.test.*"), + typeCfg)); + + BinaryContext ctx = binaryContext(marsh); + + Map<Integer, Class> typeIds = U.field(ctx, "userTypes"); + + assertEquals(3, typeIds.size()); + + assertTrue(typeIds.containsKey(typeId(CLASS1_FULL_NAME, nameMapper, mapper))); + assertTrue(typeIds.containsKey(typeId(INNER_CLASS_FULL_NAME, nameMapper, mapper))); + assertTrue(typeIds.containsKey("type2".hashCode())); + + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); + + assertEquals("type2", typeMappers.get(CLASS2_FULL_NAME).nameMapper().typeName(CLASS2_FULL_NAME)); + } + + /** + * @throws Exception If failed. + */ + public void testClassNamesJarFullNameMapper() throws Exception { + checkClassNamesJar(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(false)); + } + + /** + * @throws Exception If failed. + */ + public void testClassNamesJarSimpleNameMapper() throws Exception { + checkClassNamesJar(new BinaryBasicNameMapper(true), new BinaryBasicIdMapper(true)); + } + + /** + * + * @param nameMapper Name mapper. + * @param idMapper Mapper. + * @throws IgniteCheckedException If failed. + */ + private void checkClassNamesJar(BinaryNameMapper nameMapper, BinaryIdMapper idMapper) throws IgniteCheckedException { + BinaryMarshaller marsh = binaryMarshaller(nameMapper, idMapper, Arrays.asList( new BinaryTypeConfiguration("org.apache.ignite.internal.binary.test.*"), new BinaryTypeConfiguration("unknown.*") )); @@ -236,15 +391,15 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { assertEquals(3, typeIds.size()); - assertTrue(typeIds.containsKey("gridbinarytestclass1".hashCode())); - assertTrue(typeIds.containsKey("gridbinarytestclass2".hashCode())); + assertTrue(typeIds.containsKey(typeId(CLASS1_FULL_NAME, nameMapper, idMapper))); + assertTrue(typeIds.containsKey(typeId(CLASS2_FULL_NAME, nameMapper, idMapper))); } /** * @throws Exception If failed. */ - public void testClassNamesWithMapperJar() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(new BinaryIdMapper() { + public void testClassNamesWithCustomMapperJar() throws Exception { + BinaryMarshaller marsh = binaryMarshaller(new BinaryBasicNameMapper(false), new BinaryIdMapper() { @SuppressWarnings("IfMayBeConditional") @Override public int typeId(String clsName) { if (clsName.endsWith("1")) @@ -265,19 +420,40 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { BinaryContext ctx = binaryContext(marsh); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); assertEquals(3, typeMappers.size()); - assertEquals(300, typeMappers.get("GridBinaryTestClass1").typeId("GridBinaryTestClass1")); - assertEquals(400, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); + assertFalse(((BinaryBasicNameMapper)typeMappers.get(CLASS1_FULL_NAME).nameMapper()).isSimpleName()); + assertEquals(300, typeMappers.get(CLASS1_FULL_NAME).idMapper().typeId(CLASS1_FULL_NAME)); + + assertFalse(((BinaryBasicNameMapper)typeMappers.get(CLASS2_FULL_NAME).nameMapper()).isSimpleName()); + assertEquals(400, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); + } + + /** + * @throws Exception If failed. + */ + public void testTypeConfigurationsJarSimpleNameMapper() throws Exception { + checkTypeConfigurationJar(new BinaryBasicNameMapper(true), new BinaryBasicIdMapper(true)); } /** * @throws Exception If failed. */ - public void testTypeConfigurationsJar() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(Arrays.asList( + public void testTypeConfigurationsJarFullNameMapper() throws Exception { + checkTypeConfigurationJar(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(false)); + } + + /** + * + * @param nameMapper + * @param idMapper Mapper. + * @throws IgniteCheckedException If failed. + */ + private void checkTypeConfigurationJar(BinaryNameMapper nameMapper, BinaryIdMapper idMapper) + throws IgniteCheckedException { + BinaryMarshaller marsh = binaryMarshaller(nameMapper, idMapper, Arrays.asList( new BinaryTypeConfiguration("org.apache.ignite.internal.binary.test.*"), new BinaryTypeConfiguration("unknown.*") )); @@ -288,15 +464,15 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { assertEquals(3, typeIds.size()); - assertTrue(typeIds.containsKey("gridbinarytestclass1".hashCode())); - assertTrue(typeIds.containsKey("gridbinarytestclass2".hashCode())); + assertTrue(typeIds.containsKey(typeId(CLASS1_FULL_NAME, nameMapper, idMapper))); + assertTrue(typeIds.containsKey(typeId(CLASS2_FULL_NAME, nameMapper, idMapper))); } /** * @throws Exception If failed. */ public void testTypeConfigurationsWithGlobalMapperJar() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(new BinaryIdMapper() { + BinaryMarshaller marsh = binaryMarshaller(new BinaryBasicNameMapper(false), new BinaryIdMapper() { @SuppressWarnings("IfMayBeConditional") @Override public int typeId(String clsName) { if (clsName.endsWith("1")) @@ -317,19 +493,22 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { BinaryContext ctx = binaryContext(marsh); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); assertEquals(3, typeMappers.size()); - assertEquals(300, typeMappers.get("GridBinaryTestClass1").typeId("GridBinaryTestClass1")); - assertEquals(400, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); + assertFalse(((BinaryBasicNameMapper)typeMappers.get(CLASS1_FULL_NAME).nameMapper()).isSimpleName()); + assertEquals(300, typeMappers.get(CLASS1_FULL_NAME).idMapper().typeId(CLASS1_FULL_NAME)); + + assertFalse(((BinaryBasicNameMapper)typeMappers.get(CLASS2_FULL_NAME).nameMapper()).isSimpleName()); + assertEquals(400, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); } /** * @throws Exception If failed. */ public void testTypeConfigurationsWithNonGlobalMapperJar() throws Exception { - BinaryMarshaller marsh = binaryMarshaller(new BinaryIdMapper() { + BinaryMarshaller marsh = binaryMarshaller(new BinaryBasicNameMapper(false), new BinaryIdMapper() { @SuppressWarnings("IfMayBeConditional") @Override public int typeId(String clsName) { if (clsName.endsWith("1")) @@ -350,18 +529,38 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { BinaryContext ctx = binaryContext(marsh); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); assertEquals(3, typeMappers.size()); - assertEquals(300, typeMappers.get("GridBinaryTestClass1").typeId("GridBinaryTestClass1")); - assertEquals(400, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); + assertFalse(((BinaryBasicNameMapper)typeMappers.get(CLASS1_FULL_NAME).nameMapper()).isSimpleName()); + assertEquals(300, typeMappers.get(CLASS1_FULL_NAME).idMapper().typeId(CLASS1_FULL_NAME)); + + assertFalse(((BinaryBasicNameMapper)typeMappers.get(CLASS2_FULL_NAME).nameMapper()).isSimpleName()); + assertEquals(400, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); } /** * @throws Exception If failed. */ - public void testOverrideJar() throws Exception { + public void testOverrideJarSimpleNameMapper() throws Exception { + checkOverrideJar(new BinaryBasicNameMapper(true), new BinaryBasicIdMapper(true)); + } + + /** + * @throws Exception If failed. + */ + public void testOverrideJarFullNameMapper() throws Exception { + checkOverrideJar(new BinaryBasicNameMapper(false), new BinaryBasicIdMapper(false)); + } + + /** + * + * @param nameMapper Name mapper. + * @param idMapper Mapper. + * @throws IgniteCheckedException If failed. + */ + private void checkOverrideJar(BinaryNameMapper nameMapper, BinaryIdMapper idMapper) throws IgniteCheckedException { BinaryTypeConfiguration typeCfg = new BinaryTypeConfiguration( "org.apache.ignite.internal.binary.test.GridBinaryTestClass2"); @@ -375,7 +574,7 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { } }); - BinaryMarshaller marsh = binaryMarshaller(Arrays.asList( + BinaryMarshaller marsh = binaryMarshaller(nameMapper, idMapper, Arrays.asList( new BinaryTypeConfiguration("org.apache.ignite.internal.binary.test.*"), typeCfg)); @@ -385,13 +584,14 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { assertEquals(3, typeIds.size()); - assertTrue(typeIds.containsKey("gridbinarytestclass1".hashCode())); + assertTrue(typeIds.containsKey(typeId(CLASS1_FULL_NAME, nameMapper, idMapper))); - Map<String, BinaryIdMapper> typeMappers = U.field(ctx, "typeMappers"); + Map<String, org.apache.ignite.internal.binary.BinaryInternalMapper> typeMappers = U.field(ctx, "cls2Mappers"); assertEquals(3, typeMappers.size()); - assertEquals(100, typeMappers.get("GridBinaryTestClass2").typeId("GridBinaryTestClass2")); + assertEquals(nameMapper, typeMappers.get(CLASS2_FULL_NAME).nameMapper()); + assertEquals(100, typeMappers.get(CLASS2_FULL_NAME).idMapper().typeId(CLASS2_FULL_NAME)); } /** @@ -423,9 +623,10 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { /** * */ - protected BinaryMarshaller binaryMarshaller(BinaryIdMapper mapper, Collection<BinaryTypeConfiguration> cfgs) + protected BinaryMarshaller binaryMarshaller(BinaryNameMapper nameMapper, BinaryIdMapper mapper, + Collection<BinaryTypeConfiguration> cfgs) throws IgniteCheckedException { - return binaryMarshaller(mapper, null, cfgs); + return binaryMarshaller(nameMapper, mapper, null, cfgs); } /** @@ -433,10 +634,14 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { */ protected BinaryMarshaller binaryMarshaller(BinarySerializer serializer, Collection<BinaryTypeConfiguration> cfgs) throws IgniteCheckedException { - return binaryMarshaller(null, serializer, cfgs); + return binaryMarshaller(null, null, serializer, cfgs); } + /** + * + */ protected BinaryMarshaller binaryMarshaller( + BinaryNameMapper nameMapper, BinaryIdMapper mapper, BinarySerializer serializer, Collection<BinaryTypeConfiguration> cfgs @@ -445,6 +650,7 @@ public class GridBinaryWildcardsSelfTest extends GridCommonAbstractTest { BinaryConfiguration bCfg = new BinaryConfiguration(); + bCfg.setNameMapper(nameMapper); bCfg.setIdMapper(mapper); bCfg.setSerializer(serializer);