VirtualDirContext (Apache Tomcat 7.0.104 API Documentation)

org.apache.naming.resources

## Class VirtualDirContext

- java.lang.Object
- - org.apache.naming.resources.BaseDirContext
  - - org.apache.naming.resources.FileDirContext
    - - org.apache.naming.resources.VirtualDirContext

- All Implemented Interfaces:
    Context, DirContext

      public class VirtualDirContext
      extends FileDirContext

  Extended FileDirContext implementation that allows to expose multiple directories of the filesystem under a single webapp, a feature mainly used for development with IDEs. This should be used in conjunction with `VirtualWebappLoader`. Sample context xml configuration:

      <Context path="/mywebapp" docBase="/Users/theuser/mywebapp/src/main/webapp" >
         <Resources className="org.apache.naming.resources.VirtualDirContext"
                    extraResourcePaths="/pictures=/Users/theuser/mypictures,/movies=/Users/theuser/mymovies" />
         <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
                    virtualClasspath="/Users/theuser/mywebapp/target/classes" />
         <JarScanner scanAllDirectories="true" />
       </Context>

  This is not meant to be used for production. Its meant to ease development with IDE's without the need for fully republishing jars in WEB-INF/lib
  Author:
    Fabrizio Giustina

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.naming.resources.FileDirContext

      `FileDirContext.FileResource, FileDirContext.FileResourceAttributes`

  - ### Field Summary

    - ### Fields inherited from class org.apache.naming.resources.FileDirContext

      `absoluteBase, allowLinking, base, BUFFER_SIZE`

    - ### Fields inherited from class org.apache.naming.resources.BaseDirContext

      `aliases, altDirContexts, cached, cacheMaxSize, cacheObjectMaxSize, cacheTTL, docBase, env, nameParser, sm`

    - ### Fields inherited from interface javax.naming.directory.DirContext

      `ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE`

    - ### Fields inherited from interface javax.naming.Context

      `APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VirtualDirContext()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `allocate()` Allocate resources for this directory context.
    `protected String` | `doGetRealPath(String path)` Return the real path for a given virtual path, if possible; otherwise return `null`.
    `protected Object` | `doLookup(String name)` Retrieves the named object.
    `protected File` | `file(String name)` Return a File object representing the specified normalized context-relative path if it exists and is readable.
    `protected File` | `file(String name, boolean mustExist)` Return a File object representing the specified normalized context-relative path if it exists and is readable.
    `Attributes` | `getAttributes(String name)` Retrieves all of the attributes associated with a named object.
    `protected List<NamingEntry>` | `list(File file)` List the resources which are members of a collection.
    `void` | `release()` Release any resources allocated for this directory context.
    `void` | `setExtraResourcePaths(String path)` Allows to map a path of the filesystem to a path in the webapp.
    `protected File` | `validate(File file, String name, boolean mustExist, String absoluteBase)`

    - ### Methods inherited from class org.apache.naming.resources.FileDirContext

      `bind, createSubcontext, destroySubcontext, doGetAttributes, doListBindings, getAllowLinking, getNameInNamespace, getSchema, getSchemaClassDefinition, lookupLink, modifyAttributes, modifyAttributes, normalize, rebind, rename, search, search, search, search, setAllowLinking, setDocBase, unbind, validate`

    - ### Methods inherited from class org.apache.naming.resources.BaseDirContext

      `addAlias, addAltDirContext, addResourcesJar, addToEnvironment, bind, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, createSubcontext, destroySubcontext, getAliases, getAttributes, getAttributes, getAttributes, getCacheMaxSize, getCacheObjectMaxSize, getCacheTTL, getDocBase, getEnvironment, getNameParser, getNameParser, getRealPath, getSchema, getSchemaClassDefinition, isCached, list, list, listBindings, listBindings, lookup, lookup, lookupLink, modifyAttributes, modifyAttributes, rebind, rebind, rebind, removeAlias, removeFromEnvironment, rename, search, search, search, search, setAliases, setCached, setCacheMaxSize, setCacheObjectMaxSize, setCacheTTL, unbind`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### VirtualDirContext

          public VirtualDirContext()

  - ### Method Detail

    - #### setExtraResourcePaths

          public void setExtraResourcePaths(String path)

      Allows to map a path of the filesystem to a path in the webapp. Multiple filesystem paths can be mapped to the same path in the webapp. Filesystem path and virtual path must be separated by an equal sign. Pairs of paths must be separated by a comma.

      Example: `/=/Users/slaurent/mywebapp/src/main/webapp,/pictures=/Users/slaurent/sharedpictures`

      The path to the docBase must not be added here, otherwise resources would be listed twice.

      Parameters:
        `path` - The set of file system paths and virtual paths to map them to in the required format

    - #### allocate

          public void allocate()

      Allocate resources for this directory context.
      Overrides:
        `allocate` in class `BaseDirContext`

    - #### release

          public void release()

      Release any resources allocated for this directory context.
      Overrides:
        `release` in class `FileDirContext`

    - #### getAttributes

          public Attributes getAttributes(String name)
                                   throws NamingException

      Description copied from class: `BaseDirContext`
      Retrieves all of the attributes associated with a named object.
      Specified by:
        `getAttributes` in interface `DirContext`
      Overrides:
        `getAttributes` in class `BaseDirContext`
      Parameters:
        `name` - the name of the object from which to retrieve attributes
      Returns:
        the set of attributes associated with name
      Throws:
        `NamingException` - if a naming exception is encountered

    - #### file

          protected File file(String name)

      Description copied from class: `FileDirContext`
      Return a File object representing the specified normalized context-relative path if it exists and is readable. Otherwise, return `null`.
      Overrides:
        `file` in class `FileDirContext`
      Parameters:
        `name` - Normalized context-relative path (with leading '/')

    - #### file

          protected File file(String name,
                  boolean mustExist)

      Description copied from class: `FileDirContext`
      Return a File object representing the specified normalized context-relative path if it exists and is readable. Otherwise, return `null`.
      Overrides:
        `file` in class `FileDirContext`
      Parameters:
        `name` - Normalized context-relative path (with leading '/')
        `mustExist` - Must the specified resource exist?

    - #### list

          protected List<NamingEntry> list(File file)

      Description copied from class: `FileDirContext`
      List the resources which are members of a collection.
      Overrides:
        `list` in class `FileDirContext`
      Parameters:
        `file` - Collection
      Returns:
        Vector containing NamingEntry objects

    - #### doLookup

          protected Object doLookup(String name)

      Description copied from class: `FileDirContext`
      Retrieves the named object.
      Overrides:
        `doLookup` in class `FileDirContext`
      Parameters:
        `name` - the name of the object to look up
      Returns:
        the object bound to name

    - #### doGetRealPath

          protected String doGetRealPath(String path)

      Description copied from class: `FileDirContext`
      Return the real path for a given virtual path, if possible; otherwise return `null`.
      Overrides:
        `doGetRealPath` in class `FileDirContext`
      Parameters:
        `path` - The path to the desired resource

    - #### validate

          protected File validate(File file,
                      String name,
                      boolean mustExist,
                      String absoluteBase)

Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.