package org.radargun.service; import org.infinispan.remoting.transport.jgroups.JGroupsTransport; import org.jgroups.protocols.TP; import org.radargun.Service; import org.radargun.config.Property; import org.radargun.traits.ProvidesTrait; /** * @author Radim Vansa <rvansa@redhat.com> */ @Service(doc = InfinispanEmbeddedService.SERVICE_DESCRIPTION) public class Infinispan70EmbeddedService extends Infinispan60EmbeddedService { @Property(doc = "Enable diagnostics port for service probing (true/false/null). Default is null - use settings from ISPN configuration.") protected Boolean enableDiagnostics; protected JGroupsTransport transport; @Override protected void startCaches() throws Exception { super.startCaches(); setDiagnostics(); } protected void setDiagnostics() { TP transportProtocol = getTransportProtocol(); if (Boolean.TRUE.equals(enableDiagnostics)) { transportProtocol.enableDiagnostics(); log.debug("Enabling diagnostics in the transport protocol"); } else if (Boolean.FALSE.equals(enableDiagnostics)) { transportProtocol.disableDiagnostics(); log.debug("Disabling diagnostics in the transport protocol"); } } protected TP getTransportProtocol() { JGroupsTransport transport = (JGroupsTransport) cacheManager.getTransport(); return (TP) transport.getChannel().getProtocolStack().findProtocol(TP.class); } @Override @ProvidesTrait public InfinispanCacheInfo createCacheInformation() { return new Infinispan70CacheInfo(this); } @Override @ProvidesTrait public InfinispanEmbeddedQueryable createQueryable() { return new Infinispan70EmbeddedQueryable(this); } @ProvidesTrait public InfinispanIterable createIterable() { return new InfinispanIterable(this); } @ProvidesTrait public InfinispanCacheListeners createListeners() { return new InfinispanCacheListeners(this); } @ProvidesTrait public Infinispan70TopologyHistory getInfinispan70TopologyHistory() { return (Infinispan70TopologyHistory) topologyAware; } @Override protected InfinispanTopologyHistory createTopologyAware() { return new Infinispan70TopologyHistory(this); } }