private static <T> T useForClassesInternal(T config, Class<?>...classes) { SerializationConfig serializationConfig = extractSerializationConfig(config); for (Class<?> clazz : classes) { SerializerConfig serializerConfig = new SerializerConfig(); Serializer<?> serializer = new Serializer(clazz); serializerConfig.setImplementation(serializer); serializerConfig.setTypeClass(clazz); serializationConfig.addSerializerConfig(serializerConfig); } return config; } }
@Test public void testTypedCustomSerializer_configuredBySubclassing() throws Exception { String mapName = randomMapName(); Config config = new Config(); SerializerConfig serializerConfig = new SerializerConfig(); serializerConfig.setClass(MySerializer.class); serializerConfig.setTypeClass(AnotherNonSerializableObject.class); config.getSerializationConfig().getSerializerConfigs().add(serializerConfig); HazelcastInstance member = hazelcastFactory.newHazelcastInstance(config); IMap<Integer, AnotherNonSerializableObject> myMap = member.getMap(mapName); myMap.put(0, new AnotherNonSerializableObject()); AnotherNonSerializableObject fromCache = myMap.get(0); assertEquals("deserialized", fromCache.name); }
protected void fillSerializers(final Node node, SerializationConfig serializationConfig) { for (Node child : childElements(node)) { final String name = cleanNodeName(child); final String value = getTextContent(child); if ("serializer".equals(name)) { SerializerConfig serializerConfig = new SerializerConfig(); final String typeClassName = getAttribute(child, "type-class"); final String className = getAttribute(child, "class-name"); serializerConfig.setTypeClassName(typeClassName); serializerConfig.setClassName(className); serializationConfig.addSerializerConfig(serializerConfig); } else if ("global-serializer".equals(name)) { GlobalSerializerConfig globalSerializerConfig = new GlobalSerializerConfig(); globalSerializerConfig.setClassName(value); String attrValue = getAttribute(child, "override-java-serialization"); boolean overrideJavaSerialization = attrValue != null && getBooleanValue(attrValue.trim()); globalSerializerConfig.setOverrideJavaSerialization(overrideJavaSerialization); serializationConfig.setGlobalSerializerConfig(globalSerializerConfig); } } }
private static void serializers(XmlGenerator gen, SerializationConfig serialization) { GlobalSerializerConfig global = serialization.getGlobalSerializerConfig(); Collection<SerializerConfig> serializers = serialization.getSerializerConfigs(); if (global != null || !serializers.isEmpty()) { gen.open("serializers"); if (global != null) { gen.node("global-serializer", classNameOrImplClass(global.getClassName(), global.getImplementation()), "override-java-serialization", global.isOverrideJavaSerialization()); } for (SerializerConfig serializer : serializers) { gen.node("serializer", null, "type-class", classNameOrImplClass(serializer.getTypeClassName(), serializer.getTypeClass()), "class-name", classNameOrImplClass(serializer.getClassName(), serializer.getImplementation())); } //close serializers gen.close(); } }
public SerializationConfig(SerializationConfig serializationConfig) { portableVersion = serializationConfig.portableVersion; dataSerializableFactoryClasses = new HashMap<Integer, String>(serializationConfig.dataSerializableFactoryClasses); dataSerializableFactories = new HashMap<Integer, DataSerializableFactory>(serializationConfig.dataSerializableFactories); portableFactoryClasses = new HashMap<Integer, String>(serializationConfig.portableFactoryClasses); portableFactories = new HashMap<Integer, PortableFactory>(serializationConfig.portableFactories); globalSerializerConfig = serializationConfig.globalSerializerConfig == null ? null : new GlobalSerializerConfig(serializationConfig.globalSerializerConfig); serializerConfigs = new LinkedList<SerializerConfig>(); for (SerializerConfig serializerConfig : serializationConfig.serializerConfigs) { serializerConfigs.add(new SerializerConfig(serializerConfig)); } checkClassDefErrors = serializationConfig.checkClassDefErrors; useNativeByteOrder = serializationConfig.useNativeByteOrder; byteOrder = serializationConfig.byteOrder; enableCompression = serializationConfig.enableCompression; enableSharedObject = serializationConfig.enableSharedObject; allowUnsafe = serializationConfig.allowUnsafe; classDefinitions = new HashSet<ClassDefinition>(serializationConfig.classDefinitions); javaSerializationFilterConfig = serializationConfig.javaSerializationFilterConfig == null ? null : new JavaSerializationFilterConfig(serializationConfig.javaSerializationFilterConfig); }
Serializer serializer = serializerConfig.getImplementation(); Class serializationType = serializerConfig.getTypeClass(); if (serializationType == null) { try { serializationType = ClassLoaderUtil.loadClass(classLoader, serializerConfig.getTypeClassName()); } catch (ClassNotFoundException e) { throw new HazelcastSerializationException(e);
private Serializer createSerializerInstance(SerializerConfig serializerConfig, Class serializationType) { try { String className = serializerConfig.getClassName(); if (useDefaultConstructorOnly) { return ClassLoaderUtil.newInstance(classLoader, className); } else { return createSerializerInstanceWithFallback(serializationType, className); } } catch (Exception e) { throw new HazelcastSerializationException(e); } }
protected void fillSerializers(final Node node, SerializationConfig serializationConfig) { for (Node child : childElements(node)) { final String name = cleanNodeName(child); final String value = getTextContent(child); if ("serializer".equals(name)) { SerializerConfig serializerConfig = new SerializerConfig(); final String typeClassName = getAttribute(child, "type-class"); final String className = getAttribute(child, "class-name"); serializerConfig.setTypeClassName(typeClassName); serializerConfig.setClassName(className); serializationConfig.addSerializerConfig(serializerConfig); } else if ("global-serializer".equals(name)) { GlobalSerializerConfig globalSerializerConfig = new GlobalSerializerConfig(); globalSerializerConfig.setClassName(value); String attrValue = getAttribute(child, "override-java-serialization"); boolean overrideJavaSerialization = attrValue != null && getBooleanValue(attrValue.trim()); globalSerializerConfig.setOverrideJavaSerialization(overrideJavaSerialization); serializationConfig.setGlobalSerializerConfig(globalSerializerConfig); } } }
private static void serializers(XmlGenerator gen, SerializationConfig serialization) { GlobalSerializerConfig global = serialization.getGlobalSerializerConfig(); Collection<SerializerConfig> serializers = serialization.getSerializerConfigs(); if (global != null || !serializers.isEmpty()) { gen.open("serializers"); if (global != null) { gen.node("global-serializer", classNameOrImplClass(global.getClassName(), global.getImplementation()), "override-java-serialization", global.isOverrideJavaSerialization()); } for (SerializerConfig serializer : serializers) { gen.node("serializer", null, "type-class", classNameOrImplClass(serializer.getTypeClassName(), serializer.getTypeClass()), "class-name", classNameOrImplClass(serializer.getClassName(), serializer.getImplementation())); } //close serializers gen.close(); } }
Serializer serializer = serializerConfig.getImplementation(); Class serializationType = serializerConfig.getTypeClass(); if (serializationType == null) { try { serializationType = ClassLoaderUtil.loadClass(classLoader, serializerConfig.getTypeClassName()); } catch (ClassNotFoundException e) { throw new HazelcastSerializationException(e);
private Serializer createSerializerInstance(SerializerConfig serializerConfig, Class serializationType) { try { String className = serializerConfig.getClassName(); if (useDefaultConstructorOnly) { return ClassLoaderUtil.newInstance(classLoader, className); } else { return createSerializerInstanceWithFallback(serializationType, className); } } catch (Exception e) { throw new HazelcastSerializationException(e); } }
public static void main(String[] args) { Config config = new Config(); config.getSerializationConfig().addSerializerConfig(new SerializerConfig() .setImplementation(new CustomSerializer()) .setTypeClass(CustomSerializable.class)); // Start the Embedded Hazelcast Cluster Member. HazelcastInstance hz = Hazelcast.newHazelcastInstance(config); //CustomSerializer will serialize/deserialize CustomSerializable objects hz.shutdown(); } }
for (SerializerConfig serializer : serializers) { gen.node("serializer", null, "type-class", classNameOrClass(serializer.getTypeClassName(), serializer.getTypeClass()), "class-name", classNameOrImplClass(serializer.getClassName(), serializer.getImplementation()));
private void setupSerializers() { SerializerConfig scBNode = new SerializerConfig().setImplementation(new BNodeSerializer()).setTypeClass(KiWiAnonResource.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scBNode); SerializerConfig scBoolean = new SerializerConfig().setImplementation(new BooleanLiteralSerializer()).setTypeClass(KiWiBooleanLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scBoolean); SerializerConfig scDate = new SerializerConfig().setImplementation(new DateLiteralSerializer()).setTypeClass(KiWiDateLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scDate); SerializerConfig scDouble = new SerializerConfig().setImplementation(new DoubleLiteralSerializer()).setTypeClass(KiWiDoubleLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scDouble); SerializerConfig scInt = new SerializerConfig().setImplementation(new IntLiteralSerializer()).setTypeClass(KiWiIntLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scInt); SerializerConfig scString = new SerializerConfig().setImplementation(new StringLiteralSerializer()).setTypeClass(KiWiStringLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scString); SerializerConfig scTriple = new SerializerConfig().setImplementation(new TripleSerializer()).setTypeClass(KiWiTriple.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scTriple); SerializerConfig scUri = new SerializerConfig().setImplementation(new UriSerializer()).setTypeClass(KiWiUriResource.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scUri); }
for (SerializerConfig serializer : serializers) { gen.node("serializer", null, "type-class", classNameOrClass(serializer.getTypeClassName(), serializer.getTypeClass()), "class-name", classNameOrImplClass(serializer.getClassName(), serializer.getImplementation()));
private void setupSerializers() { SerializerConfig scBNode = new SerializerConfig().setImplementation(new BNodeSerializer()).setTypeClass(KiWiAnonResource.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scBNode); SerializerConfig scBoolean = new SerializerConfig().setImplementation(new BooleanLiteralSerializer()).setTypeClass(KiWiBooleanLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scBoolean); SerializerConfig scDate = new SerializerConfig().setImplementation(new DateLiteralSerializer()).setTypeClass(KiWiDateLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scDate); SerializerConfig scDouble = new SerializerConfig().setImplementation(new DoubleLiteralSerializer()).setTypeClass(KiWiDoubleLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scDouble); SerializerConfig scInt = new SerializerConfig().setImplementation(new IntLiteralSerializer()).setTypeClass(KiWiIntLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scInt); SerializerConfig scString = new SerializerConfig().setImplementation(new StringLiteralSerializer()).setTypeClass(KiWiStringLiteral.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scString); SerializerConfig scTriple = new SerializerConfig().setImplementation(new TripleSerializer()).setTypeClass(KiWiTriple.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scTriple); SerializerConfig scUri = new SerializerConfig().setImplementation(new UriSerializer()).setTypeClass(KiWiUriResource.class); hcConfiguration.getSerializationConfig().addSerializerConfig(scUri); }
public static void main(String[] args) { ClientConfig clientConfig = new ClientConfig(); clientConfig.getSerializationConfig().addSerializerConfig(new SerializerConfig() .setImplementation(new CustomSerializer()) .setTypeClass(CustomSerializable.class)); // Start the Hazelcast Client and connect to an already running Hazelcast Cluster on 127.0.0.1 HazelcastInstance hz = HazelcastClient.newHazelcastClient(clientConfig); //CustomSerializer will serialize/deserialize CustomSerializable objects hz.shutdown(); } }
public static void main(String[] args) { // configure hazelcast serializers to use provided serializer for protobuf SerializerConfig personProtoSerializerConfig = new SerializerConfig() .setTypeClass(Person.class) .setImplementation(new PersonProtoSerializer()); Config config = new Config(); config.getSerializationConfig().addSerializerConfig(personProtoSerializerConfig); // uncomment the following line if you wish to use XML config instead of programmatic configuration // config = new com.hazelcast.config.XmlConfigBuilder().build(); HazelcastInstance hazelcastInstance = newHazelcastInstance(config); IMap<Integer, Person> personsMap = hazelcastInstance.getMap("person"); populate(personsMap); // test member-side serialization System.out.println("---- where email is support@hazelcast.com"); System.out.println(personsMap.values(equal("email", "support@hazelcast.com"))); System.out.println("---- where email is not support@hazelcast.com"); System.out.println(personsMap.values(new SqlPredicate("email != support@hazelcast.com"))); }
xqits.setXQDataFactory(xqFactory); config.getSerializationConfig().getSerializerConfigs().add( new SerializerConfig().setTypeClass(XQItemType.class).setImplementation(xqits)); new SerializerConfig().setTypeClass(XQItem.class).setImplementation(xqis)); new SerializerConfig().setTypeClass(XQSequence.class).setImplementation(xqss));
SerializerConfig sc = new SerializerConfig(). setImplementation(new SessionDataSerializer()). setTypeClass(SessionData.class); config.getSerializationConfig().addSerializerConfig(sc); hazelcastInstance = HazelcastClient.newHazelcastClient(config); SerializerConfig sc = new SerializerConfig(). setImplementation(new SessionDataSerializer()). setTypeClass(SessionData.class); config = new Config(); config.getSerializationConfig().addSerializerConfig(sc);