Search in sources :

Example 36 with GenericRecord

use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.

the class GenericRecordTest method testGenericRecordToStringValidJson.

@Test
public void testGenericRecordToStringValidJson() throws IOException {
    CompactSerializationConfig compactSerializationConfig = new CompactSerializationConfig();
    compactSerializationConfig.setEnabled(true);
    InternalSerializationService serializationService = new DefaultSerializationServiceBuilder().setSchemaService(schemaService).setConfig(new SerializationConfig().setCompactSerializationConfig(compactSerializationConfig)).build();
    MainDTO expectedDTO = createMainDTO();
    expectedDTO.nullableBool = null;
    expectedDTO.p.localDateTimes[0] = null;
    Data data = serializationService.toData(expectedDTO);
    assertTrue(data.isCompact());
    // internal generic record created on the servers on query
    InternalGenericRecord internalGenericRecord = serializationService.readAsInternalGenericRecord(data);
    String string = internalGenericRecord.toString();
    Json.parse(string);
    // generic record read from a remote instance without classes on the classpath
    List<String> excludes = Collections.singletonList("example.serialization");
    FilteringClassLoader classLoader = new FilteringClassLoader(excludes, null);
    ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
    try {
        Thread.currentThread().setContextClassLoader(classLoader);
        InternalSerializationService ss2 = new DefaultSerializationServiceBuilder().setSchemaService(schemaService).setClassLoader(classLoader).setConfig(new SerializationConfig().setCompactSerializationConfig(new CompactSerializationConfig())).build();
        GenericRecord genericRecord = ss2.toObject(data);
        Json.parse(genericRecord.toString());
        // generic record build by API
        GenericRecord apiGenericRecord = createCompactGenericRecord(expectedDTO);
        Json.parse(apiGenericRecord.toString());
    } finally {
        Thread.currentThread().setContextClassLoader(contextClassLoader);
    }
}
Also used : DefaultSerializationServiceBuilder(com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder) CompactSerializationConfig(com.hazelcast.config.CompactSerializationConfig) SerializationConfig(com.hazelcast.config.SerializationConfig) CompactSerializationConfig(com.hazelcast.config.CompactSerializationConfig) MainDTO(example.serialization.MainDTO) CompactTestUtil.createMainDTO(com.hazelcast.internal.serialization.impl.compact.CompactTestUtil.createMainDTO) FilteringClassLoader(com.hazelcast.internal.util.FilteringClassLoader) FilteringClassLoader(com.hazelcast.internal.util.FilteringClassLoader) Data(com.hazelcast.internal.serialization.Data) InternalSerializationService(com.hazelcast.internal.serialization.InternalSerializationService) InternalGenericRecord(com.hazelcast.internal.serialization.impl.InternalGenericRecord) GenericRecord(com.hazelcast.nio.serialization.GenericRecord) CompactTestUtil.createCompactGenericRecord(com.hazelcast.internal.serialization.impl.compact.CompactTestUtil.createCompactGenericRecord) InternalGenericRecord(com.hazelcast.internal.serialization.impl.InternalGenericRecord) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 37 with GenericRecord

use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.

the class GenericRecordTest method testBuildFromObjectCreatedViaAPI.

@Test
public void testBuildFromObjectCreatedViaAPI() {
    GenericRecordBuilder builder = compact("fooBarTypeName");
    builder.setInt32("foo", 1);
    assertTrue(trySetAndGetMessage("foo", 5, builder).startsWith("Field can only be written once"));
    builder.setInt64("bar", 1231L);
    GenericRecord genericRecord = builder.build();
    GenericRecordBuilder recordBuilder = genericRecord.newBuilder();
    recordBuilder.setInt32("foo", 2);
    assertTrue(trySetAndGetMessage("foo", 5, recordBuilder).startsWith("Field can only be written once"));
    assertTrue(trySetAndGetMessage("notExisting", 3, recordBuilder).startsWith("Invalid field name"));
    assertTrue(tryBuildAndGetMessage(recordBuilder).startsWith("Found an unset field"));
    recordBuilder.setInt64("bar", 100);
    GenericRecord newRecord = recordBuilder.build();
    assertEquals(2, newRecord.getInt32("foo"));
    assertEquals(100, newRecord.getInt64("bar"));
}
Also used : GenericRecordBuilder(com.hazelcast.nio.serialization.GenericRecordBuilder) InternalGenericRecord(com.hazelcast.internal.serialization.impl.InternalGenericRecord) GenericRecord(com.hazelcast.nio.serialization.GenericRecord) CompactTestUtil.createCompactGenericRecord(com.hazelcast.internal.serialization.impl.compact.CompactTestUtil.createCompactGenericRecord) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 38 with GenericRecord

use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.

the class CompactStreamSerializerTest method testGenericRecordHashcode_Equals.

@Test
public void testGenericRecordHashcode_Equals() {
    SerializationService serializationService = createSerializationService();
    MainDTO expectedDTO = createMainDTO();
    GenericRecord expectedGenericRecord = createCompactGenericRecord(expectedDTO);
    Data data = serializationService.toData(expectedGenericRecord);
    Object object = serializationService.toObject(data);
    GenericRecord genericRecord = (GenericRecord) object;
    assertTrue(expectedGenericRecord.equals(genericRecord));
    assertTrue(genericRecord.equals(expectedGenericRecord));
    assertEquals(expectedGenericRecord.hashCode(), genericRecord.hashCode());
}
Also used : MainDTO(example.serialization.MainDTO) CompactTestUtil.createMainDTO(com.hazelcast.internal.serialization.impl.compact.CompactTestUtil.createMainDTO) InternalSerializationService(com.hazelcast.internal.serialization.InternalSerializationService) SerializationService(com.hazelcast.internal.serialization.SerializationService) Data(com.hazelcast.internal.serialization.Data) GenericRecord(com.hazelcast.nio.serialization.GenericRecord) CompactTestUtil.createCompactGenericRecord(com.hazelcast.internal.serialization.impl.compact.CompactTestUtil.createCompactGenericRecord) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 39 with GenericRecord

use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.

the class CompactWithSchemaStreamSerializerTest method testFromGenericRecord.

@Test
public void testFromGenericRecord() {
    SerializationService serializationService = createSerializationService();
    GenericRecord expected = compact("fooBarTypeName").setInt32("foo", 1).setInt64("bar", 1231L).setGenericRecord("nested", compact("nested").setBoolean("bool", true).build()).build();
    Data data = serializationService.toDataWithSchema(expected);
    // Create a second schema service so that schemas are not shared across these two
    // This is to make sure that toObject call will use the schema in the data
    SerializationService serializationService2 = createSerializationService();
    GenericRecord actual = serializationService2.toObject(data);
    assertEquals(expected, actual);
}
Also used : InternalSerializationService(com.hazelcast.internal.serialization.InternalSerializationService) SerializationService(com.hazelcast.internal.serialization.SerializationService) Data(com.hazelcast.internal.serialization.Data) GenericRecord(com.hazelcast.nio.serialization.GenericRecord) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 40 with GenericRecord

use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.

the class CompactWithSchemaStreamSerializerTest method testReadAsGenericRecord.

@Test
public void testReadAsGenericRecord() throws IOException {
    SerializationService serializationService = createSerializationService();
    GenericRecord expected = compact("fooBarTypeName").setInt32("foo", 1).setInt64("bar", 1231L).setGenericRecord("nested", compact("nested").setBoolean("bool", true).build()).build();
    Data data = serializationService.toDataWithSchema(expected);
    // Create a second schema service so that schemas are not shared across these two
    // This is to make sure that toObject call will use the schema in the data
    InternalSerializationService serializationService2 = createSerializationService();
    GenericRecord actual = serializationService2.toObject(data);
    assertEquals(expected, actual);
}
Also used : InternalSerializationService(com.hazelcast.internal.serialization.InternalSerializationService) SerializationService(com.hazelcast.internal.serialization.SerializationService) Data(com.hazelcast.internal.serialization.Data) InternalSerializationService(com.hazelcast.internal.serialization.InternalSerializationService) GenericRecord(com.hazelcast.nio.serialization.GenericRecord) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Aggregations

GenericRecord (com.hazelcast.nio.serialization.GenericRecord)45 Test (org.junit.Test)36 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)23 QuickTest (com.hazelcast.test.annotation.QuickTest)23 Data (com.hazelcast.internal.serialization.Data)15 GenericRecordBuilder (com.hazelcast.nio.serialization.GenericRecordBuilder)13 SerializationService (com.hazelcast.internal.serialization.SerializationService)11 InternalGenericRecord (com.hazelcast.internal.serialization.impl.InternalGenericRecord)11 CompactTestUtil.createCompactGenericRecord (com.hazelcast.internal.serialization.impl.compact.CompactTestUtil.createCompactGenericRecord)11 PortableTest (com.hazelcast.internal.serialization.impl.portable.PortableTest)11 HazelcastInstance (com.hazelcast.core.HazelcastInstance)10 InternalSerializationService (com.hazelcast.internal.serialization.InternalSerializationService)10 ClassDefinition (com.hazelcast.nio.serialization.ClassDefinition)8 ClassDefinitionBuilder (com.hazelcast.nio.serialization.ClassDefinitionBuilder)8 SerializationConfig (com.hazelcast.config.SerializationConfig)7 MainPortable (com.hazelcast.internal.serialization.impl.portable.MainPortable)5 NamedPortable (com.hazelcast.internal.serialization.impl.portable.NamedPortable)5 BigDecimal (java.math.BigDecimal)4 LocalDate (java.time.LocalDate)4 LocalDateTime (java.time.LocalDateTime)4