Server Type and Version Recognition - OndraZizka/jboss-migration GitHub Wiki
The tool can recognize server types and their versions.
It's not just version what is recognized, it's version range. It may happen that the analysis can't provide precise version for a given server, so for example, it recognizes "JBoss AS 5.0.0 - 5.0.1".
It also distinguishes between project and product (e.g. JBoss AS and JBoss EAP) in the following manner:
A version (Version
class) holds two values: Project version and product version.
Any product version is based on some project version. E.g. JBoss EAP 5.1.2 is based on JBoss AS 5.1.0.
Therefore, if it's product version 5.1.0, then the Version
has values (5.1.2, 5.1.0)
.
When it comes to printing out the version, product will be preferred, if available, e.g.
JBoss EAP 5.1.0
will be printed rather than JBoss AS 5.1.2
.
JBoss AS 5 / AS 6 / EAP 5
Type
These files are checked; if they are not found, the directory is not recognized as AS 5.
jar-versions.xml
bin/run.sh
lib/jboss-main.jar
Version
As a quick method, CRC32 of jar-versions.xml
is matched against a list of CRC32 of AS and EAP releases.
If does not succeed, CRC32 of all .jar files are computed and compared against a list. The least diverging list is used to determine the version.
JBoss AS 7 / WildFly 8 / EAP 6
Type
These files are checked; if they are not found, the directory is not recognized as AS 5.
jboss-modules.jar
bin/standalone.sh
standalone/configuration
(dir)
Version
The same .jar list comparison method as for AS 5 / EAP 5 is used.