org.apache.tools.ant.taskdefs

Class Manifest


public class Manifest
extends java.lang.Object

Holds the data of a jar manifest. Manifests are processed according to the Jar file specification.. Specifically, a manifest element consists of a set of attributes and sections. These sections in turn may contain attributes. Note in particular that this may result in manifest lines greater than 72 bytes being wrapped and continued on the next line. If an application can not handle the continuation mechanism, it is a defect in the application, not this task.
Since:
Ant 1.4

Nested Class Summary

static class
Manifest.Attribute
An attribute for the manifest.
static class
Manifest.Section
A manifest section - you can nest attribute elements into sections.

Field Summary

static String
ATTRIBUTE_CLASSPATH
The Class-Path Header is special - it can be duplicated
static String
ATTRIBUTE_FROM
The From Header is disallowed in a Manifest
static String
ATTRIBUTE_MANIFEST_VERSION
The standard manifest version header
static String
ATTRIBUTE_NAME
The Name Attribute is the first in a named section
static String
ATTRIBUTE_SIGNATURE_VERSION
The standard Signature Version header
static String
DEFAULT_MANIFEST_VERSION
Default Manifest version if one is not specified
static String
EOL
The End-Of-Line marker in manifests
static int
MAX_LINE_LENGTH
The max length of a line in a Manifest
static int
MAX_SECTION_LENGTH
Max length of a line section which is continued.

Constructor Summary

Manifest()
Construct an empty manifest
Manifest(Reader r)
Read a manifest file from the given reader

Method Summary

void
addConfiguredAttribute(Manifest.Attribute attribute)
Add an attribute to the manifest - it is added to the main section.
void
addConfiguredSection(Manifest.Section section)
Add a section to the manifest
boolean
equals(Object rhs)
static Manifest
getDefaultManifest()
Construct a manifest from Ant's default manifest file.
Manifest.Section
getMainSection()
Get the main section of the manifest
String
getManifestVersion()
Get the version of the manifest
Manifest.Section
getSection(String name)
Get a particular section from the manifest
Enumeration
getSectionNames()
Get the section names in this manifest.
Enumeration
getWarnings()
Get the warnings for this manifest.
int
hashCode()
void
merge(Manifest other)
Merge the contents of the given manifest into this manifest
void
merge(Manifest other, boolean overwriteMain)
Merge the contents of the given manifest into this manifest
String
toString()
Convert the manifest to its string representation
void
write(PrintWriter writer)
Write the manifest out to a print writer.

Field Details

ATTRIBUTE_CLASSPATH

public static final String ATTRIBUTE_CLASSPATH
The Class-Path Header is special - it can be duplicated

ATTRIBUTE_FROM

public static final String ATTRIBUTE_FROM
The From Header is disallowed in a Manifest

ATTRIBUTE_MANIFEST_VERSION

public static final String ATTRIBUTE_MANIFEST_VERSION
The standard manifest version header

ATTRIBUTE_NAME

public static final String ATTRIBUTE_NAME
The Name Attribute is the first in a named section

ATTRIBUTE_SIGNATURE_VERSION

public static final String ATTRIBUTE_SIGNATURE_VERSION
The standard Signature Version header

DEFAULT_MANIFEST_VERSION

public static final String DEFAULT_MANIFEST_VERSION
Default Manifest version if one is not specified

EOL

public static final String EOL
The End-Of-Line marker in manifests

MAX_LINE_LENGTH

public static final int MAX_LINE_LENGTH
The max length of a line in a Manifest
Field Value:
72

MAX_SECTION_LENGTH

public static final int MAX_SECTION_LENGTH
Max length of a line section which is continued. Need to allow for the CRLF.
Field Value:
70

Constructor Details

Manifest

public Manifest()
Construct an empty manifest

Manifest

public Manifest(Reader r)
            throws ManifestException,
                   IOException
Read a manifest file from the given reader
Parameters:
r - is the reader from which the Manifest is read
Throws:
ManifestException - if the manifest is not valid according to the JAR spec

Method Details

addConfiguredAttribute

public void addConfiguredAttribute(Manifest.Attribute attribute)
            throws ManifestException
Add an attribute to the manifest - it is added to the main section.
Parameters:
attribute - the attribute to be added.
Throws:
ManifestException - if the attribute is not valid.

addConfiguredSection

public void addConfiguredSection(Manifest.Section section)
            throws ManifestException
Add a section to the manifest
Parameters:
section - the manifest section to be added
Throws:
ManifestException - if the secti0on is not valid.

equals

public boolean equals(Object rhs)
See Also:
java.lang.Object.equals

getDefaultManifest

public static Manifest getDefaultManifest()
            throws BuildException
Construct a manifest from Ant's default manifest file.
Returns:
the default manifest.
Throws:
BuildException - if there is a problem loading the default manifest

getMainSection

public Manifest.Section getMainSection()
Get the main section of the manifest
Returns:
the main section of the manifest

getManifestVersion

public String getManifestVersion()
Get the version of the manifest
Returns:
the manifest's version string

getSection

public Manifest.Section getSection(String name)
Get a particular section from the manifest
Parameters:
name - the name of the section desired.
Returns:
the specified section or null if that section does not exist in the manifest

getSectionNames

public Enumeration getSectionNames()
Get the section names in this manifest.
Returns:
an Enumeration of section names

getWarnings

public Enumeration getWarnings()
Get the warnings for this manifest.
Returns:
an enumeration of warning strings

hashCode

public int hashCode()
See Also:
java.lang.Object.hashCode

merge

public void merge(Manifest other)
            throws ManifestException
Merge the contents of the given manifest into this manifest
Parameters:
other - the Manifest to be merged with this one.
Throws:
ManifestException - if there is a problem merging the manifest according to the Manifest spec.

merge

public void merge(Manifest other,
                  boolean overwriteMain)
            throws ManifestException
Merge the contents of the given manifest into this manifest
Parameters:
other - the Manifest to be merged with this one.
overwriteMain - whether to overwrite the main section of the current manifest
Throws:
ManifestException - if there is a problem merging the manifest according to the Manifest spec.

toString

public String toString()
Convert the manifest to its string representation
Returns:
a multiline string with the Manifest as it appears in a Manifest file.

write

public void write(PrintWriter writer)
            throws IOException
Write the manifest out to a print writer.
Parameters:
writer - the Writer to which the manifest is written

Copyright B) 2000-2008 Apache Software Foundation. All Rights Reserved.