Java 类com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer 实例源码

项目:Rak    文件:PlainData.java   
private Kryo createKryoInstance() {
    Kryo kryo = new Kryo();

    kryo.register(RakTable.class);
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    kryo.setReferences(false);

    kryo.register(Collections.singletonList("").getClass(), new ArraysAsListSerializer());
    UnmodifiableCollectionsSerializer.registerSerializers(kryo);
    SynchronizedCollectionsSerializer.registerSerializers(kryo);
    kryo.addDefaultSerializer(new ArrayList<>().subList(0, 0).getClass(), new CollectionSerializer());
    kryo.addDefaultSerializer(new LinkedList<>().subList(0, 0).getClass(), new CollectionSerializer());
    kryo.register(UUID.class, new UUIDSerializer());

    for (Class<?> clazz : mCustomSerializers.keySet()) {
        kryo.register(clazz, mCustomSerializers.get(clazz));
    }

    kryo.setInstantiatorStrategy(
            new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));

    return kryo;
}
项目:kryo-mavenized    文件:CompatibleFieldSerializerTest.java   
public void testAddedField () throws FileNotFoundException {
    TestClass object1 = new TestClass();
    object1.child = new TestClass();
    object1.other = new AnotherClass();
    object1.other.value = "meow";

    CompatibleFieldSerializer serializer = new CompatibleFieldSerializer(kryo, TestClass.class);
    serializer.removeField("text");
    kryo.register(TestClass.class, serializer);
    kryo.register(AnotherClass.class, new CompatibleFieldSerializer(kryo, AnotherClass.class));
    roundTrip(74, 74, object1);

    kryo.register(TestClass.class, new CompatibleFieldSerializer(kryo, TestClass.class));
    Object object2 = kryo.readClassAndObject(input);
    assertEquals(object1, object2);
}
项目:Iron    文件:DbStoragePlainFile.java   
private Kryo createKryoInstance() {
    Kryo kryo = new Kryo();

    kryo.register(IronTable.class);
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    kryo.setReferences(false);

    // Serialize Arrays$ArrayList
    //noinspection ArraysAsListWithZeroOrOneArgument
    kryo.register(Arrays.asList("").getClass(), new ArraysAsListSerializer());
    UnmodifiableCollectionsSerializer.registerSerializers(kryo);
    SynchronizedCollectionsSerializer.registerSerializers(kryo);
    // Serialize inner AbstractList$SubAbstractListRandomAccess
    kryo.addDefaultSerializer(new ArrayList<>().subList(0, 0).getClass(),
            new NoArgCollectionSerializer());
    // Serialize AbstractList$SubAbstractList
    kryo.addDefaultSerializer(new LinkedList<>().subList(0, 0).getClass(),
            new NoArgCollectionSerializer());
    // To keep backward compatibility don't change the order of serializers above

    kryo.setInstantiatorStrategy(
            new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
    return kryo;
}
项目:Paper    文件:DbStoragePlainFile.java   
private Kryo createKryoInstance(boolean compatibilityMode) {
    Kryo kryo = new Kryo();

    if (compatibilityMode) {
        kryo.getFieldSerializerConfig().setOptimizedGenerics(true);
    }

    kryo.register(PaperTable.class);
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    kryo.setReferences(false);

    // Serialize Arrays$ArrayList
    //noinspection ArraysAsListWithZeroOrOneArgument
    kryo.register(Arrays.asList("").getClass(), new ArraysAsListSerializer());
    UnmodifiableCollectionsSerializer.registerSerializers(kryo);
    SynchronizedCollectionsSerializer.registerSerializers(kryo);
    // Serialize inner AbstractList$SubAbstractListRandomAccess
    kryo.addDefaultSerializer(new ArrayList<>().subList(0, 0).getClass(),
            new NoArgCollectionSerializer());
    // Serialize AbstractList$SubAbstractList
    kryo.addDefaultSerializer(new LinkedList<>().subList(0, 0).getClass(),
            new NoArgCollectionSerializer());
    // To keep backward compatibility don't change the order of serializers above

    // UUID support
    kryo.register(UUID.class, new UUIDSerializer());

    for (Class<?> clazz : mCustomSerializers.keySet())
        kryo.register(clazz, mCustomSerializers.get(clazz));

    kryo.setInstantiatorStrategy(
            new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));

    return kryo;
}
项目:snapper    文件:KryoConverter.java   
public KryoConverter(Class<T> clazz) {
    this.clazz = clazz;
    this.kryo = new Kryo();
    this.kryo.register(clazz);
    this.kryo.register(Date.class, new DateSerializer());
    this.kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    this.kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
    //
    this.input = new Input();
    this.output = new Output(new ByteArrayOutputStream());
}
项目:arget    文件:ProfileIO.java   
public static void init () {
    PROFILE_DIRECTORY.mkdirs();
    kryo = new Kryo();
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    kryo.register(ContactInfo.class);
    kryo.register(ServerDescriptor.class);
    kryo.register(ArrayList.class);
    kryo.register(byte[].class);
    kryo.register(BigInteger.class);
    kryo.register(ProfileWrapper.class);
    kryo.register(ProfileOptions.class);
    kryo.register(Profile.class);
}
项目:atomix    文件:KryoNamespace.java   
/**
 * Creates a Kryo instance.
 *
 * @return Kryo instance
 */
@Override
public Kryo create() {
  log.trace("Creating Kryo instance for {}", this);
  Kryo kryo = new Kryo();
  kryo.setRegistrationRequired(registrationRequired);

  // If compatible serialization is enabled, override the default serializer.
  if (compatible) {
    kryo.setDefaultSerializer(CompatibleFieldSerializer::new);
  }

  // TODO rethink whether we want to use StdInstantiatorStrategy
  kryo.setInstantiatorStrategy(
      new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));

  for (RegistrationBlock block : registeredBlocks) {
    int id = block.begin();
    if (id == FLOATING_ID) {
      id = kryo.getNextRegistrationId();
    }
    for (Pair<Class<?>[], Serializer<?>> entry : block.types()) {
      register(kryo, entry.getLeft(), entry.getRight(), id++);
    }
  }
  return kryo;
}
项目:onos    文件:KryoNamespace.java   
/**
 * Creates a Kryo instance.
 *
 * @return Kryo instance
 */
@Override
public Kryo create() {
    log.trace("Creating Kryo instance for {}", this);
    Kryo kryo = new Kryo();
    kryo.setRegistrationRequired(registrationRequired);

    // If compatible serialization is enabled, override the default serializer.
    if (compatible) {
        kryo.setDefaultSerializer(CompatibleFieldSerializer::new);
    }

    // TODO rethink whether we want to use StdInstantiatorStrategy
    kryo.setInstantiatorStrategy(
            new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));

    for (RegistrationBlock block : registeredBlocks) {
        int id = block.begin();
        if (id == FLOATING_ID) {
            id = kryo.getNextRegistrationId();
        }
        for (Pair<Class<?>[], Serializer<?>> entry : block.types()) {
            register(kryo, entry.getLeft(), entry.getRight(), id++);
        }
    }
    return kryo;
}
项目:simplejavayoutubeuploader    文件:PersistenceService.java   
@Override
protected Kryo initialValue() {
    final Kryo kryo = new Kryo();
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    kryo.register(File.class, fileSerializer);
    kryo.register(DateTime.class, dateTimeSerializer);
    return kryo;
}
项目:craft-atom    文件:KryoSerialization.java   
private static Kryo newKryo() {
    Kryo kryo = new Kryo();
    kryo.register(RpcBody.class);
    kryo.register(RpcMethod.class);
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    return kryo;
}
项目:kryo-mavenized    文件:CompatibleFieldSerializerTest.java   
public void testCompatibleFieldSerializer () throws FileNotFoundException {
    TestClass object1 = new TestClass();
    object1.child = new TestClass();
    object1.other = new AnotherClass();
    object1.other.value = "meow";
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    kryo.register(TestClass.class);
    kryo.register(AnotherClass.class);
    roundTrip(100, 100, object1);
}
项目:kryo-mavenized    文件:CompatibleFieldSerializerTest.java   
public void testRemovedField () throws FileNotFoundException {
    TestClass object1 = new TestClass();
    object1.child = new TestClass();

    kryo.register(TestClass.class, new CompatibleFieldSerializer(kryo, TestClass.class));
    roundTrip(88, 88, object1);

    CompatibleFieldSerializer serializer = new CompatibleFieldSerializer(kryo, TestClass.class);
    serializer.removeField("text");
    kryo.register(TestClass.class, serializer);
    Object object2 = kryo.readClassAndObject(input);
    assertEquals(object1, object2);
}
项目:arget    文件:ServerInfoIO.java   
public static void init () {
    SERVERS_DIRECTORY.mkdirs();
    kryo = new Kryo();
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    kryo.register(ServerInfo.class);
}
项目:hibernate4-memcached    文件:KryoTranscoder.java   
/**
 * Override this method to change serialization rule.
 *
 * @return Kryo serializer instance.
 */
protected Kryo createKryo() {
    Kryo kryo = new KryoReflectionFactorySupport();
    kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
    return kryo;
}