com.esotericsoftware.kryo.Kryo.setRegistrationRequired()方法的使用及代码示例

x33g5p2x  于2022-01-23 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(295)

本文整理了Java中com.esotericsoftware.kryo.Kryo.setRegistrationRequired()方法的一些代码示例,展示了Kryo.setRegistrationRequired()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Kryo.setRegistrationRequired()方法的具体详情如下:
包路径:com.esotericsoftware.kryo.Kryo
类名称:Kryo
方法名:setRegistrationRequired

Kryo.setRegistrationRequired介绍

[英]If true, an exception is thrown when an unregistered class is encountered. Default is false.

If false, when an unregistered class is encountered, its fully qualified class name will be serialized and the #addDefaultSerializer(Class,Class) for the class used to serialize the object. Subsequent appearances of the class within the same object graph are serialized as an int id.

Registered classes are serialized as an int id, avoiding the overhead of serializing the class name, but have the drawback of needing to know the classes to be serialized up front.
[中]如果为true,则在遇到未注册的类时引发异常。默认值为false。
如果为false,则当遇到未注册的类时,将序列化其完全限定的类名,并使用用于序列化对象的类的#addDefaultSerializer(类,类)。该类在同一对象图中的后续外观被序列化为int-id。
注册的类被序列化为int-id,避免了序列化类名的开销,但是有一个缺点,就是需要预先知道要序列化的类。

代码示例

代码示例来源:origin: EsotericSoftware/kryonet

public KryoSerialization () {
  this(new Kryo());
  kryo.setReferences(false);
  kryo.setRegistrationRequired(true);
}

代码示例来源:origin: apache/flink

private void checkKryoInitialized() {
  if (this.kryo == null) {
    this.kryo = getKryoInstance();
    // Enable reference tracking. 
    kryo.setReferences(true);
    
    // Throwable and all subclasses should be serialized via java serialization
    // Note: the registered JavaSerializer is Flink's own implementation, and not Kryo's.
    //       This is due to a know issue with Kryo's JavaSerializer. See FLINK-6025 for details.
    kryo.addDefaultSerializer(Throwable.class, new JavaSerializer());
    // Add default serializers first, so that the type registrations without a serializer
    // are registered with a default serializer
    for (Map.Entry<Class<?>, ExecutionConfig.SerializableSerializer<?>> entry: defaultSerializers.entrySet()) {
      kryo.addDefaultSerializer(entry.getKey(), entry.getValue().getSerializer());
    }
    for (Map.Entry<Class<?>, Class<? extends Serializer<?>>> entry: defaultSerializerClasses.entrySet()) {
      kryo.addDefaultSerializer(entry.getKey(), entry.getValue());
    }
    KryoUtils.applyRegistrations(this.kryo, kryoRegistrations.values());
    kryo.setRegistrationRequired(false);
    kryo.setClassLoader(Thread.currentThread().getContextClassLoader());
  }
}

代码示例来源:origin: changmingxie/tcc-transaction

@Override
  protected Kryo initialValue() {
    Kryo kryo = new Kryo();
    kryo.setReferences(true);
    kryo.setRegistrationRequired(false);
    //Fix the NPE bug when deserializing Collections.
    ((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy())
        .setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
    return kryo;
  }
};

代码示例来源:origin: changmingxie/tcc-transaction

@Override
  protected Kryo initialValue() {
    Kryo kryo = new Kryo();
    kryo.setReferences(true);
    kryo.setRegistrationRequired(false);
    //Fix the NPE bug when deserializing Collections.
    ((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy())
        .setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
    return kryo;
  }
};

代码示例来源:origin: changmingxie/tcc-transaction

public Kryo create() {
    Kryo kryo = new Kryo();
    kryo.setReferences(true);
    kryo.setRegistrationRequired(false);
    //Fix the NPE bug when deserializing Collections.
    ((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy())
        .setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
    return kryo;
  }
};

代码示例来源:origin: fengjiachun/Jupiter

@Override
  protected Kryo initialValue() throws Exception {
    Kryo kryo = new Kryo();
    for (Class<?> type : useJavaSerializerTypes) {
      kryo.addDefaultSerializer(type, JavaSerializer.class);
    }
    kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
    kryo.setRegistrationRequired(false);
    kryo.setReferences(false);
    return kryo;
  }
};

代码示例来源:origin: fengjiachun/Jupiter

@Override
  protected Kryo initialValue() throws Exception {
    Kryo kryo = new Kryo();
    for (Class<?> type : useJavaSerializerTypes) {
      kryo.addDefaultSerializer(type, JavaSerializer.class);
    }
    kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
    kryo.setRegistrationRequired(false);
    kryo.setReferences(false);
    return kryo;
  }
};

代码示例来源:origin: atomix/atomix

/**
 * Creates a Kryo instance.
 *
 * @return Kryo instance
 */
@Override
public Kryo create() {
 LOGGER.trace("Creating Kryo instance for {}", this);
 Kryo kryo = new Kryo();
 kryo.setClassLoader(classLoader);
 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;
}

代码示例来源:origin: opentripplanner/OpenTripPlanner

kryo.setRegistrationRequired(false);
kryo.setReferences(true);
kryo.addDefaultSerializer(TPrimitiveHash.class, ExternalizableSerializer.class);

代码示例来源:origin: magro/memcached-session-manager

@Override
  public Kryo build() {
    Kryo k = this.buildFrom(KryoBuilder.this);
    k.setRegistrationRequired(registrationRequired);
    return k;
  }
};

代码示例来源:origin: apache/incubator-dubbo

kryo.setRegistrationRequired(registrationRequired);

代码示例来源:origin: apache/incubator-dubbo

kryo.setRegistrationRequired(registrationRequired);

代码示例来源:origin: westnordost/StreetComplete

@Override protected Kryo initialValue()
  {
    Kryo kryo = new Kryo();
    /* Kryo docs say that classes that are registered are serialized more space efficiently
      (so it is not necessary that all classes that are serialized are registered here, but
      it is better) */
    kryo.setRegistrationRequired(true);
    kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
    for(Class reg : registeredClasses)
    {
      kryo.register(reg);
    }
    return kryo;
  }
};

代码示例来源:origin: magro/memcached-session-manager

kryo.setRegistrationRequired(false);
kryo.register( Arrays.asList( "" ).getClass(), new ArraysAsListSerializer() );
kryo.register(InvocationHandler.class, new JdkProxySerializer());

代码示例来源:origin: us.ihmc/IHMCCommunication

public KryoStreamDeSerializer(int inputBufferSize)
{
 kryo = new Kryo();
 kryo.setReferences(false);
 kryo.setRegistrationRequired(true);
 
 readBuffer = new byte[inputBufferSize];
 input = new Input();
 
 input.setBuffer(readBuffer);
}

代码示例来源:origin: com.twitter/chill-java

protected Kryo newKryoWithEx() throws InstantiationException, IllegalAccessException {
 Kryo k = kryoClass.newInstance();
 k.setInstantiatorStrategy(instStratClass.newInstance());
 k.setRegistrationRequired(regRequired);
 for(IKryoRegistrar kr: registrations) {
  kr.apply(k);
 }
 for(IKryoRegistrar dkr: defaultRegistrations) {
  dkr.apply(k);
 }
 return k;
}

代码示例来源:origin: com.twitter/chill-java

public Kryo newKryo() {
  Kryo k = KryoInstantiator.this.newKryo();
  /** Try to avoid calling this method if you don't need to.
   * We've been burned by binary compatibility with Kryo
   */
  if(k.isRegistrationRequired() != req) { k.setRegistrationRequired(req); }
  return k;
 }
};

代码示例来源:origin: org.jupiter-rpc/jupiter-all

@Override
  protected Kryo initialValue() throws Exception {
    Kryo kryo = new Kryo();
    for (Class<?> type : useJavaSerializerTypes) {
      kryo.addDefaultSerializer(type, JavaSerializer.class);
    }
    kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
    kryo.setRegistrationRequired(false);
    kryo.setReferences(false);
    return kryo;
  }
};

代码示例来源:origin: co.paralleluniverse/quasar-core

public static Kryo newKryo() {
  Kryo kryo = new ReplaceableObjectKryo();
  kryo.setRegistrationRequired(false);
  kryo.setInstantiatorStrategy(new SerializingInstantiatorStrategy());
  registerCommonClasses(kryo);
  return kryo;
}

代码示例来源:origin: org.scray/scray-client-jdbc

@Override
public Kryo newKryo() {
  Kryo k = super.newKryo();
  k.setRegistrationRequired(false);
  JavaKryoRowSerialization.registerSerializers(k);
  
  for (SerializerEntry<?> ser : KryoJavaPoolSerialization.getInstance()
      .getSerializers()) {
    k.register(ser.cls, ser.ser, ser.num);
  }
  return k;
}

相关文章