protected static FSTConfiguration createAndroidDefaultConfiguration(ConcurrentHashMap<FieldKey,FSTClazzInfo.FSTFieldInfo> shared) { final Objenesis genesis = new ObjenesisStd(); FSTConfiguration conf = new FSTConfiguration(shared) { @Override public FSTClassInstantiator getInstantiator(Class clazz) { return new FSTObjenesisInstantiator(genesis,clazz); } }; initDefaultFstConfigurationInternal(conf); if ( isAndroid ) { try { conf.registerSerializer(Class.forName("com.google.gson.internal.LinkedTreeMap"), new FSTMapSerializer(), true); } catch (ClassNotFoundException e) { //silent } try { conf.registerSerializer(Class.forName("com.google.gson.internal.LinkedHashTreeMap"), new FSTMapSerializer(), true); } catch (ClassNotFoundException e) { //silent } } return conf; }
protected static FSTConfiguration createAndroidDefaultConfiguration(ConcurrentHashMap<FieldKey,FSTClazzInfo.FSTFieldInfo> shared) { final Objenesis genesis = new ObjenesisStd(); FSTConfiguration conf = new FSTConfiguration(shared) { @Override public FSTClassInstantiator getInstantiator(Class clazz) { return new FSTObjenesisInstantiator(genesis,clazz); } }; initDefaultFstConfigurationInternal(conf); if ( isAndroid ) { try { conf.registerSerializer(Class.forName("com.google.gson.internal.LinkedTreeMap"), new FSTMapSerializer(), true); } catch (ClassNotFoundException e) { //silent } try { conf.registerSerializer(Class.forName("com.google.gson.internal.LinkedHashTreeMap"), new FSTMapSerializer(), true); } catch (ClassNotFoundException e) { //silent } } return conf; }
{"float[]", "[F"} }); res.registerSerializer( BigDecimal.class, new FSTJSonSerializers.BigDecSerializer(), true ); return res;
{"float[]", "[F"} }); res.registerSerializer( BigDecimal.class, new FSTJSonSerializers.BigDecSerializer(), true ); return res;
protected void configureSerialization(Coding code) { conf.registerSerializer(Actor.class,new ActorRefSerializer(this),true); conf.registerSerializer(CallbackWrapper.class, new CallbackRefSerializer(this), true); conf.registerSerializer(Spore.class, new SporeRefSerializer(), true); conf.registerSerializer(Timeout.class, new TimeoutSerializer(), false); conf.registerClass(RemoteCallEntry.class); conf.registerClass(Spore.class); conf.registerClass(CallbackWrapper.class); conf.registerClass(Actor.class); }
protected void configureSerialization(Coding code) { conf.registerSerializer(Actor.class,new ActorRefSerializer(this),true); conf.registerSerializer(CallbackWrapper.class, new CallbackRefSerializer(this), true); conf.registerSerializer(Spore.class, new SporeRefSerializer(), true); conf.registerSerializer(Timeout.class, new TimeoutSerializer(), false); conf.registerClass(RemoteCallEntry.class); conf.registerClass(Spore.class); conf.registerClass(CallbackWrapper.class); conf.registerClass(Actor.class); }
public FstJSONSerializer(Properties props) { conf.setJsonFieldNames(new FSTJsonFieldNames("@type", "@object", "@stype", "@seq", "@enum", "@value", "@ref")); conf.registerCrossPlatformClassMapping("list", "java.util.Arrays$ArrayList"); conf.registerSerializer(Timestamp.class, new FSTDateSerializer(), true); conf.registerSerializer(Date.class, new FSTDateSerializer(), true); if(props != null) props.forEach((k,v) -> { String key = (String)k; String value = (String)v; if(key.startsWith(PREFIX) && value != null && value.trim().length() > 0) conf.registerCrossPlatformClassMapping(key.substring(PREFIX.length()), value.trim()); }); }
/** * Create a FST serializer (faster and more efficient than Java default serialization). * * @param useUnsafe <code>true</code> to use <code>sun.misc.Unsafe</code> class, otherwise, a fallback is * used. * @param securityProvider the security provider, needed to decode key pairs correctly */ public FSTSerializer(boolean useUnsafe, ISecurityClassProvider securityProvider) { if (!useUnsafe) { // don't use sun.misc.Unsafe class FSTUtil.unFlaggedUnsafe = null; logger.debug("Disabled the use of 'sun.misc.Unsafe' for the serialization"); } fst = FSTConfiguration.createDefaultConfiguration(); // register all often serialized classes for speedup. Note that every peer should have the same // configuration, which also depends on the order! Changing these registrations might break backward // compatibility! fst.registerClass(UserProfile.class, FolderIndex.class, FileIndex.class, UserPermission.class, Locations.class, UserPublicKey.class, MetaFileSmall.class, MetaFileLarge.class, FileVersion.class, MetaChunk.class, Chunk.class, EncryptedNetworkContent.class, ContactPeerMessage.class, ResponseMessage.class); // for all public / private keys for full compatibility among multiple security providers fst.registerClass(securityProvider.getRSAPublicKeyClass(), securityProvider.getRSAPrivateKeyClass(), securityProvider.getRSAPrivateCrtKeyClass()); // for performance improvements, native TomP2P classes which are serialized quite often fst.registerClass(PeerAddress.class, PeerSocketAddress.class, Number160.class); // Since PeerAddresses are serialized very often, this is just an efficiency improvement fst.registerSerializer(PeerAddress.class, new FSTPeerAddressSerializer(), false); // register the acceptance reply enum fst.registerClass(AcceptanceReply.class); }