DefaultTunnel extends AbstractLifecycleObservable implements Tunnel { @Override public TunnelMeta getTunnelMeta() { return new TunnelMeta(this, protocol); } DefaultTunnel(Channel frontendChannel, ProxyConnectProtocol protocol, ProxyConfig config,
                         ResourceManager resourceManager, TunnelMonitorManager tunnelMonitorManager); @Override TunnelIdentity identity(); @Override void forwardToBackend(ByteBuf message); @Override void forwardToFrontend(ByteBuf message); @Override FrontendSession frontend(); @Override BackendSession backend(); @Override TunnelMeta getTunnelMeta(); @Override TunnelState getState(); @Override ProxyConnectProtocol getProxyProtocol(); @Override TunnelMonitor getTunnelMonitor(); @Override void update(Object args, Observable observable); @Override int hashCode(); @Override void release();  }
@Test public void getTunnelMeta() { logger.info("{}", tunnel.getTunnelMeta()); }