All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.wildfly.clustering.ejb.infinispan.bean.SessionIDKeySerializer Maven / Gradle / Ivy

There is a newer version: 33.0.2.Final
Show newest version
/*
 * Copyright The WildFly Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package org.wildfly.clustering.ejb.infinispan.bean;

import java.util.function.Function;

import org.jboss.ejb.client.SessionID;
import org.kohsuke.MetaInfServices;
import org.wildfly.clustering.ee.Key;
import org.wildfly.clustering.ee.cache.KeySerializer;
import org.wildfly.clustering.ejb.client.SessionIDSerializer;
import org.wildfly.clustering.marshalling.spi.BinaryFormatter;
import org.wildfly.clustering.marshalling.spi.Formatter;
import org.wildfly.clustering.marshalling.spi.Serializer;

/**
 * {@link Serializer} for a {@link SessionID} based {@link Key}.
 * @author Paul Ferraro
 * @param  the key type
 */
public class SessionIDKeySerializer> extends KeySerializer {

    SessionIDKeySerializer(Function factory) {
        super(SessionIDSerializer.INSTANCE, factory);
    }

    @MetaInfServices(Formatter.class)
    public static class InfinispanBeanMetaDataKeyFormatter extends BinaryFormatter> {
        @SuppressWarnings("unchecked")
        public InfinispanBeanMetaDataKeyFormatter() {
            super((Class>) (Class) InfinispanBeanMetaDataKey.class, new SessionIDKeySerializer<>(InfinispanBeanMetaDataKey::new));
        }
    }

    @MetaInfServices(Formatter.class)
    public static class InfinispanBeanGroupKeyFormatter extends BinaryFormatter> {
        @SuppressWarnings("unchecked")
        public InfinispanBeanGroupKeyFormatter() {
            super((Class>) (Class) InfinispanBeanGroupKey.class, new SessionIDKeySerializer<>(InfinispanBeanGroupKey::new));
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy