Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

No Format
uri           = scheme ":" "//" authority 1*( "/" segment )
authority     = host
host          = reg-name
reg-name      = *( unreserved / pct-encoded / sub-delims )
unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
pct-encoded   = "%" HEXDIG HEXDIG

where the { authority component is used to contain the URI of the Path to the archive. Any characters not allow in a reg-name (specifically including "/" and ":") will be pct-encoded.

...

  • a way to read the zip’s central directory
  • a way to seek into a deflated zip entry without inflating the entire thing
  • is a ClassLoader from a list of Path helpful?
  • how to deal with the locking model on Windows platform
  • how to work with Paths that are directories - do we get this for free?
  • how to use the WatchService to detect changes e.g. web.xml or *.jsp touched?

Performance Measurements

TBD

...

The JDK API dealing with Zip archives have not been updated to work with the NIO File APIs:

  • ZipFile's constructor only accepts a java.io.File or a String relating to a file on the default filesystem
  • A zip entry may only be accessed as a sequential InputStream rather than a SeekableByteChannel
  • A ZipInputStream may only be constructed over an InputStream rather than a SeekableByteChannel

The JDK implementation of Zip support uses the native zlib library and maps the archive into memory for direct access and performance. This has implications:

  • The archive content must be accessible from native code
  • Memory mapping a file on some operating systems (e.g. Microsoft Windows) asserts a mandatory file lock which interferes with the "overwrite to re-deploy" mechanism often used in development environments

URL Support

The jar scheme syntax is now formally defined as:

...