@Test public void testSerializationConfig() { final SerializationConfig serializationConfig = clientConfig.getSerializationConfig(); assertEquals(3, serializationConfig.getPortableVersion()); final Map<Integer, String> dsClasses = serializationConfig.getDataSerializableFactoryClasses(); assertEquals(1, dsClasses.size()); assertEquals("com.hazelcast.examples.DataSerializableFactory", dsClasses.get(1)); final Map<Integer, String> pfClasses = serializationConfig.getPortableFactoryClasses(); assertEquals(1, pfClasses.size()); assertEquals("com.hazelcast.examples.PortableFactory", pfClasses.get(2)); final Collection<SerializerConfig> serializerConfigs = serializationConfig.getSerializerConfigs(); assertEquals(1, serializerConfigs.size()); final SerializerConfig serializerConfig = serializerConfigs.iterator().next(); assertEquals("com.hazelcast.examples.DummyType", serializerConfig.getTypeClassName()); assertEquals("com.hazelcast.examples.SerializerFactory", serializerConfig.getClassName()); final GlobalSerializerConfig globalSerializerConfig = serializationConfig.getGlobalSerializerConfig(); assertEquals( "com.hazelcast.examples.GlobalSerializerFactory", globalSerializerConfig.getClassName()); assertEquals(ByteOrder.BIG_ENDIAN, serializationConfig.getByteOrder()); assertEquals(true, serializationConfig.isCheckClassDefErrors()); assertEquals(false, serializationConfig.isAllowUnsafe()); assertEquals(false, serializationConfig.isEnableCompression()); assertEquals(true, serializationConfig.isEnableSharedObject()); assertEquals(true, serializationConfig.isUseNativeByteOrder()); }
@Test public void testSerializationConfig() { SerializationConfig serializationConfig = config.getSerializationConfig(); assertEquals(ByteOrder.BIG_ENDIAN, serializationConfig.getByteOrder()); assertEquals(false, serializationConfig.isCheckClassDefErrors()); assertEquals(13, serializationConfig.getPortableVersion()); Map<Integer, String> dataSerializableFactoryClasses = serializationConfig.getDataSerializableFactoryClasses(); assertFalse(dataSerializableFactoryClasses.isEmpty()); assertEquals( DummyDataSerializableFactory.class.getName(), dataSerializableFactoryClasses.get(1)); Map<Integer, DataSerializableFactory> dataSerializableFactories = serializationConfig.getDataSerializableFactories(); assertFalse(dataSerializableFactories.isEmpty()); assertEquals(DummyDataSerializableFactory.class, dataSerializableFactories.get(2).getClass()); Map<Integer, String> portableFactoryClasses = serializationConfig.getPortableFactoryClasses(); assertFalse(portableFactoryClasses.isEmpty()); assertEquals(DummyPortableFactory.class.getName(), portableFactoryClasses.get(1)); Map<Integer, PortableFactory> portableFactories = serializationConfig.getPortableFactories(); assertFalse(portableFactories.isEmpty()); assertEquals(DummyPortableFactory.class, portableFactories.get(2).getClass()); Collection<SerializerConfig> serializerConfigs = serializationConfig.getSerializerConfigs(); assertFalse(serializerConfigs.isEmpty()); GlobalSerializerConfig globalSerializerConfig = serializationConfig.getGlobalSerializerConfig(); assertNotNull(globalSerializerConfig); assertEquals(dummySerializer, globalSerializerConfig.getImplementation()); }
@Test public void testGlobalSerializer_withOverrideJavaSerializable() { GlobalSerializerConfig globalSerializerConfig = new GlobalSerializerConfig(); globalSerializerConfig.setOverrideJavaSerialization(true); final AtomicInteger writeCounter = new AtomicInteger(); final AtomicInteger readCounter = new AtomicInteger(); final JavaSerializer javaSerializer = new JavaSerializer(true, false); SerializationConfig serializationConfig = new SerializationConfig() .setGlobalSerializerConfig( globalSerializerConfig.setImplementation( new StreamSerializer<Object>() { @Override public void write(ObjectDataOutput out, Object v) throws IOException { writeCounter.incrementAndGet(); if (v instanceof Serializable) { out.writeBoolean(true); javaSerializer.write(out, v); } else if (v instanceof DummyValue) { out.writeBoolean(false); out.writeUTF(((DummyValue) v).s); out.writeInt(((DummyValue) v).k); } } @Override public Object read(ObjectDataInput in) throws IOException { readCounter.incrementAndGet(); boolean java = in.readBoolean(); if (java) { return javaSerializer.read(in); } return new DummyValue(in.readUTF(), in.readInt()); } public int getTypeId() { return 123; } public void destroy() {} })); SerializationService ss1 = new DefaultSerializationServiceBuilder().setConfig(serializationConfig).build(); DummyValue value = new DummyValue("test", 111); Data data1 = ss1.toData(value); Data data2 = ss1.toData(new Foo()); Assert.assertNotNull(data1); Assert.assertNotNull(data2); assertEquals(2, writeCounter.get()); SerializationService ss2 = new DefaultSerializationServiceBuilder().setConfig(serializationConfig).build(); Object o1 = ss2.toObject(data1); Object o2 = ss2.toObject(data2); Assert.assertEquals(value, o1); Assert.assertNotNull(o2); assertEquals(2, readCounter.get()); }