[关闭]
@aloxc 2017-12-05T06:33:45.000000Z 字数 2527 阅读 557

我们一起学ignite之IgniteProductVersion

一起学 ignite 源码分析


转载请注明本文作者:aloxc,邮箱leerohwa#gmail.com[#更换为@]
类org.apache.ignite.lang.IgniteProductVersion用于描述ignite的版本信息,其中包含主版本,副版本,修正版本
1. 主版本major
2. 此版本minor
3. 修正版本maintenance

我们启动的ignite服务后,控制台或者日志文件中会出现这样的信息

[10:23:17] ______ ____________
[10:23:17] / / / |/ / / __/ __/
[10:23:17] _/ // (7 7 // / / / / /
[10:23:17] /
/___//|// // /_/
[10:23:17]
[10:23:17] ver. 1.7.0-SNAPSHOT#19700101-sha1:DEV
[10:23:17] 2016 Copyright(C) Apache Software Foundation
[10:23:17]
[10:23:17] Ignite documentation: http://ignite.apache.org
[10:23:17]
[10:23:17] Quiet mode.
[10:23:17] ^-- Logging to file 'D:\develop\ignite\work\log\ignite-67a75113.0.log'
[10:23:17] ^-- To see FULL console log here add -DIGNITE_QUIET=false or "-v" to ignite.{sh|bat}
[10:23:17]
[10:23:17] OS: Windows 7 6.1 amd64
[10:23:17] VM information: Java(TM) SE Runtime Environment 1.8.0_111-b14 Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.111-b14
[10:23:17] Initial heap size is 128MB (should be no less than 512MB, use -Xms512m -Xmx512m).
[10:23:19] Configured plugins:
[10:23:19] ^-- None
[10:23:19]
[10:23:19] Security status [authentication=off, tls/ssl=off]
[10:23:21] Performance suggestions for grid (fix if possible)
[10:23:21] To disable, set -DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true
[10:23:21] ^-- Disable peer class loading (set 'peerClassLoadingEnabled' to false)
[10:23:21] ^-- Disable grid events (remove 'includeEventTypes' from configuration)
[10:23:21]
[10:23:21] To start Console Management & Monitoring run ignitevisorcmd.{sh|bat}
[10:23:21]
[10:23:21] Ignite node started OK (id=67a75113)
[10:23:21] Topology snapshot [ver=1, servers=1, clients=0, CPUs=2, heap=1.8GB]

这些信息从哪来的,是IgniteKernal输出的,这些信息中包含了版本信息,版本信息又是在ignite-core.jar包的根目录的ignite.properties中定义的,类似

  1. ignite.version=1.7.0
  2. ignite.build=1470066980
  3. ignite.revision=383273e3f66f702de2482466dce954d570a8ccf2
  4. ignite.rel.date=01082016
  5. ignite.update.status.params=ver=1.7.0&product=apache-ignite
  6. ignite.update.notifier.enabled.by.default=true

上面这些是在一个产品环境中的信息。如果我们是下载的源码的话,那么Ingite.properties文件和上面的有一些差别,具体看代码

  1. ignite.version=1.7.0-SNAPSHOT
  2. ignite.build=0
  3. ignite.revision=DEV
  4. ignite.rel.date=01011970
  5. ignite.update.status.params=test=vfvfvskfkeievskjv
  6. ignite.update.notifier.enabled.by.default=false

这些字符的意义就不再分析了,回过头来分析版本类,
这个类定义的字段不符合java的set get规范,一些字段提供了get方法,但是方法名和字段同名的,而不是前缀get。例如主版本major字段对应的get方法名称是major()。

顺便说下和本版有关一些有意思的东西,ignite的每个版本可能都会新增一些功能,为了判断某个版本是否有某些功能,ignite在若干的java类中定义了一些字段。
例如在org.apache.ignite.internal.processors.service.GridServiceProcessor中定义了一个

  1. public static final IgniteProductVersion LAZY_SERVICES_CFG_SINCE = IgniteProductVersion.fromString("1.5.22");

这个定义用于说明延迟服务网格配置(由于我还没看到该章节,可能翻译不准确)是从1.5.22才有的功能!
像这样的定义还有很多,他们分布在不同的类中。

x

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注