Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification.
The "Development/NestedFilesystem" page has been changed by jboynes: https://wiki.apache.org/tomcat/Development/NestedFilesystem?action=diff&rev1=1&rev2=2 Zip files may contain data in addition to the archive entries such as executable code for self-extracting archives or text comments describing the archive. + == Zip Indexing == + TBD + == URI Structure == + The !FileSystem API allows a Path to be converted to a URI and a URI to be converted to a Path. The scheme component of the URI is used to identify the !FileSystemProvider but the remaining components are provider specific. The Path.toUri() method mentions that the URI may be used to encode the URI of the enclosing !FileSystem but does not define how that should be done. We define a mechanism based on encoding the parent in the authority component of a hierarchical URI. + Following [[https://www.ietf.org/rfc/rfc3986.txt|RFC 3986]], the format for a Path's URI will be: {{{ + 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. + + As an example, the entry {{{com/example/Main.class}}} located in the archive {{{/tmp/example.jar}}} whose Path has the URI {{{file:///tmp/example.jar}}} would have the URI {{{ + archive:file%3a%2f%2f%2ftmp%2fexample.jar/com/example/Main.class + }}} + If that JAR was included in the {{{WEB-INF/lib}}} directory of a WAR located at {{{/tmp/example.war}}} the full compound URI of the Main class would be {{{ + archive:archive%3afile%253a%252f%252f%252ftmp%25%2fexample.war%2fWEB-INF%2flib%2fexample.jar/com/example/Main.class + }}} + + == URL Support == + TBD + + == URLClassLoader Support == + TBD == ToDos == + * 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 == + = Limitations in standard JDK APIs = == Zip Handling == --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org