com.alibaba.arthas.tunnel.server.app.configuration.TunnelServerConfiguration Maven / Gradle / Ivy
package com.alibaba.arthas.tunnel.server.app.configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.arthas.tunnel.server.TunnelServer;
import com.alibaba.arthas.tunnel.server.cluster.TunnelClusterStore;
/**
*
* @author hengyunabc 2020-10-27
*
*/
@Configuration
@AutoConfigureAfter(RedisAutoConfiguration.class)
public class TunnelServerConfiguration {
@Autowired
ArthasProperties arthasProperties;
@Bean(initMethod = "start", destroyMethod = "stop")
@ConditionalOnMissingBean
public TunnelServer tunnelServer(@Autowired(required = false) TunnelClusterStore tunnelClusterStore) {
TunnelServer tunnelServer = new TunnelServer();
tunnelServer.setHost(arthasProperties.getServer().getHost());
tunnelServer.setPort(arthasProperties.getServer().getPort());
tunnelServer.setSsl(arthasProperties.getServer().isSsl());
tunnelServer.setPath(arthasProperties.getServer().getPath());
tunnelServer.setClientConnectHost(arthasProperties.getServer().getClientConnectHost());
if (tunnelClusterStore != null) {
tunnelServer.setTunnelClusterStore(tunnelClusterStore);
}
return tunnelServer;
}
}