You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2016/02/04 11:09:16 UTC
[13/50] [abbrv] ignite git commit: IGNITE-2191 - Support classes with
the same simple name for Binary marshaller - Fixes #398.
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);