Index: api/src/main/java/org/jboss/declarchive/api/container/WebContainer.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/container/WebContainer.java	(revision 3450)
+++ api/src/main/java/org/jboss/declarchive/api/container/WebContainer.java	(working copy)
@@ -1,6 +1,5 @@
 /*
  * JBoss, Home of Professional Open Source
-
  * Copyright 2009, Red Hat Middleware LLC, and individual contributors
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
@@ -18,10 +17,17 @@
 package org.jboss.declarchive.api.container;
 
 import org.jboss.declarchive.api.Archive;
+import org.jboss.declarchive.api.Path;
 
 /**
  * WebContainer
  *
+ * Defines the contract for a component capable of storing 
+ * Web related resources.
+ * <br/><br/>
+ * The actual path to the Web resources within the Archive 
+ * is up to the implementations/specifications.
+ *
  * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
  * @version $Revision: $
  * @param <T>
@@ -32,5 +38,52 @@
    // Contracts --------------------------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
 
-   T setWebXML(String resourceName);
+   /**
+    * Adds a resource to this Archive as web.xml.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation. 
+    * <br/>
+    * For instance a resourceName of "test/example.xml" could be placed in 
+    * "/WEB-INF/web.xml"
+    * 
+    * @param resourceName Name of the ClassLoader resource to add 
+    * @return This virtual archive
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T setWebXML(String resourceName)  throws IllegalArgumentException;
+   
+   /**
+    * Adds the resource with the specified name
+    * to the container, returning the container itself.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation. 
+    * <br/>
+    * For instance a resourceName of "test/example.xml" could be placed in 
+    * "/WEB-INF/test/example.xml"
+    * 
+    * @param resourceName
+    * @return
+    * @throws IllegalArgumentException
+    */
+   T addWebResource(String resourceName) throws IllegalArgumentException;
+   
+   /**
+    * Adds the resource with the specified name
+    * to the container, returning the container itself.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation. 
+    * <br/>
+    * For instance a resourceName of "test/library.xml" and target of "/test/example.xml" could be placed in
+    * "/lib/test/example.xml".
+    * 
+    * @param target The target relative to Manifest path within the archive into which we'll place the resource
+    * @param resourceName Name of the ClassLoader resource to add
+    * @return This virtual archive
+    * @throws IllegalArgumentException if target is null
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T addWebResource(Path target, String resourceName) throws IllegalArgumentException;
 }
Index: api/src/main/java/org/jboss/declarchive/api/container/EnterpriseContainer.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/container/EnterpriseContainer.java	(revision 0)
+++ api/src/main/java/org/jboss/declarchive/api/container/EnterpriseContainer.java	(revision 0)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.declarchive.api.container;
+
+import org.jboss.declarchive.api.Archive;
+import org.jboss.declarchive.api.Path;
+
+/**
+ * EnterpriseContainer
+ * 
+ * Defines the contract for a component capable of storing 
+ * Enterprise related resources.
+ * <br/><br/>
+ * The actual path to the Enterprise resources within the Archive 
+ * is up to the implementations/specifications.
+ * 
+ * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public interface EnterpriseContainer<T extends Archive<T>>
+{
+   //-------------------------------------------------------------------------------------||
+   // Contracts --------------------------------------------------------------------------||
+   //-------------------------------------------------------------------------------------||
+
+   /**
+    * Adds a resource to this Archive as application.xml.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation. 
+    * <br/>
+    * For instance a resourceName of "test/example.xml" could be placed in 
+    * "/META-INF/application.xml"
+    * 
+    * @param resourceName Name of the ClassLoader resource to add 
+    * @return This virtual archive
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T setApplicationXML(String resourceName) throws IllegalArgumentException;
+   
+   /**
+    * Adds a resource to this Archives application context.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation.
+    * <br/>
+    * For instance a resourceName of "test/example.xml" could be placed in 
+    * "/META-INF/test/example.xml"
+    *   
+    * @param resourceName Name of the ClassLoader resource to add
+    * @return This virtual archive
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T addApplicationResource(String resourceName) throws IllegalArgumentException;
+   
+   /**
+    * Adds a resource to this Archives application context.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation.
+    * <br/>
+    * For instance a resourceName of "test/example.xml" and a 
+    * target of "example/myexample.xml" could be placed in 
+    * "/META-INF/example/myexample.xml"
+    *   
+    * @param resourceName Name of the ClassLoader resource to add
+    * @param newName New name of the resource in the container
+    * @return This virtual archive
+    * @throws IllegalArgumentException if target is null
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T addApplicationResource(Path target, String resourceName) throws IllegalArgumentException;
+}
Index: api/src/main/java/org/jboss/declarchive/api/container/LibraryContainer.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/container/LibraryContainer.java	(revision 3450)
+++ api/src/main/java/org/jboss/declarchive/api/container/LibraryContainer.java	(working copy)
@@ -17,9 +17,16 @@
 package org.jboss.declarchive.api.container;
 
 import org.jboss.declarchive.api.Archive;
+import org.jboss.declarchive.api.Path;
 
 /**
  * LibraryContainer
+ * 
+ * Defines the contract for a component capable of storing 
+ * Libraries.
+ * <br/><br/>
+ * The actual path to the Library resources within the Archive 
+ * is up to the implementations/specifications.
  *
  * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
  * @version $Revision: $
@@ -30,7 +37,51 @@
    // Contracts --------------------------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
 
-   T addLibrary(String resourceName);
-   T addLibrary(String resourceName, String newName);
-   T addLibrary(Archive<?> archive);
+   /**
+    * Adds the resource with the specified name
+    * as a library to the container, returning the container itself.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation.  The resource will be placed into 
+    * the Container Library path under the same context from which it was retrieved.
+    * <br/>
+    * For instance a resourceName of "test/library.jar" could be placed
+    * "/lib/test/library.jar".
+    * 
+    * @param resourceName Name of the ClassLoader resource to add
+    * @return This virtual archive
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T addLibrary(String resourceName) throws IllegalArgumentException;
+   
+   /**
+    * Adds the resource with the specified name
+    * as a library to the container under the target path, returning the container itself.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation.  The resource will be placed into 
+    * the Containers Library path under the relative target path.
+    * <br/>
+    * For instance a resourceName of "test/library.jar" and target as "/test/example.jar" could be placed in
+    * "/lib/test/example.jar".
+    * 
+    * @param target New name of the resource in the container
+    * @param resourceName Name of the ClassLoader resource to add
+    * @return This virtual archive
+    * @throws IllegalArgumentException if target is null
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T addLibrary(Path target, String resourceName) throws IllegalArgumentException;
+   
+   /**
+    * Add another Archive<?> to this Archive as a Library.
+    * <br/><br/>
+    * For instance a Archive with name 'example.jar' could be placed in
+    * "/lib/example.jar".
+    * 
+    * @param archive The Archive to be added to the Library path
+    * @return This virtual archive
+    * @throws IllegalArgumentException if Archive is null
+    */
+   T addLibrary(Archive<?> archive) throws IllegalArgumentException;
 }
Index: api/src/main/java/org/jboss/declarchive/api/container/ClassContainer.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/container/ClassContainer.java	(revision 3450)
+++ api/src/main/java/org/jboss/declarchive/api/container/ClassContainer.java	(working copy)
@@ -22,7 +22,10 @@
  * ClassContainer
  * 
  * Defines the contract for a component capable of storing 
- * Java Classes
+ * Java Classes.
+ * <br/><br/>
+ * The actual path to the Class resources within the Archive 
+ * is up to the implementations/specifications.
  *
  * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
  * @version $Revision: $
@@ -34,7 +37,7 @@
    //-------------------------------------------------------------------------------------||
 
    /**
-    * Adds the specified Classes to the archive.  
+    * Adds the specified Classes to the archive.
     * 
     * @param classes
     * @return This virtual archive
@@ -45,9 +48,10 @@
    /**
     * Adds all classes in the specified Packages to the archive.
     * 
-    * @param packages
+    * @param recursive Should the packages be added recursively
+    * @param packages All the packages to add
     * @return This virtual archive
     * @throws IllegalArgumentException If no packages were specified
     */
-   T add(Package... packages) throws IllegalArgumentException;
+   T add(boolean recursive, Package... packages) throws IllegalArgumentException;
 }
Index: api/src/main/java/org/jboss/declarchive/api/container/ManifestContainer.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/container/ManifestContainer.java	(revision 3450)
+++ api/src/main/java/org/jboss/declarchive/api/container/ManifestContainer.java	(working copy)
@@ -17,15 +17,73 @@
 package org.jboss.declarchive.api.container;
 
 import org.jboss.declarchive.api.Archive;
+import org.jboss.declarchive.api.Path;
 
+/**
+ * ManifestContainer
+ * 
+ * Defines the contract for a component capable of storing 
+ * Manifest related resources.
+ * <br/><br/>
+ * The actual path to the Manifest resources within the Archive 
+ * is up to the implementations/specifications.
+ *
+ * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ * @param <T>
+ */
 public interface ManifestContainer<T extends Archive<T>>
 {
    //-------------------------------------------------------------------------------------||
    // Contracts --------------------------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
 
-   T setManifest(String resourceName);
-   T addManifestResource(String resourceName);
-   T addManifestResource(String resourceName, String newName);
-   T addManifestResource(String resourceName, String newName, String path);
+   /**
+    * Adds a resource to this Archive as MEANIFEST.MF.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation. 
+    * <br/>
+    * For instance a resourceName of "test/example.txt" could be placed in 
+    * "/META-INF/MANIFEST.MF"
+    * 
+    * @param resourceName Name of the ClassLoader resource to add 
+    * @return This virtual archive
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T setManifest(String resourceName) throws IllegalArgumentException;
+   
+   /**
+    * Adds the resource with the specified name
+    * to the container, returning the container itself.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation. 
+    * <br/>
+    * For instance a resourceName of "test/example.xml" could be placed in 
+    * "/META-INF/test/example.xml"
+    * 
+    * @param resourceName Name of the ClassLoader resource to add 
+    * @return This virtual archive
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T addManifestResource(String resourceName) throws IllegalArgumentException;
+   
+   /**
+    * Adds the resource with the specified name
+    * to the container, returning the container itself.
+    * <br/><br/>
+    * The ClassLoader used to obtain the resource is up to
+    * the implementation. 
+    * <br/>
+    * For instance a resourceName of "test/library.xml" and target of "/test/example.xml" could be placed in
+    * "/META-INF/test/example.xml".
+    * 
+    * @param target The target relative to Manifest path within the archive into which we'll place the resource
+    * @param resourceName Name of the ClassLoader resource to add
+    * @return This virtual archive
+    * @throws IllegalArgumentException if target is null
+    * @throws IllegalArgumentException if resourceName is null
+    */
+   T addManifestResource(Path target, String resourceName) throws IllegalArgumentException;
 }
Index: api/src/main/java/org/jboss/declarchive/api/container/ResourceContainer.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/container/ResourceContainer.java	(revision 3450)
+++ api/src/main/java/org/jboss/declarchive/api/container/ResourceContainer.java	(working copy)
@@ -26,6 +26,9 @@
  * 
  * Defines the contract for a component capable of storing 
  * a series of ClassLoader resources
+ * <br/><br/>
+ * The actual path to the Resources within the Archive 
+ * is up to the implementations/specifications.
  *
  * @author <a href="mailto:andrew.rubinger@jboss.org">ALR</a>
  * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
@@ -40,20 +43,24 @@
    /**
     * Adds the resource with the specified name
     * to the container, returning the container itself.
+    * <br/><br/>
     * The ClassLoader used to obtain the resource is up to
     * the implementation.  The resource will be placed into 
     * the Container under the same context from which it was retrieved.
-    * For instance a name of "META-INF/resource.xml" will be placed
+    * <br/>
+    * For instance a resourceName of "META-INF/resource.xml" will be placed
     * at the same location within the Container.
     * 
     * @param resourceName Name of the ClassLoader resource to add
-    * @throws IllegalArgumentException If the name is not specified
+    * @return This virtual archive
+    * @throws IllegalArgumentException If the name is null
     */
    T addResource(String resourceName) throws IllegalArgumentException;
 
    /**
     * Adds the resource with the specified name
     * to the container, returning the container itself.
+    * <br/><br/>
     * The ClassLoader used to obtain the resource is up to
     * the implementation.  The resource will be placed into 
     * the Container under the same context specified by
@@ -61,13 +68,16 @@
     * 
     * @param target The target within the archive into which we'll place the resource
     * @param resourceName Name of the ClassLoader resource to add
-    * @throws IllegalArgumentException If the name or target is not specified
+    * @return This virtual archive
+    * @throws IllegalArgumentException If the target is null
+    * @throws IllegalArgumentException If the resourceName is null
     */
    T addResource(Path target, String resourceName) throws IllegalArgumentException;
 
    /**
     * Adds the resource with the specified name
     * to the container, returning the container itself.
+    * <br/><br/> 
     * The ClassLoader used to obtain the resource is up to
     * the implementation.  The resource will be placed into 
     * the Container under the same context specified by
@@ -75,7 +85,9 @@
     * 
     * @param target The target within the archive into which we'll place the resource
     * @param resourceName Name of the ClassLoader resource to add
-    * @throws IllegalArgumentException If the name or target is not specified
+    * @return This virtual archive
+    * @throws IllegalArgumentException If the target is null
+    * @throws IllegalArgumentException If the resourceName is null
     */
    T addResource(String target, String resourceName) throws IllegalArgumentException;
 
@@ -84,21 +96,23 @@
     * to load the resource
     * 
     * @param target The target within the archive into which we'll place the resource
-    * @param name
-    * @param cl
-    * @return
-    * @throws IllegalArgumentException If either the name or ClassLoader is not specified
+    * @param resourceName The name of the resource to load
+    * @param classLoader The ClassLoader from where the resource should be loaded
+    * @return This virtual archive
+    * @throws IllegalArgumentException If the target is null
+    * @throws IllegalArgumentException If the resourceName is null
+    * @throws IllegalArgumentException If the classLoader is null
     */
-   T addResource(Path target, String name, ClassLoader cl) throws IllegalArgumentException;
+   T addResource(Path target, String resourceName, ClassLoader classLoader) throws IllegalArgumentException;
 
    /**
     * Adds the resource located at the specified URL to the archive.  The
     * location within the archive will be equal to the path portion of the 
     * specified URL.
     * 
-    * @param location
-    * @return
-    * @throws IllegalArgumentException If the location is not specified
+    * @param location The location of the resource to load
+    * @return This virtual archive
+    * @throws IllegalArgumentException If the location is null
     */
    T addResource(URL location) throws IllegalArgumentException;
 
@@ -106,12 +120,12 @@
     * Adds the resource located at the specified URL to
     * the archive at the specified path.
     * 
-    * @param location
-    * @param newPath The new path to assign, or null if 
-    *   the path portion of the location should be used
-    * @return
-    * @throws IllegalArgumentException If the location is not specified 
+    * @param newtarget The target within the archive into which we'll place the resource
+    * @param location The location of the resource to load
+    * @return This virtual archive
+    * @throws IllegalArgumentException If the target is null
+    * @throws IllegalArgumentException If the location is null 
     */
-   T addResource(URL location, String newPath) throws IllegalArgumentException;
+   T addResource(Path target, URL location) throws IllegalArgumentException;
 
 }
Index: api/src/main/java/org/jboss/declarchive/api/jar/WebArchive.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/jar/WebArchive.java	(revision 3450)
+++ api/src/main/java/org/jboss/declarchive/api/jar/WebArchive.java	(working copy)
@@ -16,16 +16,28 @@
  */
 package org.jboss.declarchive.api.jar;
 
+
 import org.jboss.declarchive.api.Archive;
+import org.jboss.declarchive.api.container.ClassContainer;
+import org.jboss.declarchive.api.container.LibraryContainer;
 import org.jboss.declarchive.api.container.ManifestContainer;
 import org.jboss.declarchive.api.container.WebContainer;
 
 /**
  * WebArchive
+ * 
+ * Traditional WAR (Java Web Archive) structure. Used in 
+ * construction of web applications.
  *
+ * @see TODO: find war spec doc url
  * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
  * @version $Revision: $
  */
-public interface WebArchive extends Archive<WebArchive>, ManifestContainer<WebArchive>, WebContainer<WebArchive>
+public interface WebArchive extends 
+      Archive<WebArchive>, 
+      ManifestContainer<WebArchive>,
+      ClassContainer<WebArchive>,
+      LibraryContainer<WebArchive>,
+      WebContainer<WebArchive>
 {
 }
Index: api/src/main/java/org/jboss/declarchive/api/jar/EnterpriseArchive.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/jar/EnterpriseArchive.java	(revision 0)
+++ api/src/main/java/org/jboss/declarchive/api/jar/EnterpriseArchive.java	(revision 0)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.declarchive.api.jar;
+
+import org.jboss.declarchive.api.Archive;
+import org.jboss.declarchive.api.container.EnterpriseContainer;
+import org.jboss.declarchive.api.container.LibraryContainer;
+import org.jboss.declarchive.api.container.ManifestContainer;
+import org.jboss.declarchive.api.container.ResourceContainer;
+
+/**
+ * EnterpriseArchive
+ *
+ * Traditional EAR (Java Enterprise Archive) structure. Used in 
+ * construction of enterprise applications.
+ *
+ * @see TODO: find ear spec doc url
+ * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public interface EnterpriseArchive extends 
+      Archive<EnterpriseArchive>, 
+      ResourceContainer<EnterpriseArchive>, 
+      ManifestContainer<EnterpriseArchive>, 
+      LibraryContainer<EnterpriseArchive>,
+      EnterpriseContainer<EnterpriseArchive>
+{
+
+}
Index: api/src/main/java/org/jboss/declarchive/api/jar/JavaArchive.java
===================================================================
--- api/src/main/java/org/jboss/declarchive/api/jar/JavaArchive.java	(revision 3458)
+++ api/src/main/java/org/jboss/declarchive/api/jar/JavaArchive.java	(working copy)
@@ -16,56 +16,26 @@
  */
 package org.jboss.declarchive.api.jar;
 
-import java.io.File;
-import java.net.URL;
-
 import org.jboss.declarchive.api.Archive;
+import org.jboss.declarchive.api.container.ClassContainer;
+import org.jboss.declarchive.api.container.ManifestContainer;
+import org.jboss.declarchive.api.container.ResourceContainer;
 
 /**
  * JavaArchive
  * 
- * Traditional JAR (Java ARchive) structure.  Used in 
+ * Traditional JAR (Java ARchive) structure. Used in 
  * construction of libraries and applications.
  *
  * @see http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html
  * @author <a href="mailto:andrew.rubinger@jboss.org">ALR</a>
+ * @author <a href="mailto:aslak@conduct.no">Aslak Knutsen</a>
  * @version $Revision: $
  */
-public interface JavaArchive extends Archive<JavaArchive>
+public interface JavaArchive extends 
+      Archive<JavaArchive>, 
+      ResourceContainer<JavaArchive>, 
+      ManifestContainer<JavaArchive>, 
+      ClassContainer<JavaArchive>
 {
-
-   //-------------------------------------------------------------------------------------||
-   // Contracts --------------------------------------------------------------------------||
-   //-------------------------------------------------------------------------------------||
-
-   /**
-    * Adds the File with the specified path as the JAR Manifest.  This will
-    * be placed into the archive as <code>META-INF/MANIFEST.MF</code>
-    * 
-    * @param manifestFilePath The path to the file file to use as the JAR Manifest.
-    * @throws IllegalArgumentException If the path does not point to a valid file 
-    *       or was not specified
-    */
-   JavaArchive addManifest(String manifestFilePath) throws IllegalArgumentException;
-
-   /**
-    * Adds the specified File as the JAR Manifest.  This will
-    * be placed into the archive as <code>META-INF/MANIFEST.MF</code>
-    * 
-    * @param manifestFile The file to use as the JAR Manifest.
-    * @throws IllegalArgumentException If the file does not exist or
-    *       was not specified
-    */
-   JavaArchive addManifest(File manifestFile) throws IllegalArgumentException;
-
-   /**
-    * Adds the specified URL as the JAR Manifest.  This will
-    * be placed into the archive as <code>META-INF/MANIFEST.MF</code>
-    * 
-    * @param manifestFile The file to use as the JAR Manifest.
-    * @throws IllegalArgumentException If the URL could not be obtained or
-    *       was not specified
-    */
-   JavaArchive addManifest(URL manifestFile) throws IllegalArgumentException;
-
 }
