Search in sources :

Example 11 with ObjectDataOutput

use of com.hazelcast.nio.ObjectDataOutput in project hazelcast-jet by hazelcast.

the class HashMapHook method createSerializer.

@Override
@SuppressWarnings("checkstyle:anoninnerlength")
public Serializer createSerializer() {
    return new StreamSerializer<HashMap>() {

        @Override
        public int getTypeId() {
            return SerializerHookConstants.HASH_MAP;
        }

        @Override
        public void destroy() {
        }

        @Override
        @SuppressWarnings("checkstyle:illegaltype")
        public void write(ObjectDataOutput out, HashMap map) throws IOException {
            out.writeInt(map.size());
            for (Object o : map.entrySet()) {
                Map.Entry e = (Map.Entry) o;
                out.writeObject(e.getKey());
                out.writeObject(e.getValue());
            }
        }

        @Override
        @SuppressWarnings("checkstyle:illegaltype")
        public HashMap read(ObjectDataInput in) throws IOException {
            int length = in.readInt();
            HashMap map = new HashMap();
            for (int i = 0; i < length; i++) {
                // noinspection unchecked
                map.put(in.readObject(), in.readObject());
            }
            return map;
        }
    };
}
Also used : ObjectDataOutput(com.hazelcast.nio.ObjectDataOutput) HashMap(java.util.HashMap) StreamSerializer(com.hazelcast.nio.serialization.StreamSerializer) ObjectDataInput(com.hazelcast.nio.ObjectDataInput) Map(java.util.Map) HashMap(java.util.HashMap)

Example 12 with ObjectDataOutput

use of com.hazelcast.nio.ObjectDataOutput in project hazelcast-jet by hazelcast.

the class HashSetHook method createSerializer.

@Override
@SuppressWarnings("checkstyle:anoninnerlength")
public Serializer createSerializer() {
    return new StreamSerializer<HashSet>() {

        @Override
        public int getTypeId() {
            return SerializerHookConstants.HASH_SET;
        }

        @Override
        public void destroy() {
        }

        @Override
        @SuppressWarnings("checkstyle:illegaltype")
        public void write(ObjectDataOutput out, HashSet set) throws IOException {
            out.writeInt(set.size());
            for (Object o : set) {
                out.writeObject(o);
            }
        }

        @Override
        @SuppressWarnings("checkstyle:illegaltype")
        public HashSet read(ObjectDataInput in) throws IOException {
            int length = in.readInt();
            HashSet set = new HashSet();
            for (int i = 0; i < length; i++) {
                // noinspection unchecked
                set.add(in.readObject());
            }
            return set;
        }
    };
}
Also used : ObjectDataOutput(com.hazelcast.nio.ObjectDataOutput) StreamSerializer(com.hazelcast.nio.serialization.StreamSerializer) ObjectDataInput(com.hazelcast.nio.ObjectDataInput) HashSet(java.util.HashSet)

Example 13 with ObjectDataOutput

use of com.hazelcast.nio.ObjectDataOutput in project hazelcast by hazelcast.

the class SerializationIssueTest method testEmptyData.

@Test
public void testEmptyData() {
    SerializationConfig serializationConfig = new SerializationConfig().addSerializerConfig(new SerializerConfig().setTypeClass(SingletonValue.class).setImplementation(new StreamSerializer<SingletonValue>() {

        @Override
        public void write(ObjectDataOutput out, SingletonValue v) throws IOException {
        }

        @Override
        public SingletonValue read(ObjectDataInput in) throws IOException {
            return new SingletonValue();
        }

        @Override
        public int getTypeId() {
            return 123;
        }

        @Override
        public void destroy() {
        }
    }));
    SerializationService ss1 = new DefaultSerializationServiceBuilder().setConfig(serializationConfig).build();
    Data data = ss1.toData(new SingletonValue());
    Assert.assertNotNull(data);
    SerializationService ss2 = new DefaultSerializationServiceBuilder().setConfig(serializationConfig).build();
    Object o = ss2.toObject(data);
    Assert.assertEquals(new SingletonValue(), o);
}
Also used : GlobalSerializerConfig(com.hazelcast.config.GlobalSerializerConfig) SerializerConfig(com.hazelcast.config.SerializerConfig) ObjectDataOutput(com.hazelcast.nio.ObjectDataOutput) SerializationConfig(com.hazelcast.config.SerializationConfig) SerializationService(com.hazelcast.internal.serialization.SerializationService) Data(com.hazelcast.internal.serialization.Data) StreamSerializer(com.hazelcast.nio.serialization.StreamSerializer) ObjectDataInput(com.hazelcast.nio.ObjectDataInput) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 14 with ObjectDataOutput

use of com.hazelcast.nio.ObjectDataOutput in project hazelcast by hazelcast.

the class DataInputOutputTest method testDataStreams.

private void testDataStreams(Object object, ByteOrder byteOrder, boolean allowUnsafe) throws IOException {
    InternalSerializationService ss = createSerializationServiceBuilder().setUseNativeByteOrder(false).setAllowUnsafe(allowUnsafe).setByteOrder(byteOrder).build();
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    ObjectDataOutput out = createObjectDataOutputStream(bout, ss);
    out.writeObject(object);
    byte[] data1 = bout.toByteArray();
    ObjectDataOutput out2 = ss.createObjectDataOutput(1024);
    out2.writeObject(object);
    byte[] data2 = out2.toByteArray();
    assertEquals(data1.length, data2.length);
    assertTrue(Arrays.equals(data1, data2));
    final ByteArrayInputStream bin = new ByteArrayInputStream(data2);
    final ObjectDataInput in = createObjectDataInputStream(bin, ss);
    final Object object1 = in.readObject();
    final ObjectDataInput in2 = ss.createObjectDataInput(data1);
    final Object object2 = in2.readObject();
    Assert.assertEquals(object, object1);
    Assert.assertEquals(object, object2);
}
Also used : ObjectDataOutput(com.hazelcast.nio.ObjectDataOutput) ByteArrayInputStream(java.io.ByteArrayInputStream) InternalSerializationService(com.hazelcast.internal.serialization.InternalSerializationService) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectDataInput(com.hazelcast.nio.ObjectDataInput)

Example 15 with ObjectDataOutput

use of com.hazelcast.nio.ObjectDataOutput in project hazelcast by hazelcast.

the class DataSerializableImplementsVersionedTest method getObjectDataOutput.

// overridden in EE
protected ObjectDataOutput getObjectDataOutput() {
    ObjectDataOutput output = mock(ObjectDataOutput.class, withSettings().extraInterfaces(SerializationServiceSupport.class, DataWriter.class));
    when(((SerializationServiceSupport) output).getSerializationService()).thenReturn(serializationService);
    return output;
}
Also used : ObjectDataOutput(com.hazelcast.nio.ObjectDataOutput) SerializationServiceSupport(com.hazelcast.spi.impl.SerializationServiceSupport) DataWriter(com.hazelcast.internal.nio.DataWriter)

Aggregations

ObjectDataOutput (com.hazelcast.nio.ObjectDataOutput)43 Test (org.junit.Test)15 ObjectDataInput (com.hazelcast.nio.ObjectDataInput)12 QuickTest (com.hazelcast.test.annotation.QuickTest)12 GlobalSerializerConfig (com.hazelcast.config.GlobalSerializerConfig)7 SerializationConfig (com.hazelcast.config.SerializationConfig)6 StreamSerializer (com.hazelcast.nio.serialization.StreamSerializer)6 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)4 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)4 Data (com.hazelcast.internal.serialization.Data)3 SerializationService (com.hazelcast.internal.serialization.SerializationService)3 DefaultSerializationServiceBuilder (com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder)3 HeapData (com.hazelcast.internal.serialization.impl.HeapData)3 Data (com.hazelcast.nio.serialization.Data)3 SerializationService (com.hazelcast.spi.serialization.SerializationService)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 SerializerConfig (com.hazelcast.config.SerializerConfig)2 DataWriter (com.hazelcast.internal.nio.DataWriter)2 InternalSerializationService (com.hazelcast.internal.serialization.InternalSerializationService)2 DataSerializable (com.hazelcast.nio.serialization.DataSerializable)2