package org.radargun.service; import java.util.concurrent.TimeUnit; import org.infinispan.remoting.transport.jgroups.JGroupsTransport; import org.jgroups.protocols.TP; import org.radargun.Service; import org.radargun.traits.ProvidesTrait; /** * @author Roman Macor (rmacor@redhat.com) */ @Service(doc = InfinispanEmbeddedService.SERVICE_DESCRIPTION) public class Infinispan90EmbeddedService extends Infinispan82EmbeddedService { @Override protected Infinispan90Lifecycle createLifecycle() { return new Infinispan90Lifecycle(this); } @Override @ProvidesTrait public InfinispanCacheInfo createCacheInformation() { return new Infinispan90CacheInfo(this); } @Override protected TP getTransportProtocol() { JGroupsTransport transport = (JGroupsTransport) cacheManager.getTransport(); return (TP) transport.getChannel().getProtocolStack().findProtocol(TP.class); } @Override @ProvidesTrait public InfinispanEmbeddedQueryable createQueryable() { return new Infinispan90EmbeddedQueryable(this); } @Override protected void startJGroupsDumper(Runnable thread) { JGroupsTransport transport = (JGroupsTransport) cacheManager.getTransport(); if (transport == null || transport.getChannel() == null || !transport.getChannel().isOpen()) { // JGroups are not initialized, wait scheduledExecutor.schedule(thread, 1, TimeUnit.SECONDS); } else { jgroupsDumper = new JGroups4Dumper(transport.getChannel().getProtocolStack(), jgroupsDumperInterval); jgroupsDumper.start(); } } }