[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