diff --git a/easy-es-boot-starter/pom.xml b/easy-es-boot-starter/pom.xml index 8f2759b5..fb280e84 100644 --- a/easy-es-boot-starter/pom.xml +++ b/easy-es-boot-starter/pom.xml @@ -15,7 +15,6 @@ 8 8 - 3.2.2 @@ -30,21 +29,4 @@ - - - - - org.apache.maven.plugins - maven-jar-plugin - ${maven-jar-plugin.version} - - - - true - - - - - - diff --git a/easy-es-boot-starter/src/main/java/cn/easyes/starter/register/MapperScannerRegister.java b/easy-es-boot-starter/src/main/java/cn/easyes/starter/register/MapperScannerRegister.java index 08da8d8e..83cd7cfe 100644 --- a/easy-es-boot-starter/src/main/java/cn/easyes/starter/register/MapperScannerRegister.java +++ b/easy-es-boot-starter/src/main/java/cn/easyes/starter/register/MapperScannerRegister.java @@ -1,5 +1,6 @@ package cn.easyes.starter.register; +import cn.easyes.common.utils.EEVersionUtil; import cn.easyes.common.utils.LogUtils; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.context.EnvironmentAware; @@ -46,8 +47,7 @@ public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, Res //@author dazer boolean banner = Optional.ofNullable(environment.getProperty(ENABLE_BANNER)).map(Boolean::parseBoolean).orElse(Boolean.TRUE); if (banner) { - String versionStr = Optional.ofNullable(MapperScannerRegister.class.getPackage().getImplementationVersion()). - orElse("unknown"); + String versionStr = EEVersionUtil.getJarVersion(this.getClass()); System.out.println("\n" + "___ _ _ ___\n" + " | __| __ _ ___ | || | ___ | __| ___\n" + @@ -56,7 +56,7 @@ public class MapperScannerRegister implements ImportBeanDefinitionRegistrar, Res "_|\"\"\"\"\"|_|\"\"\"\"\"|_|\"\"\"\"\"|_| \"\"\"\"|_| |_|\"\"\"\"\"|_|\"\"\"\"\"|\n" + "\"`-0-0-'\"`-0-0-'\"`-0-0-'\"`-0-0-'\"`-0-0-'\"`-0-0-'\"`-0-0-'\n" + "--------------------------xpc-------------------------->"); - System.out.println(":: easy-es :: (v" + versionStr + ")"); + System.out.println(":: easy-es :: (v:" + versionStr + ")"); } AnnotationAttributes mapperScanAttrs = AnnotationAttributes diff --git a/easy-es-common/src/main/java/cn/easyes/common/utils/EEVersionUtil.java b/easy-es-common/src/main/java/cn/easyes/common/utils/EEVersionUtil.java new file mode 100644 index 00000000..b59f0ce2 --- /dev/null +++ b/easy-es-common/src/main/java/cn/easyes/common/utils/EEVersionUtil.java @@ -0,0 +1,55 @@ +package cn.easyes.common.utils; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.client.RestHighLevelClient; +import org.elasticsearch.client.core.MainResponse; + +import java.io.IOException; +import java.util.Optional; + +/** + * ee 版本工具类 + * + * @author dys + * @since 0.9.80 + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class EEVersionUtil { + + /** + * 获取指定类版本号 + * + * + * @param objectClass T.getClass() + * @return classVersion + */ + public static String getJarVersion(Class objectClass) { + return Optional.ofNullable(objectClass.getPackage().getImplementationVersion()). + orElse("unknown"); + } + + /** + * 获取elasticsearch client 版本 + *

+ * elasticsearch 客户端必须通过 restHighLevelClient.info 获取,无法使用getPackage.getImplementationVersion 获取 + *

+ * + * @param restHighLevelClient es高级客户端 + * @return client version + */ + public static String getClientVersion(RestHighLevelClient restHighLevelClient) { + MainResponse info; + try { + info = restHighLevelClient.info(RequestOptions.DEFAULT); + } catch (IOException e) { + throw new RuntimeException(e); + } + return info.getVersion().getNumber(); + } +} diff --git a/easy-es-common/src/main/java/cn/easyes/common/utils/EsVersionUtil.java b/easy-es-common/src/main/java/cn/easyes/common/utils/EsVersionUtil.java deleted file mode 100644 index e07e17e5..00000000 --- a/easy-es-common/src/main/java/cn/easyes/common/utils/EsVersionUtil.java +++ /dev/null @@ -1,74 +0,0 @@ -package cn.easyes.common.utils; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import org.elasticsearch.client.RequestOptions; -import org.elasticsearch.client.RestHighLevelClient; -import org.elasticsearch.client.core.MainResponse; - -import java.io.IOException; - -/** - * elasticsearch 版本工具类 - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class EsVersionUtil { - - /** - * 支持的版本 目前支持版本为7.xx 推荐7.14.0 - */ - private final static String supportedVersion = "7"; - - /** - * 获取es jar包版本 - * - * @param restHighLevelClient es 高级客户端 - * @return jar version - */ - public static String getJarVersion(RestHighLevelClient restHighLevelClient) { - String version = restHighLevelClient.getClass().getPackage().getImplementationVersion(); - LogUtils.formatInfo("Elasticsearch jar version:%s", version); - return version; - } - - /** - * 获取elasticsearch client 版本 - * - * @param restHighLevelClient es高级客户端 - * @return client version - */ - public static String getClientVersion(RestHighLevelClient restHighLevelClient) { - MainResponse info; - try { - info = restHighLevelClient.info(RequestOptions.DEFAULT); - } catch (IOException e) { - throw new RuntimeException(e); - } - String version = info.getVersion().getNumber(); - LogUtils.formatInfo("Elasticsearch client version:%s", version); - return version; - } - - /** - * 校验es client版本及jar包版本 - * - * @param restHighLevelClient es高级客户端 - */ - public static void verify(RestHighLevelClient restHighLevelClient) { - // 校验jar包版本是否为推荐使用版本 - String jarVersion = getJarVersion(restHighLevelClient); - if (!jarVersion.startsWith(supportedVersion)) { - // 这里抛出异常原因是ee强制依赖于jar包版本,jar包版本不对会导致ee异常 - throw ExceptionUtils.eee("Easy-Es supported elasticsearch jar version is:%s.xx", supportedVersion); - } - String clientVersion = getClientVersion(restHighLevelClient); - if (!clientVersion.startsWith(supportedVersion)) { - // 这里校验客户端为非强制,客户端版本非推荐版本对应提醒即可,es会报错提醒 - LogUtils.formatWarn("Easy-Es supported elasticsearch client version is:%s.xx", supportedVersion); - } - if (!jarVersion.equals(clientVersion)) { - // 提示jar包与客户端版本不对应,es官方推荐jar包版本对应客户端版本 - LogUtils.formatWarn("Elasticsearch clientVersion:%s not equals jarVersion:%s", clientVersion, jarVersion); - } - } -} diff --git a/easy-es-common/src/main/java/cn/easyes/common/utils/RestHighLevelClientBuilder.java b/easy-es-common/src/main/java/cn/easyes/common/utils/RestHighLevelClientBuilder.java index a93cc6a3..5392dc7c 100644 --- a/easy-es-common/src/main/java/cn/easyes/common/utils/RestHighLevelClientBuilder.java +++ b/easy-es-common/src/main/java/cn/easyes/common/utils/RestHighLevelClientBuilder.java @@ -10,6 +10,10 @@ import org.elasticsearch.client.RestHighLevelClient; */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class RestHighLevelClientBuilder { + /** + * 支持的版本 目前支持版本为7.xx 推荐7.14.0 + */ + private final static String supportedVersion = "7"; /** * 构建RestHighLevelClient @@ -20,8 +24,32 @@ public class RestHighLevelClientBuilder { public static RestHighLevelClient build(RestClientBuilder builder) { RestHighLevelClient restHighLevelClient = new RestHighLevelClient(builder); // 检验es版本是否对应 - EsVersionUtil.verify(restHighLevelClient); + verify(restHighLevelClient); return restHighLevelClient; } + /** + * 校验es client版本及jar包版本 + * + * @param restHighLevelClient es高级客户端 + */ + private static void verify(RestHighLevelClient restHighLevelClient) { + // 校验jar包版本是否为推荐使用版本 + String jarVersion = EEVersionUtil.getJarVersion(restHighLevelClient.getClass()); + LogUtils.formatInfo("Elasticsearch jar version:%s", jarVersion); + if (!jarVersion.startsWith(supportedVersion)) { + // 这里抛出异常原因是ee强制依赖于jar包版本,jar包版本不对会导致ee异常 + throw ExceptionUtils.eee("Easy-Es supported elasticsearch jar version is:%s.xx", supportedVersion); + } + String clientVersion = EEVersionUtil.getClientVersion(restHighLevelClient); + LogUtils.formatInfo("Elasticsearch client version:%s", clientVersion); + if (!clientVersion.startsWith(supportedVersion)) { + // 这里校验客户端为非强制,客户端版本非推荐版本对应提醒即可,es会报错提醒 + LogUtils.formatWarn("Easy-Es supported elasticsearch client version is:%s.xx", supportedVersion); + } + if (!jarVersion.equals(clientVersion)) { + // 提示jar包与客户端版本不对应,es官方推荐jar包版本对应客户端版本 + LogUtils.formatWarn("Elasticsearch clientVersion:%s not equals jarVersion:%s", clientVersion, jarVersion); + } + } } diff --git a/easy-es-parent/pom.xml b/easy-es-parent/pom.xml index 9a135f74..de77b51e 100644 --- a/easy-es-parent/pom.xml +++ b/easy-es-parent/pom.xml @@ -35,6 +35,7 @@ 1.2.83 1.13 2.6.10 + 3.2.2 @@ -202,6 +203,20 @@ + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + + true + + + + +