[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