Package org.whitesource.agent.archive
Class ArchiveExtractor
- java.lang.Object
-
- org.whitesource.agent.archive.ArchiveExtractor
-
public class ArchiveExtractor extends java.lang.Object- Author:
- anna.rozin
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringBZ_SUFFIXstatic java.lang.StringCPIOstatic java.lang.StringDEPTHstatic java.lang.StringDEPTH_REGEXstatic java.lang.StringGEM_EXTENSION_PATTERNstatic java.util.List<java.lang.String>GEM_EXTENSIONSstatic java.lang.StringGLOB_PATTERN_PREFIXstatic java.lang.StringGLOB_PREFIXstatic java.lang.StringGZ_SUFFIXstatic java.lang.StringLAYER_TARstatic intLONG_BOUNDstatic java.lang.StringLZMAstatic java.lang.StringNULL_HEADERstatic java.lang.StringPATTERN_PREFIXstatic java.lang.StringRAR_EXTENSION_PATTERNstatic java.util.List<java.lang.String>RAR_EXTENSIONSstatic java.lang.StringRPM_EXTENSION_PATTERNstatic java.util.List<java.lang.String>RPM_EXTENSIONSstatic java.lang.StringRUBY_DATA_FILEstatic java.lang.StringTAR_BZ2_SUFFIXstatic java.lang.StringTAR_EXTENSION_PATTERNstatic java.util.List<java.lang.String>TAR_EXTENSIONSstatic java.lang.StringTAR_GZ_SUFFIXstatic java.lang.StringTAR_SUFFIXstatic java.lang.StringTGZ_SUFFIXstatic java.lang.StringUN_ARCHIVER_LOGGERstatic java.lang.StringXZ_SUFFIXstatic java.lang.StringXZ_UN_ARCHIVER_FILE_NAMEstatic java.lang.StringZIP_EXTENSION_PATTERNstatic java.util.List<java.lang.String>ZIP_EXTENSIONS
-
Constructor Summary
Constructors Constructor Description ArchiveExtractor(java.lang.String[] archiveIncludes, java.lang.String[] archiveExcludes, java.lang.String[] filesExcludes)ArchiveExtractor(java.lang.String[] archiveIncludes, java.lang.String[] archiveExcludes, java.lang.String[] filesExcludes, boolean fastUnpack)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringextractArchives(java.lang.String scannerBaseDir, int archiveExtractionDepth, java.util.List<java.lang.String> archiveDirectories)The Method extracts all the Archive files according to the archiveExtractionDepth.voidextractDockerImageLayers(java.io.File imageTarFile, java.io.File imageExtractionDir)java.util.Map<java.lang.String,java.lang.String>processCollections(java.util.Collection<Pair> unitsOfWork)booleanunXz(java.io.File srcFileToArchive, java.lang.String destFilePath)
-
-
-
Field Detail
-
LAYER_TAR
public static final java.lang.String LAYER_TAR
- See Also:
- Constant Field Values
-
LONG_BOUND
public static final int LONG_BOUND
- See Also:
- Constant Field Values
-
DEPTH
public static final java.lang.String DEPTH
- See Also:
- Constant Field Values
-
DEPTH_REGEX
public static final java.lang.String DEPTH_REGEX
- See Also:
- Constant Field Values
-
GLOB_PREFIX
public static final java.lang.String GLOB_PREFIX
- See Also:
- Constant Field Values
-
NULL_HEADER
public static final java.lang.String NULL_HEADER
- See Also:
- Constant Field Values
-
ZIP_EXTENSIONS
public static final java.util.List<java.lang.String> ZIP_EXTENSIONS
-
GEM_EXTENSIONS
public static final java.util.List<java.lang.String> GEM_EXTENSIONS
-
TAR_EXTENSIONS
public static final java.util.List<java.lang.String> TAR_EXTENSIONS
-
RPM_EXTENSIONS
public static final java.util.List<java.lang.String> RPM_EXTENSIONS
-
RAR_EXTENSIONS
public static final java.util.List<java.lang.String> RAR_EXTENSIONS
-
ZIP_EXTENSION_PATTERN
public static final java.lang.String ZIP_EXTENSION_PATTERN
-
GEM_EXTENSION_PATTERN
public static final java.lang.String GEM_EXTENSION_PATTERN
-
TAR_EXTENSION_PATTERN
public static final java.lang.String TAR_EXTENSION_PATTERN
-
RPM_EXTENSION_PATTERN
public static final java.lang.String RPM_EXTENSION_PATTERN
-
RAR_EXTENSION_PATTERN
public static final java.lang.String RAR_EXTENSION_PATTERN
-
RUBY_DATA_FILE
public static final java.lang.String RUBY_DATA_FILE
- See Also:
- Constant Field Values
-
TAR_SUFFIX
public static final java.lang.String TAR_SUFFIX
- See Also:
- Constant Field Values
-
GZ_SUFFIX
public static final java.lang.String GZ_SUFFIX
- See Also:
- Constant Field Values
-
BZ_SUFFIX
public static final java.lang.String BZ_SUFFIX
- See Also:
- Constant Field Values
-
XZ_SUFFIX
public static final java.lang.String XZ_SUFFIX
- See Also:
- Constant Field Values
-
LZMA
public static final java.lang.String LZMA
- See Also:
- Constant Field Values
-
CPIO
public static final java.lang.String CPIO
- See Also:
- Constant Field Values
-
TGZ_SUFFIX
public static final java.lang.String TGZ_SUFFIX
- See Also:
- Constant Field Values
-
TAR_GZ_SUFFIX
public static final java.lang.String TAR_GZ_SUFFIX
- See Also:
- Constant Field Values
-
TAR_BZ2_SUFFIX
public static final java.lang.String TAR_BZ2_SUFFIX
- See Also:
- Constant Field Values
-
UN_ARCHIVER_LOGGER
public static final java.lang.String UN_ARCHIVER_LOGGER
- See Also:
- Constant Field Values
-
GLOB_PATTERN_PREFIX
public static final java.lang.String GLOB_PATTERN_PREFIX
- See Also:
- Constant Field Values
-
PATTERN_PREFIX
public static final java.lang.String PATTERN_PREFIX
- See Also:
- Constant Field Values
-
XZ_UN_ARCHIVER_FILE_NAME
public static final java.lang.String XZ_UN_ARCHIVER_FILE_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ArchiveExtractor
public ArchiveExtractor(java.lang.String[] archiveIncludes, java.lang.String[] archiveExcludes, java.lang.String[] filesExcludes, boolean fastUnpack)
-
ArchiveExtractor
public ArchiveExtractor(java.lang.String[] archiveIncludes, java.lang.String[] archiveExcludes, java.lang.String[] filesExcludes)
-
-
Method Detail
-
extractArchives
public java.lang.String extractArchives(java.lang.String scannerBaseDir, int archiveExtractionDepth, java.util.List<java.lang.String> archiveDirectories)The Method extracts all the Archive files according to the archiveExtractionDepth. archiveExtractionDepth defined by the user in the configuration file.The archiveExtractionDepth default value is 0 - no archive scanning, the max value is 3. By default the method scans jar/war/ear. If archiveIncludes/archiveExcludes params are defined the method will act accordingly.
- Parameters:
scannerBaseDir- - directory for scanning.archiveExtractionDepth- - drill down hierarchy level in archive filesarchiveDirectories- list of directories- Returns:
- the temp directory for the extracted files.
-
extractDockerImageLayers
public void extractDockerImageLayers(java.io.File imageTarFile, java.io.File imageExtractionDir)
-
processCollections
public java.util.Map<java.lang.String,java.lang.String> processCollections(java.util.Collection<Pair> unitsOfWork)
-
unXz
public boolean unXz(java.io.File srcFileToArchive, java.lang.String destFilePath)
-
-