Package org.apache.catalina.startup

## Class ExpandWar

- java.lang.Object
- - org.apache.catalina.startup.ExpandWar

    public class ExpandWar
    extends java.lang.Object

Expand out a WAR in a Host's appBase.

Author:
  Craig R. McClanahan, Remy Maucherat, Glenn L. Nielsen

### Field Summary

Fields
`protected static StringManager` `sm` The string resources for this package.

### Constructor Summary

Constructors
`ExpandWar()`

### Method Summary

All Methods Static Methods Concrete Methods
`static boolean` `copy​(java.io.File src, java.io.File dest)` Copy the specified file or directory to the destination.
`static boolean` `delete​(java.io.File dir)` Delete the specified directory, including all of its contents and sub-directories recursively.
`static boolean` `delete​(java.io.File dir, boolean logFailure)` Delete the specified directory, including all of its contents and sub-directories recursively.
`static boolean` `deleteDir​(java.io.File dir)` Delete the specified directory, including all of its contents and sub-directories recursively.
`static boolean` `deleteDir​(java.io.File dir, boolean logFailure)` Delete the specified directory, including all of its contents and sub-directories recursively.
`static java.lang.String` `expand​(Host host, java.net.URL war, java.lang.String pathname)` Expand the WAR file found at the specified URL into an unpacked directory structure.
`static void` `validate​(Host host, java.net.URL war, java.lang.String pathname)` Validate the WAR file found at the specified URL.

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

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

### Field Detail

#### sm

    protected static final StringManager sm

The string resources for this package.

### Constructor Detail

#### ExpandWar

    public ExpandWar()

### Method Detail

#### expand

    public static java.lang.String expand​(Host host,
                                          java.net.URL war,
                                          java.lang.String pathname)
                                   throws java.io.IOException

Expand the WAR file found at the specified URL into an unpacked directory structure.

Parameters:
  `host` - Host war is being installed for
  `war` - URL of the web application archive to be expanded (must start with "jar:")
  `pathname` - Context path name for web application
Returns:
  The absolute path to the expanded directory foe the given WAR
Throws:
  `java.lang.IllegalArgumentException` - if this is not a "jar:" URL or if the WAR file is invalid
  `java.io.IOException` - if an input/output error was encountered during expansion

#### validate

    public static void validate​(Host host,
                                java.net.URL war,
                                java.lang.String pathname)
                         throws java.io.IOException

Validate the WAR file found at the specified URL.

Parameters:
  `host` - Host war is being installed for
  `war` - URL of the web application archive to be validated (must start with "jar:")
  `pathname` - Context path name for web application
Throws:
  `java.lang.IllegalArgumentException` - if this is not a "jar:" URL or if the WAR file is invalid
  `java.io.IOException` - if an input/output error was encountered during validation

#### copy

    public static boolean copy​(java.io.File src,
                               java.io.File dest)

Copy the specified file or directory to the destination.

Parameters:
  `src` - File object representing the source
  `dest` - File object representing the destination
Returns:
  `true` if the copy was successful

#### delete

    public static boolean delete​(java.io.File dir)

Delete the specified directory, including all of its contents and sub-directories recursively. Any failure will be logged.

Parameters:
  `dir` - File object representing the directory to be deleted
Returns:
  `true` if the deletion was successful

#### delete

    public static boolean delete​(java.io.File dir,
                                 boolean logFailure)

Delete the specified directory, including all of its contents and sub-directories recursively.

Parameters:
  `dir` - File object representing the directory to be deleted
  `logFailure` - `true` if failure to delete the resource should be logged
Returns:
  `true` if the deletion was successful

#### deleteDir

    public static boolean deleteDir​(java.io.File dir)

Delete the specified directory, including all of its contents and sub-directories recursively. Any failure will be logged.

Parameters:
  `dir` - File object representing the directory to be deleted
Returns:
  `true` if the deletion was successful

#### deleteDir

    public static boolean deleteDir​(java.io.File dir,
                                    boolean logFailure)

Delete the specified directory, including all of its contents and sub-directories recursively.

Parameters:
  `dir` - File object representing the directory to be deleted
  `logFailure` - `true` if failure to delete the resource should be logged
Returns:
  `true` if the deletion was successful