package com.fr.env; import com.fr.log.FineLoggerFactory; import com.fr.stable.AssistUtils; import com.fr.workspace.WorkContext; import com.fr.workspace.connect.WorkspaceConnectionInfo; import com.fr.workspace.engine.channel.http.FunctionalHttpRequest; /** * 测试连接的结果。 * 不改变原有逻辑的情况下,加入一层转化。 * 根据这里的转化结果,判断需要提示哪些内容。 * * created by Harrison on 2018/12/20 **/ public enum TestConnectionResult { /** * 完全成功, 版本匹配,测试连接成功。 */ Fully_Success, /** * 不完全成功,版本不匹配,但测试连接成功。 */ Partly_Sucess, /** * 完全失败,直接没连上 */ Fully_Failed, /** * 验证 Token 失败 */ Auth_Failed; public static TestConnectionResult parse(Boolean value, WorkspaceConnectionInfo info) { if (value == null) { return Auth_Failed; } if (!value) { return Fully_Failed; } try { String serverVersion = new FunctionalHttpRequest(info).getServerVersion(); if (AssistUtils.equals(serverVersion, WorkContext.getVersion())) { return Fully_Success; } return Partly_Sucess; } catch (Exception e) { // 发生异常,说明没连接上。返回完全失败。 FineLoggerFactory.getLogger().error(e.getMessage()); return Fully_Failed; } } }