abstract class IndexBasedZipOps extends CreateZip
Provides efficient implementation of operations on zip files * that are used for implementation of the Straight to Jar feature.
The implementation is based on index (aka central directory) that is located at the end of the zip file and contains among others the name/path and offset where the actual data of stored file is located. Reading zips should always be done based on that index, which means that it is often enough to manipulate this index without rewriting the other part of the file. This class heavily relies on this fact.
This class abstracts over the actual operations on index i.e. reading, manipulating and storing it making it easy to replace.
- Alphabetic
- By Inheritance
- IndexBasedZipOps
- CreateZip
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new IndexBasedZipOps()
Type Members
-
final
class
CachedStamps extends AnyRef
Reads timestamps of zip entries.
Reads timestamps of zip entries. On the first access to a given zip it reads the timestamps once and keeps them cached for future lookups.
It only supports reading stamps from a single zip. The zip passed as an argument is only used to initialize the cache and is later ignored. This is enough as stamps are only read from the output jar.
-
abstract
type
CentralDir
Represents the central directory (index) of a zip file.
Represents the central directory (index) of a zip file. It must contain the start offset (where it is located in the zip file) and list of headers
-
abstract
type
Header
Represents a header of a zip entry located inside the central directory.
Represents a header of a zip entry located inside the central directory. It has to contain the timestamp, name/path and offset to the actual data in zip file.
Abstract Value Members
-
abstract
def
getCentralDirStart(centralDir: CentralDir): Long
- Attributes
- protected
-
abstract
def
getFileName(header: Header): String
- Attributes
- protected
-
abstract
def
getFileOffset(header: Header): Long
- Attributes
- protected
-
abstract
def
getHeaders(centralDir: CentralDir): Seq[Header]
- Attributes
- protected
-
abstract
def
getLastModifiedTime(header: Header): Long
- Attributes
- protected
-
abstract
def
readCentralDir(path: Path): CentralDir
- Attributes
- protected
-
abstract
def
setCentralDirStart(centralDir: CentralDir, centralDirStart: Long): Unit
- Attributes
- protected
-
abstract
def
setFileOffset(header: Header, offset: Long): Unit
- Attributes
- protected
-
abstract
def
setHeaders(centralDir: CentralDir, headers: Seq[Header]): Unit
- Attributes
- protected
-
abstract
def
writeCentralDir(centralDir: CentralDir, outputStream: OutputStream): Unit
- Attributes
- protected
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
createZip(target: File, files: Seq[(File, String)]): Unit
- Definition Classes
- CreateZip
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
includeInArchive(zipFile: File, files: Seq[(File, String)]): Unit
Adds
files
(plain files) to the specified zip file.Adds
files
(plain files) to the specified zip file. Implemented by creating a new zip with the plain files. IfzipFile
already exists, the archives will be merged. Plain files are not removed after this operation.- zipFile
A zip file to add files to
- files
a sequence of tuples with actual file to include and the path in the zip where it should be put.
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def listEntries(zipFile: File): Seq[String]
-
def
mergeArchives(into: File, from: File): Unit
Merges two zip files.
Merges two zip files. It works by appending contents of
from
tointo
. Indices are combined, in case of duplicates, the final entries that are used are fromfrom
. The final merged zip is available underinto
path, andfrom
is deleted.- into
the target zip file to merge to
- from
the source zip file that is added/merged to
into
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
readCentralDir(zipFile: File): CentralDir
Reads the current index from given zip file
Reads the current index from given zip file
- zipFile
path to the zip file
- returns
current index
-
def
removeEntries(zipFile: File, entries: Iterable[String]): Unit
Removes specified entries from given zip file by replacing current index with a version without those entries.
Removes specified entries from given zip file by replacing current index with a version without those entries.
- zipFile
the zip file to remove entries from
- entries
paths to files inside the jar e.g. sbt/internal/inc/IndexBasedZipOps.class
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
writeCentralDir(zipFile: File, centralDir: CentralDir): Unit
Replaces index inside the zip file.
Replaces index inside the zip file.
- zipFile
the zip file that should have the index updated
- centralDir
the index to be stored in the file