[jboss-svn-commits] JBoss Common SVN: r4609 - in shrinkwrap/trunk: api/src/main/java/org/jboss/shrinkwrap/api/exporter and 9 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 29 11:54:45 EDT 2010


Author: ALRubinger
Date: 2010-06-29 11:54:44 -0400 (Tue, 29 Jun 2010)
New Revision: 4609

Modified:
   shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archive.java
   shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/exporter/ZipExporter.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/ArchiveBase.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/MemoryMapArchiveBase.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/asset/ArchiveAsset.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/ContainerBase.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/EnterpriseContainerBase.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipArchiveInputStreamFactory.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterImpl.java
   shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableViewImpl.java
   shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExplodedExporterTestCase.java
   shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExportTestBase.java
   shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterStressTest.java
   shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterTestCase.java
   shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImplTestCase.java
   shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableOriginalImpl.java
   shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/test/ArchiveTestBase.java
Log:
[SHRINKWRAP-199] ArchiveAsset to know which exporter to use to fulfill the Asset.openStream contract

Modified: shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archive.java
===================================================================
--- shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archive.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archive.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -19,6 +19,7 @@
 import java.util.Map;
 
 import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
 import org.jboss.shrinkwrap.api.formatter.Formatter;
 import org.jboss.shrinkwrap.api.formatter.Formatters;
 
@@ -209,24 +210,29 @@
    Map<ArchivePath, Node> getContent(Filter<ArchivePath> filter);
 
    /**
-    * Add an archive under a specific context and maintain the archive name as context path.
+    * Add an archive under a specific context and maintain the archive name as 
+    * context path.
     * 
     * @param path to use 
     * @param archive to add
+    * @param exporter Exporter type to use in fulfilling the {@link Asset#openStream()} contract for 
+    *   the added (nested) archive.  
     * @return
-    * @throws IllegalArgumentException If the path or archive are not specified 
+    * @throws IllegalArgumentException If any argument is not specified
     */
-   T add(Archive<?> archive, ArchivePath path) throws IllegalArgumentException;
+   T add(Archive<?> archive, ArchivePath path, Class<? extends StreamExporter> exporter) throws IllegalArgumentException;
    
    /**
     * Add an archive under a specific context and maintain the archive name as context path.
     * 
     * @param path to use 
     * @param archive to add
+    * @param exporter Exporter type to use in fulfilling the {@link Asset#openStream()} contract for 
+    *   the added (nested) archive.  
     * @return
     * @throws IllegalArgumentException If the path or archive are not specified 
     */
-   T add(Archive<?> archive, String path) throws IllegalArgumentException;
+   T add(Archive<?> archive, String path, Class<? extends StreamExporter> exporter) throws IllegalArgumentException;
 
    /**
     * Merge the contents from an existing archive without 

Modified: shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/exporter/ZipExporter.java
===================================================================
--- shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/exporter/ZipExporter.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/exporter/ZipExporter.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -18,7 +18,6 @@
 
 import java.io.File;
 import java.io.InputStream;
-import java.io.OutputStream;
 
 import org.jboss.shrinkwrap.api.Assignable;
 
@@ -31,20 +30,13 @@
  * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
-public interface ZipExporter extends Assignable
+public interface ZipExporter extends StreamExporter
 {
    //-------------------------------------------------------------------------------------||
    // Contracts --------------------------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
 
    /**
-    * Exports this reference as a Zip archive.
-    * 
-    * @return {@link InputStream} for exported Zip
-    */
-   InputStream exportZip();
-
-   /**
     * Exports provided archive as a ZIP archive, written to the 
     * specified {@link File} target.  If the target exists this call will
     * fail with {@link IllegalArgumentException}
@@ -59,17 +51,6 @@
 
    /**
     * Exports provided archive as a ZIP archive, written to the 
-    * specified {@link OutputStream} target.  The specified
-    * target will be closed upon completion.
-    * 
-    * @param target
-    * @throws ArchiveExportException
-    * @throws IllegalArgumentException If the target is not specified
-    */
-   void exportZip(OutputStream target) throws ArchiveExportException, IllegalArgumentException;
-
-   /**
-    * Exports provided archive as a ZIP archive, written to the 
     * specified {@link File} target.  If the target both exists and the "overwrite"
     * flag is true, this call will allow the existing file to be overwritten, else
     * the invocation will fail with {@link IllegalArgumentException}

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/ArchiveBase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/ArchiveBase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/ArchiveBase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -32,6 +32,7 @@
 import org.jboss.shrinkwrap.api.Filters;
 import org.jboss.shrinkwrap.api.Node;
 import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
 import org.jboss.shrinkwrap.api.formatter.Formatter;
 import org.jboss.shrinkwrap.api.formatter.Formatters;
 import org.jboss.shrinkwrap.impl.base.asset.ArchiveAsset;
@@ -89,8 +90,7 @@
     * @param configuration The configuration for this archive
     * @throws IllegalArgumentException If the name was not specified
     */
-   protected ArchiveBase(final String name, final Configuration configuration)
-         throws IllegalArgumentException
+   protected ArchiveBase(final String name, final Configuration configuration) throws IllegalArgumentException
    {
       // Precondition checks
       Validate.notNullOrEmpty(name, "name must be specified");
@@ -173,21 +173,22 @@
 
    /**
     * {@inheritDoc}
-    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.ArchivePath, org.jboss.shrinkwrap.api.Archive)
+    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.ArchivePath, java.lang.Class)
     */
    @Override
-   public T add(final Archive<?> archive, final ArchivePath path)
+   public T add(final Archive<?> archive, final ArchivePath path, Class<? extends StreamExporter> exporter)
    {
       // Precondition checks
       Validate.notNull(path, "No path was specified");
       Validate.notNull(archive, "No archive was specified");
+      Validate.notNull(exporter, "No exporter was specified");
 
       // Make a Path
       final String archiveName = archive.getName();
       final ArchivePath contentPath = new BasicPath(path, archiveName);
 
       // Create ArchiveAsset 
-      ArchiveAsset archiveAsset = new ArchiveAsset(archive);
+      final ArchiveAsset archiveAsset = new ArchiveAsset(archive,exporter);
 
       // Delegate
       return add(archiveAsset, contentPath);

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/MemoryMapArchiveBase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/MemoryMapArchiveBase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/MemoryMapArchiveBase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -26,11 +26,12 @@
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.ArchivePath;
 import org.jboss.shrinkwrap.api.ArchivePaths;
+import org.jboss.shrinkwrap.api.Configuration;
 import org.jboss.shrinkwrap.api.Filter;
 import org.jboss.shrinkwrap.api.IllegalArchivePathException;
 import org.jboss.shrinkwrap.api.Node;
-import org.jboss.shrinkwrap.api.Configuration;
 import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
 import org.jboss.shrinkwrap.impl.base.asset.ArchiveAsset;
 import org.jboss.shrinkwrap.impl.base.path.BasicPath;
 import org.jboss.shrinkwrap.impl.base.path.PathUtil;
@@ -138,35 +139,37 @@
    
    /**
     * {@inheritDoc}
-    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.Archive, java.lang.String)
+    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.Archive, java.lang.String, java.lang.Class)
     */
    @Override
-   public T add(Archive<?> archive, String path)
+   public T add(final Archive<?> archive, final String path, final Class<? extends StreamExporter> exporter)
    {
+      Validate.notNull(archive, "Archive must be specified");
       Validate.notNullOrEmpty(path, "Archive Path must be specified");
-      return this.add(archive, ArchivePaths.create(path));
+      Validate.notNull(exporter, "exporter must be specified");
+      return this.add(archive, ArchivePaths.create(path), exporter);
    }
 
    /**
     * {@inheritDoc}
-    * @see org.jboss.shrinkwrap.impl.base.ArchiveBase#add(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.ArchivePath)
+    * @see org.jboss.shrinkwrap.impl.base.ArchiveBase#add(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.ArchivePath, java.lang.Class)
     */
    @Override
-   public T add(Archive<?> archive, ArchivePath path)
+   public T add(final Archive<?> archive, final ArchivePath path, final Class<? extends StreamExporter> exporter)
    {
       // Add archive asset
-      super.add(archive, path);
+      super.add(archive, path, exporter);
 
       // Expected Archive Path
-      ArchivePath archivePath = new BasicPath(path, archive.getName());
+      final ArchivePath archivePath = new BasicPath(path, archive.getName());
 
       // Get the Asset that was just added 
-      Node node = get(archivePath);
+      final Node node = get(archivePath);
 
       // Make sure it is an ArchiveAsset
       if (node.getAsset() != null && node.getAsset() instanceof ArchiveAsset)
       {
-         ArchiveAsset archiveAsset = ArchiveAsset.class.cast(node.getAsset());
+         final ArchiveAsset archiveAsset = ArchiveAsset.class.cast(node.getAsset());
          // Add asset to ArchiveAsset Map
          nestedArchives.put(archivePath, archiveAsset);
       }

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/asset/ArchiveAsset.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/asset/ArchiveAsset.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/asset/ArchiveAsset.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -20,15 +20,16 @@
 
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.asset.Asset;
-import org.jboss.shrinkwrap.impl.base.ArchiveInputStreamFactory;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
 import org.jboss.shrinkwrap.impl.base.Validate;
 
 /**
- * ArchiveAsset
- * 
- * An {@link Asset} representing an {@link Archive}
+ * An {@link Asset} representing an {@link Archive}; a
+ * specified {@link StreamExporter} type will be used to 
+ * fulfill the {@link Asset#openStream()} contract.
  *
  * @author <a href="mailto:baileyje at gmail.com">John Bailey</a>
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
  * @version $Revision: $
  */
 public class ArchiveAsset implements Asset
@@ -43,34 +44,46 @@
     */
    private final Archive<?> archive;
 
+   /**
+    * Exporter used to represent this archive as a {@link InputStream}
+    */
+   private final Class<? extends StreamExporter> exporter;
+
    //-------------------------------------------------------------------------------------||
    // Constructor ------------------------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
 
    /**
-    * Creates an ArchiveAsset with and archive and a byte array of archive contents
-    * @throws IllegalArgumentException if no archive is provided 
+    * Creates a new instance wrapping the specified {@link Archive}, which
+    * will use the specified {@link StreamExporter} to represent the archive as
+    * an {@link InputStream} in {@link Asset#openStream()}.
+    * 
+    * @param archive
+    * @param exporter
+    * @throws IllegalArgumentException If either argument is not specified 
     */
-   public ArchiveAsset(Archive<?> archive)
+   public ArchiveAsset(final Archive<?> archive, final Class<? extends StreamExporter> exporter)
    {
       Validate.notNull(archive, "archive must be specified");
+      Validate.notNull(exporter, "exporter must be specified");
 
       this.archive = archive;
+      this.exporter = exporter;
    }
 
    //-------------------------------------------------------------------------------------||
    // Required Implementations -----------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
 
-   /*
+   /**
     * {@inheritDoc}
-    * @see org.jboss.shrinkwrap.api.Asset#getStream()
+    * @see org.jboss.shrinkwrap.api.asset.Asset#openStream()
     */
    @Override
    public InputStream openStream()
    {
-      // Get the input stream from the ArchiveInputStreamFactory
-      return ArchiveInputStreamFactory.getInputStream(getArchive());
+      // Export via the specified exporter
+      return this.getArchive().as(this.exporter).export();
    }
 
    /**

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/ContainerBase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/ContainerBase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/ContainerBase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -35,6 +35,8 @@
 import org.jboss.shrinkwrap.api.container.LibraryContainer;
 import org.jboss.shrinkwrap.api.container.ManifestContainer;
 import org.jboss.shrinkwrap.api.container.ResourceContainer;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
 import org.jboss.shrinkwrap.api.formatter.Formatter;
 import org.jboss.shrinkwrap.impl.base.AssignableBase;
 import org.jboss.shrinkwrap.impl.base.URLPackageScanner;
@@ -111,22 +113,23 @@
 
    /**
     * {@inheritDoc}
-    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.Archive, java.lang.String)
+    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.Archive, java.lang.String, java.lang.Class)
     */
    @Override
-   public T add(Archive<?> archive, String path)
+   public T add(final Archive<?> archive, final String path, final Class<? extends StreamExporter> exporter)
    {
-      this.archive.add(archive, path);
+      this.archive.add(archive, path, exporter);
       return covarientReturn();
    }
-   
-   /* (non-Javadoc)
-    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.Path)
+
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.Archive, org.jboss.shrinkwrap.api.ArchivePath, java.lang.Class)
     */
    @Override
-   public T add(Archive<?> archive, ArchivePath path)
+   public T add(final Archive<?> archive, final ArchivePath path, final Class<? extends StreamExporter> exporter)
    {
-      this.archive.add(archive, path);
+      this.archive.add(archive, path, exporter);
       return covarientReturn();
    }
    
@@ -1013,17 +1016,20 @@
     */
    protected abstract ArchivePath getLibraryPath();
    
-   /* (non-Javadoc)
-    * @see org.jboss.declarchive.api.container.LibraryContainer#addLibrary(org.jboss.declarchive.api.Archive)
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.api.container.LibraryContainer#addLibrary(org.jboss.shrinkwrap.api.Archive)
     */
-   public T addLibrary(Archive<?> archive) throws IllegalArgumentException 
+   public T addLibrary(final Archive<?> archive) throws IllegalArgumentException
    {
       Validate.notNull(archive, "Archive must be specified");
-      return add(archive, getLibraryPath());
+      // Libraries are JARs, so add as ZIP
+      return add(archive, getLibraryPath(), ZipExporter.class);
    };
 
-   /* (non-Javadoc)
-    * @see org.jboss.declarchive.api.container.LibraryContainer#addLibrary(java.lang.String)
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.api.container.LibraryContainer#addLibrary(java.lang.String)
     */
    @Override
    public T addLibrary(String resourceName) throws IllegalArgumentException
@@ -1032,7 +1038,8 @@
       return addLibrary(new ClassLoaderAsset(resourceName), resourceName);
    }
    
-   /* (non-Javadoc)
+   /**
+    * {@inheritDoc}
     * @see org.jboss.shrinkwrap.api.container.LibraryContainer#addLibrary(java.io.File)
     */
    @Override
@@ -1042,7 +1049,8 @@
       return addLibrary(new FileAsset(resource), resource.getName());
    }
    
-   /* (non-Javadoc)
+   /**
+    * {@inheritDoc}
     * @see org.jboss.shrinkwrap.api.container.LibraryContainer#addLibrary(java.lang.String, java.lang.String)
     */
    @Override
@@ -1054,7 +1062,8 @@
       return addLibrary(new ClassLoaderAsset(resourceName), target);
    }
    
-   /* (non-Javadoc)
+   /**
+    * {@inheritDoc}
     * @see org.jboss.shrinkwrap.api.container.LibraryContainer#addLibrary(java.io.File, java.lang.String)
     */
    @Override

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/EnterpriseContainerBase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/EnterpriseContainerBase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/EnterpriseContainerBase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -26,6 +26,7 @@
 import org.jboss.shrinkwrap.api.asset.FileAsset;
 import org.jboss.shrinkwrap.api.asset.UrlAsset;
 import org.jboss.shrinkwrap.api.container.EnterpriseContainer;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
 import org.jboss.shrinkwrap.impl.base.Validate;
 import org.jboss.shrinkwrap.impl.base.asset.AssetUtil;
 import org.jboss.shrinkwrap.impl.base.asset.ClassLoaderAsset;
@@ -300,19 +301,22 @@
     */
    protected abstract ArchivePath getModulePath();
    
-   /* (non-Javadoc)
-    * @see org.jboss.declarchive.api.container.EnterpriseContainer#addModule(org.jboss.declarchive.api.Archive)
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.api.container.EnterpriseContainer#addModule(org.jboss.shrinkwrap.api.Archive)
     */
    @Override
-   public T addModule(Archive<?> archive) throws IllegalArgumentException
+   public T addModule(final Archive<?> archive) throws IllegalArgumentException
    {
       Validate.notNull(archive, "Archive must be specified");
       
-      return add(archive, getModulePath());
+      // Add as ZIP, as JARs are :)
+      return add(archive, getModulePath(),ZipExporter.class);
    }
    
-   /* (non-Javadoc)
-    * @see org.jboss.declarchive.api.container.EnterpriseContainer#addModule(java.lang.String)
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.api.container.EnterpriseContainer#addModule(java.lang.String)
     */
    @Override
    public T addModule(String resourceName)

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipArchiveInputStreamFactory.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipArchiveInputStreamFactory.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipArchiveInputStreamFactory.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -45,7 +45,7 @@
    protected InputStream doGetInputStream(Archive<?> archive)
    {
       // Get InputStream from the ZipExporter
-      final InputStream inputStream = archive.as(ZipExporter.class).exportZip();
+      final InputStream inputStream = archive.as(ZipExporter.class).export();
       // Return input stream
       return inputStream;
    }

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterImpl.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterImpl.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterImpl.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -46,6 +46,7 @@
    /**
     * Logger
     */
+   @SuppressWarnings("unused")
    private static final Logger log = Logger.getLogger(ZipExporterImpl.class.getName());
 
    //-------------------------------------------------------------------------------------||
@@ -63,10 +64,10 @@
 
    /**
     * {@inheritDoc}
-    * @see org.jboss.shrinkwrap.api.exporter.ZipExporter#exportZip()
+    * @see org.jboss.shrinkwrap.api.exporter.StreamExporter#export()
     */
    @Override
-   public InputStream exportZip()
+   public InputStream export()
    {
       // Create export delegate
       AbstractExporterDelegate<InputStream> exportDelegate = new JdkZipExporterDelegate(this.getArchive());
@@ -76,10 +77,11 @@
    }
 
    /**
-    * @see org.jboss.shrinkwrap.api.exporter.ZipExporter#exportZip(java.io.OutputStream)
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.api.exporter.StreamExporter#export(java.io.OutputStream)
     */
    @Override
-   public void exportZip(final OutputStream target) throws ArchiveExportException, IllegalArgumentException
+   public void export(final OutputStream target) throws ArchiveExportException, IllegalArgumentException
    {
       // Precondition checks
       if (target == null)
@@ -88,7 +90,7 @@
       }
 
       // Get Stream
-      final InputStream in = this.exportZip();
+      final InputStream in = this.export();
 
       // Write out
       try
@@ -113,7 +115,7 @@
       final OutputStream out = this.getOutputStreamToFile(target, overwrite);
 
       // Write out
-      this.exportZip(out);
+      this.export(out);
    }
 
    /**

Modified: shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableViewImpl.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableViewImpl.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableViewImpl.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -123,7 +123,7 @@
       out.defaultWriteObject();
 
       // Write as ZIP 
-      final InputStream in = archive.as(ZipExporter.class).exportZip();
+      final InputStream in = archive.as(ZipExporter.class).export();
       try
       {
          IOUtil.copy(in, out); // Don't close the outstream

Modified: shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExplodedExporterTestCase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExplodedExporterTestCase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExplodedExporterTestCase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -31,6 +31,8 @@
 import org.jboss.shrinkwrap.api.asset.Asset;
 import org.jboss.shrinkwrap.api.exporter.ArchiveExportException;
 import org.jboss.shrinkwrap.api.exporter.ExplodedExporter;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
 import org.jboss.shrinkwrap.impl.base.TestIOUtil;
 import org.jboss.shrinkwrap.impl.base.io.IOUtil;
 import org.jboss.shrinkwrap.impl.base.path.BasicPath;
@@ -76,6 +78,16 @@
    {
       return EXTENSION;
    }
+   
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.impl.base.exporter.ExportTestBase#getStreamExporter()
+    */
+   @Override
+   protected Class<? extends StreamExporter> getStreamExporter()
+   {
+      return ZipExporter.class;
+   }
 
    //-------------------------------------------------------------------------------------||
    // Tests ------------------------------------------------------------------------------||

Modified: shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExportTestBase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExportTestBase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ExportTestBase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -26,6 +26,7 @@
 import org.jboss.shrinkwrap.api.ArchivePaths;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.impl.base.TestIOUtil;
 import org.jboss.shrinkwrap.impl.base.asset.ClassLoaderAsset;
@@ -171,6 +172,12 @@
     * @return
     */
    protected abstract String getArchiveExtension();
+   
+   /**
+    * Returns the exporter type
+    * @return
+    */
+   protected abstract Class<? extends StreamExporter> getStreamExporter();
 
    /**
     * Create an archive instance and add some assets and some nested archives
@@ -187,7 +194,7 @@
       addContent(nestedArchive);
 
       // Add nested archive
-      archive.add(nestedArchive, new BasicPath());
+      archive.add(nestedArchive, ArchivePaths.root(), this.getStreamExporter());
 
       // Add an archive nested in a directory
       Archive<?> nestedArchiveTwo = ShrinkWrap.create(JavaArchive.class, NAME_NESTED_ARCHIVE_2+ getArchiveExtension());
@@ -196,7 +203,7 @@
       addContent(nestedArchiveTwo);
 
       // Add the archive under a nested path
-      archive.add(nestedArchiveTwo, NESTED_PATH);
+      archive.add(nestedArchiveTwo, NESTED_PATH, this.getStreamExporter());
       
       // Add empty directories
       archive.addDirectory(PATH_EMPTY_NESTED_DIR);

Modified: shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterStressTest.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterStressTest.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterStressTest.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -103,7 +103,7 @@
       // Export; at this point we have less than 50% available memory so 
       // we can't carry the whole archive in RAM twice; this
       // should ensure the ZIP impl uses an internal buffer
-      final InputStream in = archive.as(ZipExporter.class).exportZip();
+      final InputStream in = archive.as(ZipExporter.class).export();
       final CountingOutputStream out = new CountingOutputStream();
 
       // Copy, counting the final size of the exported ZIP

Modified: shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterTestCase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterTestCase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/exporter/ZipExporterTestCase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -28,6 +28,7 @@
 import org.jboss.shrinkwrap.api.ArchivePath;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.Asset;
+import org.jboss.shrinkwrap.api.exporter.StreamExporter;
 import org.jboss.shrinkwrap.api.exporter.ZipExporter;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.impl.base.io.IOUtil;
@@ -66,7 +67,7 @@
    protected InputStream exportAsInputStream(final Archive<?> archive)
    {
       assert archive != null : "archive must be specified";
-      return archive.as(ZipExporter.class).exportZip();
+      return archive.as(ZipExporter.class).export();
    }
 
    /**
@@ -93,7 +94,7 @@
    {
       assert archive != null : "archive must be specified";
       assert out != null : "outstream must be specified";
-      archive.as(ZipExporter.class).exportZip(out);
+      archive.as(ZipExporter.class).export(out);
    }
 
    /**
@@ -145,6 +146,16 @@
       return EXTENSION;
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.shrinkwrap.impl.base.exporter.ExportTestBase#getStreamExporter()
+    */
+   @Override
+   protected Class<? extends StreamExporter> getStreamExporter()
+   {
+      return ZipExporter.class;
+   }
+   
    //-------------------------------------------------------------------------------------||
    // Tests ------------------------------------------------------------------------------||
    //-------------------------------------------------------------------------------------||
@@ -161,7 +172,7 @@
    public void exportEmptyArchiveAsZip() throws Exception
    {
       // Attempt to export an empty archive, should fail
-      ShrinkWrap.create(JavaArchive.class, NAME_ARCHIVE).as(ZipExporter.class).exportZip();
+      ShrinkWrap.create(JavaArchive.class, NAME_ARCHIVE).as(ZipExporter.class).export();
    }
 
    //-------------------------------------------------------------------------------------||
@@ -191,31 +202,6 @@
    }
 
    /**
-    * Writes out the specified contents (stream) as a file in the specified directory
-    * @param archiveName Name of the file
-    * @param zipStream Contents of the archive in ZIP format
-    * @param tempDirectory Directory in which to place the serialized file
-    * @return
-    * @throws Exception
-    */
-   private ZipFile getExportedZipFile(String archiveName, InputStream zipStream, File tempDirectory) throws IOException
-   {
-      // Validate the InputStream was created 
-      Assert.assertNotNull(zipStream);
-
-      // Create a temp file
-      File outFile = new File(tempDirectory, archiveName);
-
-      // Write Zip contents to file
-      writeOutFile(outFile, zipStream);
-
-      // Use standard ZipFile library to read in written Zip file
-      ZipFile expectedZip = new ZipFile(outFile);
-
-      return expectedZip;
-   }
-
-   /**
     * Assert an asset is actually in the Zip file
     * @throws IOException 
     * @throws IllegalArgumentException 
@@ -224,8 +210,8 @@
          IOException
    {
       final ZipEntry entry = this.getEntryFromZip(expectedZip, path);
-      byte[] expectedContents = IOUtil.asByteArray(asset.openStream());
-      byte[] actualContents = IOUtil.asByteArray(expectedZip.getInputStream(entry));
+      final byte[] expectedContents = IOUtil.asByteArray(asset.openStream());
+      final byte[] actualContents = IOUtil.asByteArray(expectedZip.getInputStream(entry));
       Assert.assertArrayEquals(expectedContents, actualContents);
    }
 
@@ -241,8 +227,8 @@
    private ZipEntry getEntryFromZip(final ZipFile expectedZip, final ArchivePath path) throws IllegalArgumentException,
          IOException
    {
-      String entryPath = PathUtil.optionallyRemovePrecedingSlash(path.get());
-      ZipEntry entry = expectedZip.getEntry(entryPath);
+      final String entryPath = PathUtil.optionallyRemovePrecedingSlash(path.get());
+      final ZipEntry entry = expectedZip.getEntry(entryPath);
       Assert.assertNotNull("Expected path not found in ZIP: " + path, entry);
       return entry;
    }

Modified: shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImplTestCase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImplTestCase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/importer/ZipImporterImplTestCase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -104,7 +104,7 @@
 
       File tempFile = new File("target/test.zip");
       tempFile.deleteOnExit();
-      InputStream zipStream = archive.as(ZipExporter.class).exportZip();
+      final InputStream zipStream = archive.as(ZipExporter.class).export();
       IOUtil.copyWithClose(zipStream, new FileOutputStream(tempFile));
 
       delegate.assertContent(archive, tempFile);

Modified: shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableOriginalImpl.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableOriginalImpl.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/serialization/ZipSerializableOriginalImpl.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -124,7 +124,7 @@
       out.defaultWriteObject();
 
       // Write as ZIP 
-      final InputStream in = archive.as(ZipExporter.class).exportZip();
+      final InputStream in = archive.as(ZipExporter.class).export();
       try
       {
          IOUtil.copy(in, out); // Don't close the outstream

Modified: shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/test/ArchiveTestBase.java
===================================================================
--- shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/test/ArchiveTestBase.java	2010-06-29 15:06:56 UTC (rev 4608)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/test/ArchiveTestBase.java	2010-06-29 15:54:44 UTC (rev 4609)
@@ -31,6 +31,7 @@
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.Asset;
 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.impl.base.Validate;
 import org.jboss.shrinkwrap.impl.base.asset.ArchiveAsset;
@@ -560,7 +561,7 @@
       Archive<T> archive = getArchive();
       try
       {
-         archive.add(ShrinkWrap.create(JavaArchive.class), (ArchivePath) null);
+         archive.add(ShrinkWrap.create(JavaArchive.class), (ArchivePath) null, ZipExporter.class);
          Assert.fail("Should have throw an IllegalArgumentException");
       }
       catch (IllegalArgumentException expectedException)
@@ -576,7 +577,7 @@
    public void testAddArchiveToPathRequireStringPath() throws Exception
    {
       Archive<T> archive = getArchive();
-      archive.add(ShrinkWrap.create(JavaArchive.class), (String) null);
+      archive.add(ShrinkWrap.create(JavaArchive.class), (String) null, ZipExporter.class);
    }
 
    /**
@@ -589,7 +590,7 @@
       Archive<T> archive = getArchive();
       try
       {
-         archive.add((Archive<?>) null, new BasicPath("/"));
+         archive.add((Archive<?>) null, ArchivePaths.root(), ZipExporter.class);
          Assert.fail("Should have throw an IllegalArgumentException");
       }
       catch (IllegalArgumentException expectedException)
@@ -867,7 +868,7 @@
 
       ArchivePath baseLocation = new BasicPath("somewhere");
 
-      archive.add(sourceArchive, baseLocation);
+      archive.add(sourceArchive, baseLocation, ZipExporter.class);
 
       ArchivePath expectedPath = new BasicPath(baseLocation, sourceArchive.getName());
 
@@ -901,7 +902,7 @@
 
       ArchivePath baseLocation = new BasicPath("somewhere");
 
-      archive.add(sourceArchive, baseLocation);
+      archive.add(sourceArchive, baseLocation, ZipExporter.class);
 
       ArchivePath archivePath = new BasicPath(baseLocation, sourceArchive.getName());
 
@@ -924,11 +925,11 @@
 
       ArchivePath baseLocation = new BasicPath("somewhere");
 
-      archive.add(nestedArchive, baseLocation);
+      archive.add(nestedArchive, baseLocation, ZipExporter.class);
 
       Archive<T> nestedNestedArchive = createNewArchive();
 
-      nestedArchive.add(nestedNestedArchive, new BasicPath("/"));
+      nestedArchive.add(nestedNestedArchive, ArchivePaths.root(), ZipExporter.class);
       
       Asset asset = new ClassLoaderAsset(NAME_TEST_PROPERTIES);
 



More information about the jboss-svn-commits mailing list