Search in sources :

Example 1 with ByteBufferMarshaller

use of org.wildfly.clustering.marshalling.spi.ByteBufferMarshaller in project wildfly by wildfly.

the class ChannelCommandDispatcherFactory method createCommandDispatcher.

@Override
public <C> CommandDispatcher<C> createCommandDispatcher(Object id, C commandContext, ClassLoader loader) {
    ByteBufferMarshaller dispatcherMarshaller = this.marshallerFactory.apply(loader);
    MarshalledValueFactory<ByteBufferMarshaller> factory = new ByteBufferMarshalledValueFactory(dispatcherMarshaller);
    Contextualizer contextualizer = this.contextualizerFactory.apply(loader);
    CommandDispatcherContext<C, ByteBufferMarshaller> context = new CommandDispatcherContext<C, ByteBufferMarshaller>() {

        @Override
        public C getCommandContext() {
            return commandContext;
        }

        @Override
        public Contextualizer getContextualizer() {
            return contextualizer;
        }

        @Override
        public MarshalledValueFactory<ByteBufferMarshaller> getMarshalledValueFactory() {
            return factory;
        }
    };
    if (this.contexts.putIfAbsent(id, context) != null) {
        throw ClusteringServerLogger.ROOT_LOGGER.commandDispatcherAlreadyExists(id);
    }
    CommandMarshaller<C> marshaller = new CommandDispatcherMarshaller<>(this.marshaller, id, factory);
    CommandDispatcher<C> localDispatcher = new LocalCommandDispatcher<>(this.getLocalMember(), commandContext);
    return new ChannelCommandDispatcher<>(this.dispatcher, marshaller, dispatcherMarshaller, this, this.timeout, localDispatcher, () -> {
        localDispatcher.close();
        this.contexts.remove(id);
    });
}
Also used : ByteBufferMarshalledValueFactory(org.wildfly.clustering.marshalling.spi.ByteBufferMarshalledValueFactory) Contextualizer(org.jboss.as.clustering.context.Contextualizer) ByteBufferMarshaller(org.wildfly.clustering.marshalling.spi.ByteBufferMarshaller)

Example 2 with ByteBufferMarshaller

use of org.wildfly.clustering.marshalling.spi.ByteBufferMarshaller in project wildfly by wildfly.

the class InfinispanBeanManagerFactory method createBeanManager.

@Override
public BeanManager<I, T, TransactionBatch> createBeanManager(Supplier<I> identifierFactory, PassivationListener<T> passivationListener, RemoveListener<T> removeListener) {
    ByteBufferMarshaller marshaller = new JBossByteBufferMarshaller(this.configuration.getMarshallingConfigurationRepository(), this.configuration.getBeanConfiguration().getModule().getClassLoader());
    MarshalledValueFactory<ByteBufferMarshaller> factory = new ByteBufferMarshalledValueFactory(marshaller);
    Cache<BeanKey<I>, BeanEntry<I>> beanCache = this.configuration.getCache();
    Cache<BeanGroupKey<I>, BeanGroupEntry<I, T, ByteBufferMarshaller>> groupCache = this.configuration.getCache();
    CacheProperties properties = new InfinispanCacheProperties(groupCache.getCacheConfiguration());
    String beanName = this.configuration.getBeanConfiguration().getName();
    BeanPassivationConfiguration passivationConfig = this.configuration.getPassivationConfiguration();
    PassivationConfiguration<T> passivation = new PassivationConfiguration<T>() {

        @Override
        public PassivationListener<T> getPassivationListener() {
            return passivationListener;
        }

        @Override
        public BeanPassivationConfiguration getConfiguration() {
            return passivationConfig;
        }
    };
    Predicate<Map.Entry<? super BeanKey<I>, ? super BeanEntry<I>>> beanFilter = new BeanFilter<>(beanName);
    BeanGroupFactory<I, T, ByteBufferMarshaller> groupFactory = new InfinispanBeanGroupFactory<>(groupCache, beanCache, beanFilter, factory, properties, passivation);
    Configuration<BeanGroupKey<I>, BeanGroupEntry<I, T, ByteBufferMarshaller>, BeanGroupFactory<I, T, ByteBufferMarshaller>> groupConfiguration = new SimpleConfiguration<>(groupCache, groupFactory);
    BeanFactory<I, T> beanFactory = new InfinispanBeanFactory<>(beanName, groupFactory, beanCache, properties, this.configuration.getBeanConfiguration().getTimeout(), properties.isPersistent() ? passivationListener : null);
    Configuration<BeanKey<I>, BeanEntry<I>, BeanFactory<I, T>> beanConfiguration = new SimpleConfiguration<>(beanCache, beanFactory);
    Group<Address> group = this.configuration.getGroup();
    KeyAffinityServiceFactory affinityFactory = this.configuration.getKeyAffinityServiceFactory();
    CommandDispatcherFactory dispatcherFactory = this.configuration.getCommandDispatcherFactory();
    Duration timeout = this.configuration.getBeanConfiguration().getTimeout();
    ExpirationConfiguration<T> expiration = new ExpirationConfiguration<T>() {

        @Override
        public Duration getTimeout() {
            return timeout;
        }

        @Override
        public RemoveListener<T> getRemoveListener() {
            return removeListener;
        }
    };
    String name = this.configuration.getName();
    InfinispanBeanManagerConfiguration<I, T> configuration = new InfinispanBeanManagerConfiguration<I, T>() {

        @Override
        public String getName() {
            return name;
        }

        @Override
        public Predicate<Map.Entry<? super BeanKey<I>, ? super BeanEntry<I>>> getBeanFilter() {
            return beanFilter;
        }

        @Override
        public KeyAffinityServiceFactory getAffinityFactory() {
            return affinityFactory;
        }

        @Override
        public Group<Address> getGroup() {
            return group;
        }

        @Override
        public CommandDispatcherFactory getCommandDispatcherFactory() {
            return dispatcherFactory;
        }

        @Override
        public ExpirationConfiguration<T> getExpirationConfiguration() {
            return expiration;
        }

        @Override
        public PassivationConfiguration<T> getPassivationConfiguration() {
            return passivation;
        }

        @Override
        public CacheProperties getProperties() {
            return properties;
        }
    };
    return new InfinispanBeanManager<>(configuration, identifierFactory, beanConfiguration, groupConfiguration);
}
Also used : InfinispanBeanGroupFactory(org.wildfly.clustering.ejb.infinispan.group.InfinispanBeanGroupFactory) Address(org.infinispan.remoting.transport.Address) BeanPassivationConfiguration(org.wildfly.clustering.ejb.BeanPassivationConfiguration) InfinispanCacheProperties(org.wildfly.clustering.ee.infinispan.InfinispanCacheProperties) CacheProperties(org.wildfly.clustering.ee.cache.CacheProperties) InfinispanBeanFactory(org.wildfly.clustering.ejb.infinispan.bean.InfinispanBeanFactory) CommandDispatcherFactory(org.wildfly.clustering.spi.dispatcher.CommandDispatcherFactory) ByteBufferMarshaller(org.wildfly.clustering.marshalling.spi.ByteBufferMarshaller) JBossByteBufferMarshaller(org.wildfly.clustering.marshalling.jboss.JBossByteBufferMarshaller) JBossByteBufferMarshaller(org.wildfly.clustering.marshalling.jboss.JBossByteBufferMarshaller) InfinispanBeanGroupFactory(org.wildfly.clustering.ejb.infinispan.group.InfinispanBeanGroupFactory) InfinispanBeanFactory(org.wildfly.clustering.ejb.infinispan.bean.InfinispanBeanFactory) BeanPassivationConfiguration(org.wildfly.clustering.ejb.BeanPassivationConfiguration) Duration(java.time.Duration) KeyAffinityServiceFactory(org.wildfly.clustering.infinispan.spi.affinity.KeyAffinityServiceFactory) ByteBufferMarshalledValueFactory(org.wildfly.clustering.marshalling.spi.ByteBufferMarshalledValueFactory) InfinispanCacheProperties(org.wildfly.clustering.ee.infinispan.InfinispanCacheProperties)

Example 3 with ByteBufferMarshaller

use of org.wildfly.clustering.marshalling.spi.ByteBufferMarshaller in project wildfly by wildfly.

the class InfinispanBeanGroupEntryMarshallerTestCase method test.

@Test
public void test() throws IOException {
    SessionID id = new UUIDSessionID(UUID.randomUUID());
    Map<SessionID, String> beans = Collections.singletonMap(id, "bean");
    InfinispanBeanGroupEntry<SessionID, String, ByteBufferMarshaller> entry = new InfinispanBeanGroupEntry<>(new ByteBufferMarshalledValue<>(beans, JavaByteBufferMarshaller.INSTANCE));
    Tester<InfinispanBeanGroupEntry<SessionID, String, ByteBufferMarshaller>> tester = ProtoStreamTesterFactory.INSTANCE.createTester();
    tester.test(entry, InfinispanBeanGroupEntryMarshallerTestCase::assertEquals);
}
Also used : UUIDSessionID(org.jboss.ejb.client.UUIDSessionID) UUIDSessionID(org.jboss.ejb.client.UUIDSessionID) SessionID(org.jboss.ejb.client.SessionID) JavaByteBufferMarshaller(org.wildfly.clustering.marshalling.spi.JavaByteBufferMarshaller) ByteBufferMarshaller(org.wildfly.clustering.marshalling.spi.ByteBufferMarshaller) Test(org.junit.Test)

Aggregations

ByteBufferMarshaller (org.wildfly.clustering.marshalling.spi.ByteBufferMarshaller)3 ByteBufferMarshalledValueFactory (org.wildfly.clustering.marshalling.spi.ByteBufferMarshalledValueFactory)2 Duration (java.time.Duration)1 Address (org.infinispan.remoting.transport.Address)1 Contextualizer (org.jboss.as.clustering.context.Contextualizer)1 SessionID (org.jboss.ejb.client.SessionID)1 UUIDSessionID (org.jboss.ejb.client.UUIDSessionID)1 Test (org.junit.Test)1 CacheProperties (org.wildfly.clustering.ee.cache.CacheProperties)1 InfinispanCacheProperties (org.wildfly.clustering.ee.infinispan.InfinispanCacheProperties)1 BeanPassivationConfiguration (org.wildfly.clustering.ejb.BeanPassivationConfiguration)1 InfinispanBeanFactory (org.wildfly.clustering.ejb.infinispan.bean.InfinispanBeanFactory)1 InfinispanBeanGroupFactory (org.wildfly.clustering.ejb.infinispan.group.InfinispanBeanGroupFactory)1 KeyAffinityServiceFactory (org.wildfly.clustering.infinispan.spi.affinity.KeyAffinityServiceFactory)1 JBossByteBufferMarshaller (org.wildfly.clustering.marshalling.jboss.JBossByteBufferMarshaller)1 JavaByteBufferMarshaller (org.wildfly.clustering.marshalling.spi.JavaByteBufferMarshaller)1 CommandDispatcherFactory (org.wildfly.clustering.spi.dispatcher.CommandDispatcherFactory)1