[jboss-svn-commits] JBoss Common SVN: r4459 - in shrinkwrap/trunk: impl-base/src/main/java/org/jboss/shrinkwrap/impl/base and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun May 30 00:02:15 EDT 2010
Author: ALRubinger
Date: 2010-05-30 00:02:13 -0400 (Sun, 30 May 2010)
New Revision: 4459
Modified:
shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archive.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/container/ContainerBase.java
shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/test/ArchiveTestBase.java
Log:
[SHRINKWRAP-172] Add Archive.add(Asset,String,String)
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-05-29 23:21:56 UTC (rev 4458)
+++ shrinkwrap/trunk/api/src/main/java/org/jboss/shrinkwrap/api/Archive.java 2010-05-30 04:02:13 UTC (rev 4459)
@@ -81,6 +81,20 @@
* @throws IllegalArchivePathException If the target is invalid.
*/
T add(Asset asset, ArchivePath target, String name) throws IllegalArgumentException;
+
+ /**
+ * Adds the specified asset under the specified target (directory)
+ * using the specified name. The resultant path will be treating
+ * the specified path as a prefix namespace, then appending the name.
+ *
+ * @param target The context directory under which to add the asset
+ * @param name The name to assign the assent under the target namespace
+ * @param asset
+ * @return
+ * @throws IllegalArgumentException If the target, name, or asset was not specified
+ * @throws IllegalArchivePathException If the target is invalid.
+ */
+ T add(Asset asset, String target, String name) throws IllegalArgumentException;
/**
* Adds the specified resource under the context denoted by the specified target
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-05-29 23:21:56 UTC (rev 4458)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/ArchiveBase.java 2010-05-30 04:02:13 UTC (rev 4459)
@@ -125,6 +125,18 @@
/**
* {@inheritDoc}
+ * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.asset.Asset, java.lang.String, java.lang.String)
+ */
+ @Override
+ public T add(final Asset asset, final String target, final String name) throws IllegalArgumentException
+ {
+ Validate.notNull(target, "target must be specified");
+ final ArchivePath path = ArchivePaths.create(target);
+ return this.add(asset, path, name);
+ }
+
+ /**
+ * {@inheritDoc}
* @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.ArchivePath, java.lang.String, org.jboss.shrinkwrap.api.asset.Asset)
*/
@Override
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-05-29 23:21:56 UTC (rev 4458)
+++ shrinkwrap/trunk/impl-base/src/main/java/org/jboss/shrinkwrap/impl/base/container/ContainerBase.java 2010-05-30 04:02:13 UTC (rev 4459)
@@ -150,6 +150,17 @@
return covarientReturn();
}
+ /**
+ * {@inheritDoc}
+ * @see org.jboss.shrinkwrap.api.Archive#add(org.jboss.shrinkwrap.api.asset.Asset, java.lang.String, java.lang.String)
+ */
+ @Override
+ public T add(final Asset asset, final String target, final String name) throws IllegalArgumentException
+ {
+ archive.add(asset, target, name);
+ return covarientReturn();
+ }
+
/* (non-Javadoc)
* @see org.jboss.shrinkwrap.api.Archive#addDirectories(org.jboss.shrinkwrap.api.ArchivePath[])
*/
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-05-29 23:21:56 UTC (rev 4458)
+++ shrinkwrap/trunk/impl-base/src/test/java/org/jboss/shrinkwrap/impl/base/test/ArchiveTestBase.java 2010-05-30 04:02:13 UTC (rev 4459)
@@ -30,6 +30,7 @@
import org.jboss.shrinkwrap.api.Node;
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.spec.JavaArchive;
import org.jboss.shrinkwrap.impl.base.Validate;
import org.jboss.shrinkwrap.impl.base.asset.ArchiveAsset;
@@ -209,43 +210,76 @@
}
/**
- * Ensure adding an asset with a name results in successful storage
+ * Ensure adding an asset with a name under an {@link ArchivePath}
+ * context results in successful storage
* @throws Exception
*/
@Test
- public void testAddAssetWithName() throws Exception
+ public void testAddAssetWithArchivePathAndName() throws Exception
{
Archive<T> archive = getArchive();
final String name = "test.properties";
final Asset asset = new ClassLoaderAsset(NAME_TEST_PROPERTIES);
- ArchivePath location = new BasicPath("/");
-
+ ArchivePath location = ArchivePaths.root();
+
archive.add(asset, location, name);
ArchivePath expectedPath = new BasicPath("/", "test.properties");
Assert.assertTrue("Asset should be placed on " + expectedPath.get(), archive.contains(expectedPath));
}
+
+ /**
+ * Ensure adding an asset with a name under an {@link String}
+ * context results in successful storage
+ * @throws Exception
+ */
+ @Test
+ public void testAddAssetWithStringPathAndName() throws Exception
+ {
+ Archive<T> archive = getArchive();
+ final String name = "test.properties";
+ final Asset asset = new ClassLoaderAsset(NAME_TEST_PROPERTIES);
+ archive.add(asset, "/", name);
+
+ ArchivePath expectedPath = new BasicPath("/", "test.properties");
+
+ Assert.assertTrue("Asset should be placed on " + expectedPath.get(), archive.contains(expectedPath));
+ }
+
/**
* Ensure adding an asset with name requires the path attribute
+ * as an {@link ArchivePath}.
* @throws Exception
*/
@Test
- public void testAddAssetWithNameRequiresPath() throws Exception
+ public void testAddAssetWithNameRequiresArchivePath() throws Exception
{
Archive<T> archive = getArchive();
final String name = "test.properties";
final Asset asset = new ClassLoaderAsset(NAME_TEST_PROPERTIES);
try
{
- archive.add(asset, null, name);
+ archive.add(asset, (ArchivePath)null, name);
Assert.fail("Should have throw an IllegalArgumentException");
}
catch (IllegalArgumentException expectedException)
{
}
}
+
+ /**
+ * Ensure adding an asset with name requires the path attribute
+ * as a String
+ * @throws Exception
+ */
+ @Test(expected = IllegalArgumentException.class)
+ public void testAddAssetWithNameRequiresStringPath() throws Exception
+ {
+ final Archive<T> archive = getArchive();
+ archive.add(EmptyAsset.INSTANCE, (String) null, "childPath");
+ }
/**
* Ensure adding an asset with name requires the name attribute
More information about the jboss-svn-commits
mailing list