[shrinkwrap-issues] [JBoss JIRA] (SHRINKWRAP-388) Adding an Asset to already existing ArchivePath is silently ignored

Karel Piwko (JIRA) jira-events at lists.jboss.org
Thu Mar 8 08:59:38 EST 2012


     [ https://issues.jboss.org/browse/SHRINKWRAP-388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Karel Piwko resolved SHRINKWRAP-388.
------------------------------------

    Resolution: Duplicate Issue


Marking as resolved, as it is duplicate of SHRINKWRAP-329

                
> Adding an Asset to already existing ArchivePath is silently ignored
> -------------------------------------------------------------------
>
>                 Key: SHRINKWRAP-388
>                 URL: https://issues.jboss.org/browse/SHRINKWRAP-388
>             Project: ShrinkWrap
>          Issue Type: Bug
>          Components: impl-base
>    Affects Versions: 1.0.0-cr-3
>            Reporter: Karel Piwko
>            Priority: Critical
>
> When trying to include a Asset to already existing Archive path simply does nothing. Also if user does merge of two archives, it makes the operation order dependent.
> Solutions:
> 1. Trying to include an Asset to already existing path should fail. For merge, there might be an optional override property
> 2. Override and make this behavior documented. Probably log a warning.
> Test case:
> {code}
> import java.io.IOException;
> import java.io.InputStream;
> import java.io.StringWriter;
> import junit.framework.Assert;
> import org.apache.commons.io.IOUtils;
> import org.jboss.shrinkwrap.api.Archive;
> import org.jboss.shrinkwrap.api.ArchivePath;
> import org.jboss.shrinkwrap.api.ArchivePaths;
> import org.jboss.shrinkwrap.api.ShrinkWrap;
> import org.jboss.shrinkwrap.api.asset.StringAsset;
> import org.jboss.shrinkwrap.api.spec.JavaArchive;
> import org.junit.Test;
> public class SimpleTest {
>     @Test
>     // fails
>     public void simple() throws Exception {
>         JavaArchive jar = ShrinkWrap.create(JavaArchive.class)
>                 .add(new StringAsset("foo"), ArchivePaths.create("resources/foo"))
>                 .add(new StringAsset("bar"), ArchivePaths.create("resources/foo"));
>         // here it should either fail fast before or contain bar
>         Assert.assertEquals("Expecting bar", "bar", getContent(jar, ArchivePaths.create("resources/foo")));
>     }
>     @Test
>     // fails
>     public void mergeJar1Jar2() throws Exception {
>         JavaArchive jar1 = ShrinkWrap.create(JavaArchive.class).add(new StringAsset("foo"),
>                 ArchivePaths.create("resources/foo"));
>         JavaArchive jar2 = ShrinkWrap.create(JavaArchive.class).add(new StringAsset("bar"),
>                 ArchivePaths.create("resources/foo"));
>         JavaArchive jar = jar1.merge(jar2);
>         // here it should either fail or contain bar
>         Assert.assertEquals("Expecting bar", "bar", getContent(jar, ArchivePaths.create("resources/foo")));
>     }
>     @Test
>     // passes
>     public void mergeJar2Jar1() throws Exception {
>         JavaArchive jar1 = ShrinkWrap.create(JavaArchive.class).add(new StringAsset("foo"),
>                 ArchivePaths.create("resources/foo"));
>         JavaArchive jar2 = ShrinkWrap.create(JavaArchive.class).add(new StringAsset("bar"),
>                 ArchivePaths.create("resources/foo"));
>         JavaArchive jar = jar2.merge(jar1);
>         // here it should either fail or contain bar
>         Assert.assertEquals("Expecting bar", "bar", getContent(jar, ArchivePaths.create("resources/foo")));
>     }
>     private String getContent(Archive<?> archive, ArchivePath path) throws IOException {
>         InputStream is = archive.get(path).getAsset().openStream();
>         StringWriter w = new StringWriter();
>         IOUtils.copy(is, w);
>         IOUtils.closeQuietly(is);
>         IOUtils.closeQuietly(w);
>         return w.toString();
>     }
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the shrinkwrap-issues mailing list