Package kr.motd.maven.os
Class Detector
- java.lang.Object
-
- kr.motd.maven.os.Detector
-
public abstract class Detector extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Detector.LinuxRelease
private static class
Detector.SimpleFileOperations
private static class
Detector.SimpleSystemPropertyOperations
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]
DEFAULT_REDHAT_VARIANTS
static java.lang.String
DETECTED_ARCH
static java.lang.String
DETECTED_BITNESS
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 FileOperationProvider
fileOperationProvider
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 SystemPropertyOperationProvider
systemPropertyOperationProvider
private static java.lang.String
UNKNOWN
private static java.util.regex.Pattern
VERSION_REGEX
-
Constructor Summary
Constructors Constructor Description Detector()
Detector(SystemPropertyOperationProvider systemPropertyOperationProvider, FileOperationProvider fileOperationProvider)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private static void
closeQuietly(java.io.Closeable obj)
protected void
detect(java.util.Properties props, java.util.List<java.lang.String> classifierWithLikes)
private int
determineBitness(java.lang.String architecture)
private Detector.LinuxRelease
getLinuxRelease()
static int
guessBitnessFromArchitecture(java.lang.String arch)
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 Detector.LinuxRelease
parseLinuxOsReleaseFile(java.lang.String fileName)
Parses a file in the format of/etc/os-release
and return aDetector.LinuxRelease
based on theID
,ID_LIKE
, andVERSION_ID
entries.private Detector.LinuxRelease
parseLinuxRedhatReleaseFile(java.lang.String fileName)
Parses the/etc/redhat-release
and returns aDetector.LinuxRelease
containing the ID and like ["rhel", "fedora", ID].private void
setProperty(java.util.Properties props, java.lang.String name, java.lang.String value)
-
-
-
Field Detail
-
DETECTED_NAME
public static final java.lang.String DETECTED_NAME
- See Also:
- Constant Field Values
-
DETECTED_ARCH
public static final java.lang.String DETECTED_ARCH
- See Also:
- Constant Field Values
-
DETECTED_BITNESS
public static final java.lang.String DETECTED_BITNESS
- See Also:
- Constant Field Values
-
DETECTED_VERSION
public static final java.lang.String DETECTED_VERSION
- See Also:
- Constant Field Values
-
DETECTED_VERSION_MAJOR
public static final java.lang.String DETECTED_VERSION_MAJOR
- See Also:
- Constant Field Values
-
DETECTED_VERSION_MINOR
public static final java.lang.String DETECTED_VERSION_MINOR
- See Also:
- Constant Field Values
-
DETECTED_CLASSIFIER
public static final java.lang.String DETECTED_CLASSIFIER
- See Also:
- Constant Field Values
-
DETECTED_RELEASE
public static final java.lang.String DETECTED_RELEASE
- See Also:
- Constant Field Values
-
DETECTED_RELEASE_VERSION
public static final java.lang.String DETECTED_RELEASE_VERSION
- See Also:
- Constant Field Values
-
DETECTED_RELEASE_LIKE_PREFIX
public static final java.lang.String DETECTED_RELEASE_LIKE_PREFIX
- See Also:
- Constant Field Values
-
UNKNOWN
private static final java.lang.String UNKNOWN
- See Also:
- Constant Field Values
-
LINUX_ID_PREFIX
private static final java.lang.String LINUX_ID_PREFIX
- See Also:
- Constant Field Values
-
LINUX_ID_LIKE_PREFIX
private static final java.lang.String LINUX_ID_LIKE_PREFIX
- See Also:
- Constant Field Values
-
LINUX_VERSION_ID_PREFIX
private static final java.lang.String LINUX_VERSION_ID_PREFIX
- See Also:
- Constant Field Values
-
LINUX_OS_RELEASE_FILES
private static final java.lang.String[] LINUX_OS_RELEASE_FILES
-
REDHAT_RELEASE_FILE
private static final java.lang.String REDHAT_RELEASE_FILE
- See Also:
- Constant Field Values
-
DEFAULT_REDHAT_VARIANTS
private static final java.lang.String[] DEFAULT_REDHAT_VARIANTS
-
VERSION_REGEX
private static final java.util.regex.Pattern VERSION_REGEX
-
REDHAT_MAJOR_VERSION_REGEX
private static final java.util.regex.Pattern REDHAT_MAJOR_VERSION_REGEX
-
systemPropertyOperationProvider
private final SystemPropertyOperationProvider systemPropertyOperationProvider
-
fileOperationProvider
private final FileOperationProvider fileOperationProvider
-
-
Constructor Detail
-
Detector
public Detector()
-
Detector
public Detector(SystemPropertyOperationProvider systemPropertyOperationProvider, FileOperationProvider fileOperationProvider)
-
-
Method Detail
-
detect
protected void detect(java.util.Properties props, java.util.List<java.lang.String> classifierWithLikes)
-
setProperty
private void setProperty(java.util.Properties props, java.lang.String name, java.lang.String value)
-
log
protected abstract void log(java.lang.String message)
-
logProperty
protected abstract void logProperty(java.lang.String name, java.lang.String value)
-
normalizeOs
private static java.lang.String normalizeOs(java.lang.String value)
-
normalizeArch
private static java.lang.String normalizeArch(java.lang.String value)
-
normalize
private static java.lang.String normalize(java.lang.String value)
-
getLinuxRelease
private Detector.LinuxRelease getLinuxRelease()
-
parseLinuxOsReleaseFile
private Detector.LinuxRelease parseLinuxOsReleaseFile(java.lang.String fileName)
Parses a file in the format of/etc/os-release
and return aDetector.LinuxRelease
based on theID
,ID_LIKE
, andVERSION_ID
entries.
-
parseLinuxRedhatReleaseFile
private Detector.LinuxRelease parseLinuxRedhatReleaseFile(java.lang.String fileName)
Parses the/etc/redhat-release
and returns aDetector.LinuxRelease
containing the ID and like ["rhel", "fedora", ID]. Currently only supported for CentOS, Fedora, and RHEL. Other variants will returnnull
.
-
normalizeOsReleaseValue
private static java.lang.String normalizeOsReleaseValue(java.lang.String value)
-
determineBitness
private int determineBitness(java.lang.String architecture)
-
guessBitnessFromArchitecture
public static int guessBitnessFromArchitecture(java.lang.String arch)
-
closeQuietly
private static void closeQuietly(java.io.Closeable obj)
-
-