public abstract class Detector
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
Detector.LinuxRelease |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String[] |
DEFAULT_REDHAT_VARIANTS |
static java.lang.String |
DETECTED_ARCH |
static java.lang.String |
DETECTED_CLASSIFIER |
static java.lang.String |
DETECTED_NAME |
static java.lang.String |
DETECTED_RELEASE |
static java.lang.String |
DETECTED_RELEASE_LIKE_PREFIX |
static java.lang.String |
DETECTED_RELEASE_VERSION |
static java.lang.String |
DETECTED_VERSION |
static java.lang.String |
DETECTED_VERSION_MAJOR |
static java.lang.String |
DETECTED_VERSION_MINOR |
private static java.lang.String |
LINUX_ID_LIKE_PREFIX |
private static java.lang.String |
LINUX_ID_PREFIX |
private static java.lang.String[] |
LINUX_OS_RELEASE_FILES |
private static java.lang.String |
LINUX_VERSION_ID_PREFIX |
private static java.util.regex.Pattern |
REDHAT_MAJOR_VERSION_REGEX |
private static java.lang.String |
REDHAT_RELEASE_FILE |
private static java.lang.String |
UNKNOWN |
private static java.util.regex.Pattern |
VERSION_REGEX |
Constructor and Description |
---|
Detector() |
Modifier and Type | Method and Description |
---|---|
private static void |
closeQuietly(java.io.Closeable obj) |
protected void |
detect(java.util.Properties props,
java.util.List<java.lang.String> classifierWithLikes) |
private static Detector.LinuxRelease |
getLinuxRelease() |
protected abstract void |
log(java.lang.String message) |
protected abstract void |
logProperty(java.lang.String name,
java.lang.String value) |
private static java.lang.String |
normalize(java.lang.String value) |
private static java.lang.String |
normalizeArch(java.lang.String value) |
private static java.lang.String |
normalizeOs(java.lang.String value) |
private static java.lang.String |
normalizeOsReleaseValue(java.lang.String value) |
private static Detector.LinuxRelease |
parseLinuxOsReleaseFile(java.io.File file)
Parses a file in the format of
/etc/os-release and return a Detector.LinuxRelease
based on the ID , ID_LIKE , and VERSION_ID entries. |
private static Detector.LinuxRelease |
parseLinuxRedhatReleaseFile(java.io.File file)
Parses the
/etc/redhat-release and returns a Detector.LinuxRelease containing the
ID and like ["rhel", "fedora", ID]. |
private void |
setProperty(java.util.Properties props,
java.lang.String name,
java.lang.String value) |
public static final java.lang.String DETECTED_NAME
public static final java.lang.String DETECTED_ARCH
public static final java.lang.String DETECTED_VERSION
public static final java.lang.String DETECTED_VERSION_MAJOR
public static final java.lang.String DETECTED_VERSION_MINOR
public static final java.lang.String DETECTED_CLASSIFIER
public static final java.lang.String DETECTED_RELEASE
public static final java.lang.String DETECTED_RELEASE_VERSION
public static final java.lang.String DETECTED_RELEASE_LIKE_PREFIX
private static final java.lang.String UNKNOWN
private static final java.lang.String LINUX_ID_PREFIX
private static final java.lang.String LINUX_ID_LIKE_PREFIX
private static final java.lang.String LINUX_VERSION_ID_PREFIX
private static final java.lang.String[] LINUX_OS_RELEASE_FILES
private static final java.lang.String REDHAT_RELEASE_FILE
private static final java.lang.String[] DEFAULT_REDHAT_VARIANTS
private static final java.util.regex.Pattern VERSION_REGEX
private static final java.util.regex.Pattern REDHAT_MAJOR_VERSION_REGEX
protected void detect(java.util.Properties props, java.util.List<java.lang.String> classifierWithLikes)
private void setProperty(java.util.Properties props, java.lang.String name, java.lang.String value)
protected abstract void log(java.lang.String message)
protected abstract void logProperty(java.lang.String name, java.lang.String value)
private static java.lang.String normalizeOs(java.lang.String value)
private static java.lang.String normalizeArch(java.lang.String value)
private static java.lang.String normalize(java.lang.String value)
private static Detector.LinuxRelease getLinuxRelease()
private static Detector.LinuxRelease parseLinuxOsReleaseFile(java.io.File file)
/etc/os-release
and return a Detector.LinuxRelease
based on the ID
, ID_LIKE
, and VERSION_ID
entries.private static Detector.LinuxRelease parseLinuxRedhatReleaseFile(java.io.File file)
/etc/redhat-release
and returns a Detector.LinuxRelease
containing the
ID and like ["rhel", "fedora", ID]. Currently only supported for CentOS, Fedora, and RHEL.
Other variants will return null
.private static java.lang.String normalizeOsReleaseValue(java.lang.String value)
private static void closeQuietly(java.io.Closeable obj)