Search in sources :

Example 11 with PortableFactory

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

the class PortableHookLoader method load.

private void load() {
    try {
        final Iterator<PortableHook> hooks = ServiceLoader.iterator(PortableHook.class, FACTORY_ID, classLoader);
        while (hooks.hasNext()) {
            PortableHook hook = hooks.next();
            final PortableFactory factory = hook.createFactory();
            if (factory != null) {
                register(hook.getFactoryId(), factory);
            }
            final Collection<ClassDefinition> defs = hook.getBuiltinDefinitions();
            if (defs != null && !defs.isEmpty()) {
                definitions.addAll(defs);
            }
        }
    } catch (Exception e) {
        throw ExceptionUtil.rethrow(e);
    }
    if (configuredFactories != null) {
        for (Map.Entry<Integer, ? extends PortableFactory> entry : configuredFactories.entrySet()) {
            register(entry.getKey(), entry.getValue());
        }
    }
}
Also used : PortableHook(com.hazelcast.internal.serialization.PortableHook) ClassDefinition(com.hazelcast.nio.serialization.ClassDefinition) Map(java.util.Map) HashMap(java.util.HashMap) PortableFactory(com.hazelcast.nio.serialization.PortableFactory)

Example 12 with PortableFactory

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

the class DefaultSerializationServiceBuilder method addConfigPortableFactories.

private void addConfigPortableFactories(final Map<Integer, PortableFactory> portableFactories, SerializationConfig config, ClassLoader cl) {
    registerPortableFactories(portableFactories, config);
    buildPortableFactories(portableFactories, config, cl);
    for (PortableFactory f : portableFactories.values()) {
        if (f instanceof HazelcastInstanceAware) {
            ((HazelcastInstanceAware) f).setHazelcastInstance(hazelcastInstance);
        }
    }
}
Also used : HazelcastInstanceAware(com.hazelcast.core.HazelcastInstanceAware) PortableFactory(com.hazelcast.nio.serialization.PortableFactory)

Example 13 with PortableFactory

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

the class DefaultSerializationServiceBuilder method registerPortableFactories.

private void registerPortableFactories(Map<Integer, PortableFactory> portableFactories, SerializationConfig config) {
    for (Map.Entry<Integer, PortableFactory> entry : config.getPortableFactories().entrySet()) {
        int factoryId = entry.getKey();
        PortableFactory factory = entry.getValue();
        if (factoryId <= 0) {
            throw new IllegalArgumentException("PortableFactory factoryId must be positive! -> " + factory);
        }
        if (portableFactories.containsKey(factoryId)) {
            throw new IllegalArgumentException("PortableFactory with factoryId '" + factoryId + "' is already registered!");
        }
        portableFactories.put(factoryId, factory);
    }
}
Also used : HashMap(java.util.HashMap) Map(java.util.Map) PortableFactory(com.hazelcast.nio.serialization.PortableFactory)

Example 14 with PortableFactory

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

the class MapPortableHookTest method testPortableFactory_whenCreatingUnregisteredConstructor_thenThrowException.

@Test(expected = IndexOutOfBoundsException.class)
public void testPortableFactory_whenCreatingUnregisteredConstructor_thenThrowException() {
    MapPortableHook hook = new MapPortableHook();
    PortableFactory factory = hook.createFactory();
    factory.create(-1);
}
Also used : PortableFactory(com.hazelcast.nio.serialization.PortableFactory) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 15 with PortableFactory

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

the class ClientRegressionWithMockNetworkTest method testClientPortableWithoutRegisteringToNode.

@Test
public void testClientPortableWithoutRegisteringToNode() {
    hazelcastFactory.newHazelcastInstance();
    final SerializationConfig serializationConfig = new SerializationConfig();
    serializationConfig.addPortableFactory(5, new PortableFactory() {

        public Portable create(int classId) {
            return new SamplePortable();
        }
    });
    final ClientConfig clientConfig = new ClientConfig();
    clientConfig.setSerializationConfig(serializationConfig);
    final HazelcastInstance client = hazelcastFactory.newHazelcastClient(clientConfig);
    final IMap<Integer, SamplePortable> sampleMap = client.getMap(randomString());
    sampleMap.put(1, new SamplePortable(666));
    final SamplePortable samplePortable = sampleMap.get(1);
    assertEquals(666, samplePortable.a);
}
Also used : Portable(com.hazelcast.nio.serialization.Portable) HazelcastInstance(com.hazelcast.core.HazelcastInstance) SerializationConfig(com.hazelcast.config.SerializationConfig) ClientConfig(com.hazelcast.client.config.ClientConfig) PortableFactory(com.hazelcast.nio.serialization.PortableFactory) QuickTest(com.hazelcast.test.annotation.QuickTest) NightlyTest(com.hazelcast.test.annotation.NightlyTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Aggregations

PortableFactory (com.hazelcast.nio.serialization.PortableFactory)18 Portable (com.hazelcast.nio.serialization.Portable)9 QuickTest (com.hazelcast.test.annotation.QuickTest)9 Test (org.junit.Test)9 ParallelTest (com.hazelcast.test.annotation.ParallelTest)8 ClientConfig (com.hazelcast.client.config.ClientConfig)6 Config (com.hazelcast.config.Config)6 HazelcastInstance (com.hazelcast.core.HazelcastInstance)6 MapStoreConfig (com.hazelcast.config.MapStoreConfig)4 SerializationConfig (com.hazelcast.config.SerializationConfig)3 SqlPredicate (com.hazelcast.query.SqlPredicate)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 Before (org.junit.Before)3 MapIndexConfig (com.hazelcast.config.MapIndexConfig)2 ClassDefinition (com.hazelcast.nio.serialization.ClassDefinition)2 HazelcastSerializationException (com.hazelcast.nio.serialization.HazelcastSerializationException)2 PortableEmployee (com.hazelcast.query.SampleObjects.PortableEmployee)2 NightlyTest (com.hazelcast.test.annotation.NightlyTest)2 Collection (java.util.Collection)2