private int loadData(InputStream in) { Input kryoIn = new Input(in); int size = kryoIn.readInt(); for (int i = 0; i < size; i++) { String key = kryoIn.readString(); Class c = kryo.readClass(kryoIn).getType(); Object v; if (KryoSerializable.class.isAssignableFrom(c)) { v = new DefaultSerializers.KryoSerializableSerializer().read(kryo, kryoIn, c); } else { v = kryo.readClassAndObject(kryoIn); } dataRef.put(key, v); } kryoIn.close(); return kryoIn.total(); }
private Kryo getKryo() { Kryo k = new Kryo(); k.setRegistrationRequired(false); k.setReferences(false); k.register(byte[].class); k.register(ArrayList.class, new ArrayListSerializer()); k.register(HashMap.class, new HashMapSerializer()); k.register(HashSet.class, new HashSetSerializer()); k.register(BigInteger.class, new DefaultSerializers.BigIntegerSerializer()); return k; }
@Override protected PojoCodec getPojoCodec() { // Register serializers for all custom types List<Registration> registrationList = new ArrayList<Registration>(); registrationList.add(new Registration(ArrayList.class, new CollectionSerializer(), 20)); registrationList.add(new Registration(MediaContent.class, new MediaContentSerializer(), 21)); registrationList.add(new Registration(Image.class, new ImageSerializer(), 22)); registrationList.add(new Registration(Media.class, new MediaSerializer(), 23)); registrationList.add(new Registration(Media.Player.class, new DefaultSerializers.EnumSerializer(Media.Player .class), 24)); registrationList.add(new Registration(Image.Size.class, new DefaultSerializers.EnumSerializer(Image.Size .class), 25)); // Set use references to 'false' return new PojoCodec(new KryoRegistrationRegistrar(registrationList), false); }
/** * Initialize and register classes with kryo. */ public void initialize() { // Register types we know about and do not require external configuration kryo.register(ArrayList.class); kryo.register(BasicCredentialMetaData.class); kryo.register(Class.class, new DefaultSerializers.ClassSerializer()); kryo.register(Date.class, new DefaultSerializers.DateSerializer()); kryo.register(HardTimeoutExpirationPolicy.class); kryo.register(HashMap.class); kryo.register(LinkedHashMap.class); kryo.register(HashSet.class); kryo.register(DefaultHandlerResult.class); kryo.register(ImmutableAuthentication.class); kryo.register(MultiTimeUseOrTimeoutExpirationPolicy.class); kryo.register(NeverExpiresExpirationPolicy.class); kryo.register(RememberMeDelegatingExpirationPolicy.class); kryo.register(ServiceTicketImpl.class); kryo.register(SimpleWebApplicationServiceImpl.class, new SimpleWebApplicationServiceSerializer()); kryo.register(ThrottledUseAndTimeoutExpirationPolicy.class); kryo.register(TicketGrantingTicketExpirationPolicy.class); kryo.register(TicketGrantingTicketImpl.class); kryo.register(TimeoutExpirationPolicy.class); kryo.register(UsernamePasswordCredential.class); kryo.register(SimplePrincipal.class); kryo.register(URL.class, new URLSerializer()); kryo.register(URI.class, new URISerializer()); kryo.register(Pattern.class, new RegexSerializer()); kryo.register(UUID.class, new UUIDSerializer()); kryo.register(EnumMap.class, new EnumMapSerializer()); kryo.register(EnumSet.class, new EnumSetSerializer()); // we add these ones for tests only kryo.register(RegisteredServiceImpl.class, new RegisteredServiceSerializer()); kryo.register(RegexRegisteredService.class, new RegisteredServiceSerializer()); // new serializers to manage Joda dates and immutable collections kryo.register(DateTime.class, new JodaDateTimeSerializer()); kryo.register(CasDelegatingLogger.class, new DefaultSerializers.VoidSerializer()); // from the kryo-serializers library (https://github.com/magro/kryo-serializers) UnmodifiableCollectionsSerializer.registerSerializers(kryo); ImmutableListSerializer.registerSerializers(kryo); ImmutableSetSerializer.registerSerializers(kryo); ImmutableMapSerializer.registerSerializers(kryo); ImmutableMultimapSerializer.registerSerializers(kryo); kryo.register(Collections.EMPTY_LIST.getClass(), new CollectionsEmptyListSerializer()); kryo.register(Collections.EMPTY_MAP.getClass(), new CollectionsEmptyMapSerializer()); kryo.register(Collections.EMPTY_SET.getClass(), new CollectionsEmptySetSerializer()); // Register other types if (serializerMap != null) { for (final Map.Entry<Class<?>, Serializer> clazz : serializerMap.entrySet()) { kryo.register(clazz.getKey(), clazz.getValue()); } } // don't reinit the registered classes after every write or read kryo.setAutoReset(false); // don't replace objects by references kryo.setReferences(false); // Catchall for any classes not explicitly registered kryo.setRegistrationRequired(false); }
/** * Initialize and register classes with kryo. */ public void initialize() { // Register types we know about and do not require external configuration kryo.register(ArrayList.class); kryo.register(BasicCredentialMetaData.class); kryo.register(Class.class, new DefaultSerializers.ClassSerializer()); kryo.register(Date.class, new DefaultSerializers.DateSerializer()); kryo.register(HardTimeoutExpirationPolicy.class); kryo.register(HashMap.class); kryo.register(DefaultHandlerResult.class); kryo.register(ImmutableAuthentication.class); kryo.register(MultiTimeUseOrTimeoutExpirationPolicy.class); kryo.register(NeverExpiresExpirationPolicy.class); kryo.register(RememberMeDelegatingExpirationPolicy.class); kryo.register(ServiceTicketImpl.class); kryo.register(SimpleWebApplicationServiceImpl.class, new SimpleWebApplicationServiceSerializer()); kryo.register(ThrottledUseAndTimeoutExpirationPolicy.class); kryo.register(TicketGrantingTicketExpirationPolicy.class); kryo.register(TicketGrantingTicketImpl.class); kryo.register(TimeoutExpirationPolicy.class); kryo.register(URL.class, new URLSerializer()); // we add these ones for tests only kryo.register(RegisteredServiceImpl.class, new RegisteredServiceSerializer()); kryo.register(RegexRegisteredService.class, new RegisteredServiceSerializer()); // new serializers to manage Joda dates and immutable collections kryo.register(DateTime.class, new JodaDateTimeSerializer()); kryo.register(CasDelegatingLogger.class, new DefaultSerializers.VoidSerializer()); // from the kryo-serializers library (https://github.com/magro/kryo-serializers) UnmodifiableCollectionsSerializer.registerSerializers(kryo); // Register other types if (serializerMap != null) { for (final Map.Entry<Class<?>, Serializer> clazz : serializerMap.entrySet()) { kryo.register(clazz.getKey(), clazz.getValue()); } } // don't reinit the registered classes after every write or read kryo.setAutoReset(false); // don't replace objects by references kryo.setReferences(false); // Catchall for any classes not explicitly registered kryo.setRegistrationRequired(false); }
/** * Initialize and register classes with kryo. */ @PostConstruct public void initialize() { // Register types we know about and do not require external configuration this.kryo.register(EncodedTicket.class); this.kryo.register(ArrayList.class); this.kryo.register(BasicCredentialMetaData.class); this.kryo.register(Class.class, new DefaultSerializers.ClassSerializer()); this.kryo.register(ZonedDateTime.class, new ZonedDateTimeTranscoder()); this.kryo.register(HardTimeoutExpirationPolicy.class); this.kryo.register(HashMap.class); this.kryo.register(LinkedHashMap.class); this.kryo.register(HashSet.class); this.kryo.register(DefaultHandlerResult.class); this.kryo.register(DefaultAuthentication.class); this.kryo.register(MultiTimeUseOrTimeoutExpirationPolicy.class); this.kryo.register(NeverExpiresExpirationPolicy.class); this.kryo.register(RememberMeDelegatingExpirationPolicy.class); this.kryo.register(ServiceTicketImpl.class); this.kryo.register(SimpleWebApplicationServiceImpl.class, new SimpleWebApplicationServiceSerializer()); this.kryo.register(ThrottledUseAndTimeoutExpirationPolicy.class); this.kryo.register(TicketGrantingTicketExpirationPolicy.class); this.kryo.register(TicketGrantingTicketImpl.class); this.kryo.register(TimeoutExpirationPolicy.class); this.kryo.register(UsernamePasswordCredential.class); this.kryo.register(SimplePrincipal.class); this.kryo.register(URL.class, new URLSerializer()); this.kryo.register(URI.class, new URISerializer()); this.kryo.register(Pattern.class, new RegexSerializer()); this.kryo.register(UUID.class, new UUIDSerializer()); this.kryo.register(EnumMap.class, new EnumMapSerializer()); this.kryo.register(EnumSet.class, new EnumSetSerializer()); // we add these ones for tests only this.kryo.register(RegexRegisteredService.class, new RegisteredServiceSerializer()); // from the kryo-serializers library (https://github.com/magro/kryo-serializers) UnmodifiableCollectionsSerializer.registerSerializers(this.kryo); ImmutableListSerializer.registerSerializers(this.kryo); ImmutableSetSerializer.registerSerializers(this.kryo); ImmutableMapSerializer.registerSerializers(this.kryo); ImmutableMultimapSerializer.registerSerializers(this.kryo); this.kryo.register(Collections.EMPTY_LIST.getClass(), new CollectionsEmptyListSerializer()); this.kryo.register(Collections.EMPTY_MAP.getClass(), new CollectionsEmptyMapSerializer()); this.kryo.register(Collections.EMPTY_SET.getClass(), new CollectionsEmptySetSerializer()); // Register other types if (this.serializerMap != null) { this.serializerMap.forEach(this.kryo::register); } // don't reinit the registered classes after every write or read this.kryo.setAutoReset(false); // don't replace objects by references this.kryo.setReferences(false); // Catchall for any classes not explicitly registered this.kryo.setRegistrationRequired(false); }
/** * Initialize and register classes with kryo. */ public void initialize() { // Register types we know about and do not require external configuration kryo.register(ArrayList.class); kryo.register(BasicCredentialMetaData.class); kryo.register(Class.class, new DefaultSerializers.ClassSerializer()); kryo.register(Date.class, new DefaultSerializers.DateSerializer()); kryo.register(HardTimeoutExpirationPolicy.class); kryo.register(HashMap.class); kryo.register(HandlerResult.class); kryo.register(ImmutableAuthentication.class); kryo.register(MultiTimeUseOrTimeoutExpirationPolicy.class); kryo.register(NeverExpiresExpirationPolicy.class); kryo.register(RememberMeDelegatingExpirationPolicy.class); kryo.register(ServiceTicketImpl.class); kryo.register(SimpleWebApplicationServiceImpl.class, new SimpleWebApplicationServiceSerializer()); kryo.register(ThrottledUseAndTimeoutExpirationPolicy.class); kryo.register(TicketGrantingTicketExpirationPolicy.class); kryo.register(TicketGrantingTicketImpl.class); kryo.register(TimeoutExpirationPolicy.class); kryo.register(URL.class, new URLSerializer()); // we add these ones for tests only kryo.register(RegisteredServiceImpl.class, new RegisteredServiceSerializer()); kryo.register(RegexRegisteredService.class, new RegisteredServiceSerializer()); // new serializers to manage Joda dates and immutable collections kryo.register(DateTime.class, new JodaDateTimeSerializer()); // from the kryo-serializers library (https://github.com/magro/kryo-serializers) UnmodifiableCollectionsSerializer.registerSerializers(kryo); // Register other types if (serializerMap != null) { for (final Map.Entry<Class<?>, Serializer> clazz : serializerMap.entrySet()) { kryo.register(clazz.getKey(), clazz.getValue()); } } // don't reinit the registered classes after every write or read kryo.setAutoReset(false); // don't replace objects by references kryo.setReferences(false); // Catchall for any classes not explicitly registered kryo.setRegistrationRequired(false); }